F2QSynthesis¶
- class F2QSynthesis¶
Bases:
TransformationPassA transpilation pass to map fermion-based circuit instructions to qubit-based ones.
This transpilation pass works similarly to Qiskit’s
HighLevelSynthesispass; given an inputDAGCircuitwithFermionGateinstructions, it iterates them and delegates the translation to qubit-based instructions to matchingplugins. The insertion of the qubit-based circuit instructions into the outputDAGCircuitis also left to the plugin. This pass will merely have prepared theQuantumRegisteraccording to the global transpilationF2QLayoutsetting.Attributes
- plugins: dict[type[DAGOpNode], F2QSynthesisPlugin]¶
A dictionary of fermion-to-qubit circuit instruction transpilation plugins.
- class F2QSynthesisPlugin¶
Bases:
ProtocolThe protocol for plugins to the
F2QSynthesistranspiler pass.- F2QSynthesisPlugin.run(in_node, out_dag, *, f2q_layout)¶
Translates the provided fermion-based circuit instruction to a qubit-based one.
- Parameters:
in_node – a fermion-based circuit instruction stored in a
DAGOpNode. Specifically, this guarantees thatopis of typeFermionGate.out_dag – the qubit-based
DAGCircuitinto which this plugin must insert the translated circuit instruction.f2q_layout – the
F2QLayoutsetting that is global to the transpilation process. It is the plugin’s responsibility to respect this mapping ofFermionRegistertoQuantumRegister.
Inherited Attributes
- is_analysis_pass¶
Check if the pass is an analysis pass.
If the pass is an AnalysisPass, that means that the pass can analyze the DAG and write the results of that analysis in the property set. Modifications on the DAG are not allowed by this kind of pass.
- is_transformation_pass¶
Check if the pass is a transformation pass.
If the pass is a TransformationPass, that means that the pass can manipulate the DAG, but cannot modify the property set (but it can be read).
Methods
- run(dag)¶
Runs this transpilation pass.
- Parameters:
dag (DAGCircuit) – the input circuit with fermion-based instructions. Only
DAGOpNodewithFermionGateinstances as theiropare supported.- Returns:
The output circuit with qubit-based instructions.
- Raises:
ValueError – when a
DAGOpNodeis encountered whoseopis not of typeFermionGate.TypeError – when a
FermionGatetype is encountered for which no translation plugin is present inplugins.
- Return type:
Inherited Methods
- execute(passmanager_ir, state, callback=None)¶
Execute optimization task for input Qiskit IR.
- Parameters:
passmanager_ir (Any) – Qiskit IR to optimize.
state (PassManagerState) – State associated with workflow execution by the pass manager itself.
callback (Callable | None) – A callback function which is called per execution of optimization task.
- Returns:
Optimized Qiskit IR and state of the workflow.
- Return type:
- update_status(state, run_state)¶
Update workflow status.
- Parameters:
state (PassManagerState) – Pass manager state to update.
run_state (RunState) – Completion status of current task.
- Returns:
Updated pass manager state.
- Return type: