[−][src]Function dqcsim::bindings::dqcs_gate_new_custom
#[no_mangle]pub extern "C" fn dqcs_gate_new_custom(
name: *const c_char,
targets: dqcs_handle_t,
controls: dqcs_handle_t,
measures: dqcs_handle_t,
matrix: dqcs_handle_t
) -> dqcs_handle_t
Constructs a new custom gate.
The functionality of custom gates is not specified by DQCsim. Instead, this is left up to the plugins. Of course, for this to work, plugins that are connected to each other must agree on the format used.
name
specifies the name of the gate. The name is used to indicate which
custom operation is to be applied.
targets
optionally specifies the set of target qubits. You may pass 0 or
an empty qubit set if you don't need target qubits.
controls
optionally specifies the set of control qubits. You may pass 0
or an empty qubit set if you don't need control qubits.
measures
optionally specifies the set of measured qubits. You may pass 0
or an empty qubit set if no qubits are measured. Note that the upstream
plugin expects exactly one measurement result for each qubit specified in
this set; anything else results in a warning and the measurement result
being set to undefined.
matrix
optionally specifies a handle to an appropriately sized matrix
for the targets
qubit set.
In addition to the above data, gate objects implement the arb
interface
to allow user-specified classical information to be attached.
This function returns the handle to the gate, or 0 to indicate failure. The specified qubit sets are consumed/deleted by this function if and only if it succeeds.