quri_parts.circuit.transpile.transpiler module¶
- CircuitTranspiler¶
CircuitTranspiler Interface. A function or callable object that can map ImmutableQuantumCircuit to ImmutableQuantumCircuit.
alias of
Callable[[ImmutableQuantumCircuit],ImmutableQuantumCircuit]
- class CircuitTranspilerProtocol(*args, **kwargs)¶
Bases:
ProtocolProtocol of callable class that transpiles ImmutableQuantumCircuit to ImmutableQuantumCircuit.
- class SequentialTranspiler(transpilers)¶
Bases:
CircuitTranspilerProtocolCircuitTranspiler, which applies CircuitTranspilers in sequence.
- Parameters:
transpilers (Sequence[CircuitTranspiler]) – Sequence of CircuitTranspilers.
Examples
transpiler = SequentialTranspiler( [ ATranspiler(), BTranspiler(arg..), .. ] ) circuit = transpiler(circuit)
- class GateDecomposer(*args, **kwargs)¶
Bases:
CircuitTranspilerProtocol,ABCAbstract class that represents CircuitTranspiler, such that target gates are selected by decision function and each target gate is replaced by a sequence of multiple gates.
- abstract is_target_gate(gate)¶
Determine if a given gate is subject to decomposition.
- Parameters:
gate (QuantumGate) – Gates in the circuit that are scanned from the front.
- Return type:
bool
- abstract decompose(gate)¶
Describe the specific decomposition process. Only the target gates satisfying is_target_gate() method are passed.
- Parameters:
gate (QuantumGate) – The gates to be decomposed.
- Return type:
Sequence[QuantumGate]
- class GateKindDecomposer(*args, **kwargs)¶
Bases:
GateDecomposer,ABCAbstract class that represents CircuitTranspiler, such that each gate is identified by its gate name and the target gate is replaced by a sequence of multiple gates.
Classes inheriting from this class can be used for ParallelDecomposer.
- abstract property target_gate_names: Sequence[str]¶
Returns the set of gate names to be decomposed.
- is_target_gate(gate)¶
Determine if a given gate is subject to decomposition.
- Parameters:
gate (QuantumGate) – Gates in the circuit that are scanned from the front.
- Return type:
bool
- class ParallelDecomposer(decomposers)¶
Bases:
CircuitTranspilerProtocolCircuitTranspiler, which executes given GateKindDecomposer within a single loop traversing the gate from the front.
- Parameters:
decomposers (Sequence[GateKindDecomposer]) – Sequence of GateKindDecomposer with no duplicate gate types to act on.
- ParametricCircuitTranspiler¶
ParametricCircuitTranspiler Interface. A function or callable object that can map ParametricQuantumCircuit to ParametricQuantumCircuit.
alias of
Callable[[ParametricQuantumCircuitProtocol],ParametricQuantumCircuitProtocol]
- class ParametricCircuitTranspilerProtocol(*args, **kwargs)¶
Bases:
ProtocolProtocol of callable class that transpiles ParametricQuantumCircuit to ParametricQuantumCircuit.
- class ParametricTranspiler(transpiler)¶
Bases:
ParametricCircuitTranspilerProtocolCircuit transpiler for ParametricQuantumCircuitProtocol, which wraps CircuitTranspiler and allows it to be applied to ParametricQuantumCircuitProtocol.
Each successive QuantumGate sequence in the circuit is transpiled respectively and the results are concatenated. ParametricQuantumGates and parameter mappings are replicated intact.
- Parameters:
transpiler (CircuitTranspiler) – CircuitTranspiler to be wrapped.
- class ParametricSequentialTranspiler(transpilers)¶
Bases:
ParametricCircuitTranspilerProtocol- Parameters:
transpilers (Sequence[ParametricCircuitTranspiler])