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
DAGCircuitobject. - 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