HalfAdderSynthesisDefault
class qiskit.transpiler.passes.synthesis.hls_plugins.HalfAdderSynthesisDefault
Bases: HighLevelSynthesisPlugin
The default half-adder (no carry in, but a carry out qubit) synthesis.
If we have an auxiliary qubit available, the Cuccaro ripple-carry adder uses CX gates and 1 auxiliary qubit, whereas the Vedral ripple-carry uses more CX and auxiliary qubits. The QFT-based adder uses no auxiliary qubits, but , hence it is only used if no auxiliary qubits are available.
This plugin name is:HalfAdder.default
which can be used as the key on an HLSConfig
object to use this method with HighLevelSynthesis
.
If at least one clean auxiliary qubit is available, the HalfAdderSynthesisC04
is used, otherwise HalfAdderSynthesisD00
.
The plugin supports the following plugin-specific options:
num_clean_ancillas
: The number of clean auxiliary qubits available.
Methods
run
run(high_level_object, coupling_map=None, target=None, qubits=None, **options)
Run synthesis for the given Operation.
Parameters
- high_level_object (Operation) – The Operation to synthesize to a
DAGCircuit
object. - coupling_map (CouplingMap) – The coupling map of the backend in case synthesis is done on a physical circuit.
- target (Target) – A target representing the target backend.
- qubits (list) – List of qubits over which the operation is defined in case synthesis is done on a physical circuit.
- options – Additional method-specific optional kwargs.
Returns
The quantum circuit representation of the Operation
when successful, and None
otherwise.
Return type