# Qiskit Fermions > Qiskit Fermions extends Qiskit with tools for working with fermionic systems: operator data structures, a framework and library for converting operators between representations and to qubit operators (for example Jordan-Wigner and ternary-tree encodings), and a framework and library for synthesizing fermionic quantum circuits. The core is written in Rust and exposed through first-party Python and C APIs. 2026, Qiskit addons team ## Pages in this subsection - [OperatorTrait](qiskit_fermions.operators.OperatorTrait.html.md): A protocol indicating all methods implemented by operator classes. - [FermionAction](qiskit_fermions.operators.fermion_action.FermionAction.html.md): A fermionic creation or annihilation action. - [FermionOperator](qiskit_fermions.operators.FermionOperator.html.md): A spin-less fermionic operator. - [cre](qiskit_fermions.operators.cre.html.md): Constructs a creation action on the fermionic mode at `mode`. - [ann](qiskit_fermions.operators.ann.html.md): Constructs an annihilation action on the fermionic mode at `mode`. - [MajoranaAction](qiskit_fermions.operators.majorana_action.MajoranaAction.html.md): The MajoranaAction type. See `gamma()` for more details. - [MajoranaOperator](qiskit_fermions.operators.MajoranaOperator.html.md): A Majorana fermion operator. - [gamma](qiskit_fermions.operators.gamma.html.md): Create a majorana fermion. - [EdgeAction](qiskit_fermions.operators.edge_action.EdgeAction.html.md): The EdgeAction type. - [TransferAction](qiskit_fermions.operators.transfer_action.TransferAction.html.md): The TransferAction type. - [EdgeVertexOperator](qiskit_fermions.operators.EdgeVertexOperator.html.md): An edge-vertex operator. - [TransferVertexOperator](qiskit_fermions.operators.TransferVertexOperator.html.md): A transfer-vertex operator. - [commutator](qiskit_fermions.operators.library.commutator.html.md): Computes the commutator of two operators. - [anti_commutator](qiskit_fermions.operators.library.anti_commutator.html.md): Computes the anti-commutator of two operators. - [double_commutator](qiskit_fermions.operators.library.double_commutator.html.md): Computes the double-commutator of three operators. - [FCIDump](qiskit_fermions.operators.library.FCIDump.html.md): An electronic structure Hamiltonian in FCIDump format. - [group_terms_by_electronic_structure](qiskit_fermions.operators.terms.group_terms_by_electronic_structure.html.md): Groups the terms of an operator by their electronic structure. - [group_coeff_means](qiskit_fermions.operators.terms.group_coeff_means.html.md): Returns the mean absolute coefficient magnitude of each group. - [groups_are_hermitian](qiskit_fermions.operators.terms.groups_are_hermitian.html.md): Returns, for each group, whether the operator formed by that group’s terms is Hermitian. - [groups_have_uniform_coeffs](qiskit_fermions.operators.terms.groups_have_uniform_coeffs.html.md): Returns, for each group, whether all of its coefficients are numerically equal. - [filter_diagonal_terms](qiskit_fermions.operators.terms.filter_diagonal_terms.html.md): Filters out the terms of an operator that are diagonal in the occupation-number basis. - [canonical_order](qiskit_fermions.operators.terms.canonical_order.html.md): Returns a copy of an operator with its terms sorted into a canonical order. - [group_order](qiskit_fermions.operators.terms.group_order.html.md): Returns a copy of an operator with its terms ordered by group index. - [order_terms](qiskit_fermions.operators.terms.order_terms.html.md): Returns a copy of an operator with its terms reordered by a user-provided key. - [map_fermion_action_generators](qiskit_fermions.mappers.map_fermion_action_generators.html.md): Map a `FermionOperator` to another operator type. - [map_majorana_action_generators](qiskit_fermions.mappers.map_majorana_action_generators.html.md): Map a `MajoranaOperator` to another operator type. - [map_edge_vertex_generators](qiskit_fermions.mappers.map_edge_vertex_generators.html.md): Map a `EdgeVertexOperator` to another operator type. - [map_transfer_vertex_generators](qiskit_fermions.mappers.map_transfer_vertex_generators.html.md): Map a `TransferVertexOperator` to another operator type. - [TernaryTree](qiskit_fermions.mappers.TernaryTree.html.md): A ternary tree defining a fermion-to-qubit encoding. - [TernaryTreeEncoding](qiskit_fermions.mappers.TernaryTreeEncoding.html.md): A ternary tree compiled into the Pauli images of its Majorana operators. - [fermion_operator](qiskit_fermions.mappers.library.fermion_operator.html.md): Converts an operator into a `FermionOperator`. - [jordan_wigner](qiskit_fermions.mappers.library.jordan_wigner.html.md): Map an operator to a `SparseObservable` under the Jordan-Wigner transformation. - [majorana_operator](qiskit_fermions.mappers.library.majorana_operator.html.md): Converts an operator into a `MajoranaOperator`. - [ternary_tree](qiskit_fermions.mappers.library.ternary_tree.html.md): Map an operator to a `SparseObservable` under a ternary-tree encoding. - [fermion_jordan_wigner](qiskit_fermions.mappers.library.fermion_jordan_wigner.html.md): Map a `FermionOperator` to a `SparseObservable` under the - [majorana_jordan_wigner](qiskit_fermions.mappers.library.majorana_jordan_wigner.html.md): Map a `MajoranaOperator` to a `SparseObservable` under the - [edge_vertex_jordan_wigner](qiskit_fermions.mappers.library.edge_vertex_jordan_wigner.html.md): Map an `EdgeVertexOperator` to a `SparseObservable` under the - [transfer_vertex_jordan_wigner](qiskit_fermions.mappers.library.transfer_vertex_jordan_wigner.html.md): Map a `TransferVertexOperator` to a `SparseObservable` under - [fermion_to_majorana](qiskit_fermions.mappers.library.fermion_to_majorana.html.md): Map a `FermionOperator` to a `MajoranaOperator`. - [majorana_to_fermion](qiskit_fermions.mappers.library.majorana_to_fermion.html.md): Map a `MajoranaOperator` to a `FermionOperator`. - [edge_vertex_to_fermion](qiskit_fermions.mappers.library.edge_vertex_to_fermion.html.md): Map an `EdgeVertexOperator` to a `FermionOperator`. - [edge_vertex_to_majorana](qiskit_fermions.mappers.library.edge_vertex_to_majorana.html.md): Map an `EdgeVertexOperator` to a `MajoranaOperator`. - [transfer_vertex_to_fermion](qiskit_fermions.mappers.library.transfer_vertex_to_fermion.html.md): Map a `TransferVertexOperator` to a `FermionOperator`. - [transfer_vertex_to_majorana](qiskit_fermions.mappers.library.transfer_vertex_to_majorana.html.md): Map a `TransferVertexOperator` to a `MajoranaOperator`. - [transfer_vertex_to_edge_vertex](qiskit_fermions.mappers.library.transfer_vertex_to_edge_vertex.html.md): Map a `TransferVertexOperator` to an `EdgeVertexOperator`. - [fermion_ternary_tree](qiskit_fermions.mappers.library.fermion_ternary_tree.html.md): Map a `FermionOperator` to a `SparseObservable` under a - [majorana_ternary_tree](qiskit_fermions.mappers.library.majorana_ternary_tree.html.md): Map a `MajoranaOperator` to a `SparseObservable` under a - [edge_vertex_ternary_tree](qiskit_fermions.mappers.library.edge_vertex_ternary_tree.html.md): Map an `EdgeVertexOperator` to a `SparseObservable` under a - [transfer_vertex_ternary_tree](qiskit_fermions.mappers.library.transfer_vertex_ternary_tree.html.md): Map a `TransferVertexOperator` to a `SparseObservable` under - [build_excitation_span_minimization_model](qiskit_fermions.mappers.optimization.build_excitation_span_minimization_model.html.md): Build a Pyomo model for ordering fermionic modes to minimize excitation spans. - [FermionicDAGCircuit](qiskit_fermions.circuit.FermionicDAGCircuit.html.md): A type alias of `DAGCircuit`. - [FermionicMode](qiskit_fermions.circuit.FermionicMode.html.md): A type alias of `Qubit`. - [FermionicRegister](qiskit_fermions.circuit.FermionicRegister.html.md): A type alias of `QubitRegister`. - [FermionicSpecifier](qiskit_fermions.circuit.FermionicSpecifier.html.md): A type alias equivalent to Qiskit’s `QubitSpecifier` but for fermionic modes. - [FermionicCircuit](qiskit_fermions.circuit.FermionicCircuit.html.md): A wrapper around `QuantumCircuit` for expressing fermionic circuits. - [FermionicInstruction](qiskit_fermions.circuit.FermionicInstruction.html.md): The base class for all instructions acting on fermionic modes. - [FermionicGate](qiskit_fermions.circuit.FermionicGate.html.md): The base class for all fermionic gates. - [Evolution](qiskit_fermions.circuit.library.Evolution.html.md): Implements the time evolution of an operator. - [InitializeModes](qiskit_fermions.circuit.library.InitializeModes.html.md): Prepares (or, under simulation, certifies) a fermionic mode occupation. - [OrbitalRotation](qiskit_fermions.circuit.library.OrbitalRotation.html.md): Implements an orbital rotation. - [PrepareSlaterDeterminant](qiskit_fermions.circuit.library.PrepareSlaterDeterminant.html.md): Prepares a Slater determinant from an occupation and an orbital rotation. - [UCC](qiskit_fermions.circuit.library.UCC.html.md): Implements the unitary coupled-cluster singles and doubles (UCCSD) ansatz. - [UCJ](qiskit_fermions.circuit.library.UCJ.html.md): Implements the (local) unitary cluster Jastrow ((L)UCJ) ansatz. - [FermionicMeasure](qiskit_fermions.circuit.library.FermionicMeasure.html.md): A measurement of a single fermionic mode, writing its outcome into one classical bit. - [FermionicEvolutionSynthesis](qiskit_fermions.circuit.library.synthesis.FermionicEvolutionSynthesis.html.md): The interface for fermion-to-fermion synthesis of an `Evolution` gate. - [FermionicLieTrotter](qiskit_fermions.circuit.library.synthesis.FermionicLieTrotter.html.md): The first-order Lie-Trotter product formula, applied in fermionic space. - [FermionicSuzukiTrotter](qiskit_fermions.circuit.library.synthesis.FermionicSuzukiTrotter.html.md): The higher-order Suzuki-Trotter product formula, applied in fermionic space. - [F2QLayout](qiskit_fermions.transpiler.F2QLayout.html.md): A mapping of fermionic mode registers to quantum registers. - [FermionicPassManager](qiskit_fermions.transpiler.FermionicPassManager.html.md): A transpiler pass manager converting one `FermionicCircuit` to another. - [FermionicCircuitToDAG](qiskit_fermions.transpiler.FermionicCircuitToDAG.html.md): Converts a `FermionicCircuit` to a `FermionicDAGCircuit`. - [FermionicDAGToCircuit](qiskit_fermions.transpiler.FermionicDAGToCircuit.html.md): Converts a `FermionicDAGCircuit` to a `FermionicCircuit`. - [QuantumDAGToCircuit](qiskit_fermions.transpiler.QuantumDAGToCircuit.html.md): Converts a `DAGCircuit` to a `QuantumCircuit`. - [FermionicTrotterization](qiskit_fermions.transpiler.passes.FermionicTrotterization.html.md): A transpilation pass Trotterizing `Evolution` gates in fermionic space. - [MergeOrbitalRotations](qiskit_fermions.transpiler.passes.MergeOrbitalRotations.html.md): A transpilation pass merging runs of consecutive orbital rotations into a single one. - [MergeSlaterDeterminantPreparation](qiskit_fermions.transpiler.passes.MergeSlaterDeterminantPreparation.html.md): A transpilation pass fusing an initialization and rotation into a Slater determinant prep. - [QDriftTrotterization](qiskit_fermions.transpiler.passes.QDriftTrotterization.html.md): A transpilation pass to Trotterize `Evolution` gates via the qDRIFT protocol. - [RelabelModes](qiskit_fermions.transpiler.passes.RelabelModes.html.md): A transpilation pass to relabel the fermionic modes. - [TrivialF2QLayout](qiskit_fermions.transpiler.passes.TrivialF2QLayout.html.md): Trivially maps $n$ fermionic modes to $n$ qubits. - [CustomF2QLayout](qiskit_fermions.transpiler.passes.CustomF2QLayout.html.md): Sets the user-provided `F2QLayout` in the transpiler. - [F2QSynthesis](qiskit_fermions.transpiler.passes.F2QSynthesis.html.md): A transpilation pass to map fermion-based circuit instructions to qubit-based ones. - [F2QSynthesisConfig](qiskit_fermions.transpiler.passes.synthesis.synthesis.F2QSynthesisConfig.html.md): The dictionary type used to configure the `F2QSynthesis.methods`. - [F2QSynthesisPlugin](qiskit_fermions.transpiler.passes.synthesis.F2QSynthesisPlugin.html.md): The protocol for plugins to the `F2QSynthesis` transpiler pass. - [F2QSynthesisPluginManager](qiskit_fermions.transpiler.passes.synthesis.F2QSynthesisPluginManager.html.md): A simple manager of the installed fermion-to-qubit synthesis plugins. - [GivensDecompositionOrbitalRotationSynthesis](qiskit_fermions.transpiler.passes.synthesis.GivensDecompositionOrbitalRotationSynthesis.html.md): A `F2QSynthesisPlugin` for transpiling `OrbitalRotation` into Givens rotations. - [GivensDecompositionSlaterDeterminantSynthesis](qiskit_fermions.transpiler.passes.synthesis.GivensDecompositionSlaterDeterminantSynthesis.html.md): A `F2QSynthesisPlugin` for transpiling `PrepareSlaterDeterminant`. - [MapperFnEvolutionSynthesis](qiskit_fermions.transpiler.passes.synthesis.MapperFnEvolutionSynthesis.html.md): A `F2QSynthesisPlugin` for transpiling `Evolution` under a custom mapping. - [TrivialOccupationFermionicMeasureSynthesis](qiskit_fermions.transpiler.passes.synthesis.TrivialOccupationFermionicMeasureSynthesis.html.md): A `F2QSynthesisPlugin` for transpiling `FermionicMeasure` with trivial occupation. - [TrivialOccupationInitializeModesSynthesis](qiskit_fermions.transpiler.passes.synthesis.TrivialOccupationInitializeModesSynthesis.html.md): A `F2QSynthesisPlugin` for transpiling `InitializeModes` with trivial occupation. - [group_wise](qiskit_fermions.transpiler.passes.synthesis.group_wise.html.md): Wraps a mapper function so that it maps an operator one group at a time. - [simplify](qiskit_fermions.transpiler.passes.synthesis.simplify.html.md): Wraps a mapper function so that it simplifies the operator it returns. - [map_node_single_register](qiskit_fermions.transpiler.passes.utils.map_node_single_register.html.md): Map the single fermionic mode register acted upon by the circuit operation. - [generate_preset_jw_pass_manager](qiskit_fermions.transpiler.presets.generate_preset_jw_pass_manager.html.md): Generates a preset transpiler pipeline based on the `jordan_wigner()` mapping. - [givens_decomposition](qiskit_fermions.linalg.givens_decomposition.html.md): Decomposes a unitary matrix into Givens rotations and diagonal phases. - [givens_decomposition_slater](qiskit_fermions.linalg.givens_decomposition_slater.html.md): Decomposes the occupied orbitals of a Slater determinant into Givens rotations. - [SupportsApplyUnitaryPlaced](qiskit_fermions.protocols.SupportsApplyUnitaryPlaced.html.md): A package-specific extension of `ffsim.SupportsApplyUnitary`. - [SupportsCommutators](qiskit_fermions.protocols.SupportsCommutators.html.md): A Protocol indicating support for efficient commutator generation. - [SupportsFermionOperator](qiskit_fermions.protocols.SupportsFermionOperator.html.md): This package’s operator-conversion contract, converting an operator to a `FermionOperator`. - [SupportsMajoranaOperator](qiskit_fermions.protocols.SupportsMajoranaOperator.html.md): An equivalent of the `SupportsFermionOperator` protocol, targeting Majorana operators. ## Optional - [Top-level llms.txt](../llms.txt): Complete documentation index.