Tools
qcr:2604.16511.1

ExtraFerm

Open-source quantum circuit simulator tailored to quantum chemistry applications. Computes the Born-rule probabilities of samples drawn from circuits built of passive fermionic linear optical elements and controlled-phase gates, with both exact and approximate calculation. In approximate mode its runtime grows exponentially only in the magnitudes of the controlled-phase gate angles, letting it reach systems beyond the practical limits of conventional state-vector methods. Aimed at near-term chemistry workflows such as pairing the local unitary cluster Jastrow (LUCJ) ansatz with sample-based quantum diagonalization (SQD), where it offers substantially better latency and memory scaling than tensor-network and state-vector simulators.
Chemistry
Uploaded 1 month ago
161
Views
GitHub1
Citing this entry? Use this QCR ID
Uploaded by
QL
QCR Librarian

Overview

zhassman/ExtraFerm
11
README.md

ExtraFerm

pip install extraferm

Overview

This library can be used to estimate Born rule probabilities of measurement outcomes from particle-number conserving extended matchgate circuits:

  • Extended matchgate: the universal gate set consisting of matchgates + controlled‑phase gates
  • Particle-number conserving: the Hamming weight of initial state is preserved at all points by the circuit

Circuit Extent

Our simulator runs most efficiently when the circuit’s extent is close to one. The extent is defined as:

where is the angle of the -th controlled-phase gate.

Use

Users should interact with the simulator through the outcome_probabilities function in interface.py.

Example

import numpy as np
from qiskit import QuantumCircuit
from qiskit.circuit.library import XXPlusYYGate

from extraferm import outcome_probabilities

# Create a small circuit
seed = 123
rng = np.random.default_rng(seed=seed)
angles = rng.uniform(0, 2 * np.pi, size=12)
qc = QuantumCircuit(4)
qc.x([0, 2])
qc.append(XXPlusYYGate(theta=angles[0], beta=angles[1]), [0, 1])
qc.cp(theta=angles[3], control_qubit=1, target_qubit=2)
qc.append(XXPlusYYGate(theta=angles[4], beta=angles[5]), [1, 2])
qc.cp(theta=angles[6], control_qubit=0, target_qubit=1)
qc.p(theta=angles[7], qubit=0)
qc.append(XXPlusYYGate(theta=angles[8], beta=angles[9]), [2, 3])
qc.append(XXPlusYYGate(theta=angles[10], beta=angles[11]), [0, 1])

# Estimate a few bitstring probabilitites
bitstrings = [0b0101, 0b1100, 0b0011]
probs = outcome_probabilities(
    circuit=qc, outcome_states=bitstrings, trajectory_count=100_000, seed=seed
)

# Show results
print(probs)
qc.draw("mpl", scale=0.8, fold=-1)

[5.09355260e-01 1.56195696e-33 8.07714813e-02]

Quantum Circuit

Citing ExtraFerm

You can cite ExtraFerm using the following BibTeX:

@misc{hassman2025enhancingchemistryquantumcomputers,
      title={Enhancing Chemistry on Quantum Computers with Fermionic Linear Optical Simulation}, 
      author={Zack Hassman and Oliver Reardon-Smith and Gokul Subramanian Ravi and Frederic T. Chong and Kevin J. Sung},
      year={2025},
      eprint={2511.12416},
      archivePrefix={arXiv},
      primaryClass={quant-ph},
      url={https://arxiv.org/abs/2511.12416}, 
}

Join the Discussion

Comments (0)

No comments yet. Be the first to share your thoughts!

Indexed by QCR Librarian

This entry was created automatically from publicly available records. QCR links to public sources and only stores repository content where the license permits redistribution.

Publication

doi:10.48550/arxiv.2511.12416
Enhancing Chemistry on Quantum Computers with Fermionic Linear Optical Simulation

Zack Hassman, Oliver Reardon-Smith, Gokul Subramanian Ravi, Frederic T. Chong, Kevin J. Sung

Versions

v1 Latest
Apr 22, 2026
qcr:2604.16511.1

Cite all versions? Use the base QCR ID to always reference the latest version of this entry.

Keywords

matchgate circuits
classical simulator
benchmarking
sqd

You may also like1