Rebase2QuditGatePass
- class Rebase2QuditGatePass(gate_in_circuit, new_gate, max_depth=3, max_retries=-1, success_threshold=1e-08, cost=<bqskit.ir.opt.cost.functions.residuals.hilbertschmidt.HilbertSchmidtResidualsGenerator object>, instantiate_options={}, single_qudit_gate=U3Gate)[source]
Bases:
BasePassThe Rebase2QuditGatePass class.
Will use instantiation to change the a 2-qudit gate to a different one.
- __init__(gate_in_circuit, new_gate, max_depth=3, max_retries=-1, success_threshold=1e-08, cost=<bqskit.ir.opt.cost.functions.residuals.hilbertschmidt.HilbertSchmidtResidualsGenerator object>, instantiate_options={}, single_qudit_gate=U3Gate)[source]
Construct a Rebase2QuditGatePass.
- Parameters:
gate_in_circuit (
Gate | Sequence[Gate]) – The two-qudit gate or gates in the circuit that you want to replace.new_gate (
Gate | Sequence[Gate]) – The two-qudit new gate or gates you want to put in the circuit.max_depth (
int) – The maximum number of new gates to replace an old gate with. (Default: 3)max_retries (
int) – The number of retries for the same gate before we increase the maximum depth. If left as -1, then never increase max depth. (Default: -1)success_threshold (
float) – The distance threshold that determines successful termintation. Measured in cost described by the hilbert schmidt cost function. (Default: 1e-8)cost (
CostFunction | None) – The cost function that determines successful removal of a gate. (Default: HilbertSchmidtResidualsGenerator())(dict[str (instantiate_options) – Any]): Options passed directly to circuit.instantiate when instantiating circuit templates. (Default: {})
single_qudit_gate (
Gate) – A single-qudit gate to fill in between two-qudit gates.
- Raises:
ValueError – If gate_in_circuit or new_gate is not a 2-qudit gate.
ValueError – if max_depth is nonnegative.
Attributes
The name of the pass.
Methods
execute(*args, **kwargs)Map a function over iterable arguments in parallel.
generate_new_gate_templates(new_gates, ...)Generate the templates to be instantiated over old circuits.
get_connectivity(_, data)Retrieve the current connectivity of the circuit.
get_model(_, data)Retrieve the machine model from the data dictionary.
get_placement(_, data)Retrieve the logical to physical qubit map from the data dictionary.
get_target(_, data)Retrieve the target from the data dictionary.
group_near_gates(circuit, center, gates)Group gates similar to the gate at center on the same qubits.
in_parallel(data)Return true if pass is being executed in a parallel.
run(circuit, data)Perform the pass's operation, see
BasePassfor more.