• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Qiskit / qiskit-fermions
98%

Build:
DEFAULT BRANCH: main
Repo Added 08 Feb 2026 09:21AM UTC
Files 104
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH main
branch: SELECT
CHANGE BRANCH
x
  • No branch selected
  • 2d-fermi-hubbard
  • README/1
  • apply-unitary
  • asorted-docs-improvements
  • bd-edits
  • bd-final-copyedits
  • branch-protection
  • build-isolation
  • build-process-fixes
  • build-wheels
  • canonicalize-operator-sqdrift
  • capi-remove-useless-exit-codes
  • ci-caching
  • ci-cross-platform-tests
  • ci-ensure-all-doctests-run
  • ci-fix-python
  • ci-lint
  • ci-test-macos
  • ci-test-windows
  • circuit-serialization
  • citation
  • claude.md
  • clean-qiskit-sys-dependencies
  • cleanup-ucj-variant
  • cleanup-unittest-class-pattern
  • clippy-all-targets
  • clippy-lint-warnings
  • commutators
  • coverage-reporting
  • dependabot-increase-if-necessary
  • dependabot/cargo/cbindgen-0.29.3
  • dependabot/cargo/cbindgen-0.29.4
  • dependabot/cargo/git2-0.21.0
  • dependabot/cargo/nalgebra-0.34.2
  • dependabot/cargo/nalgebra-0.35.0
  • dependabot/cargo/pyo3-stub-gen-0.19.0
  • dependabot/cargo/pyo3-stub-gen-0.20.0
  • dependabot/cargo/pyo3-stub-gen-0.22.2
  • dependabot/cargo/pyo3-stub-gen-0.22.3
  • dependabot/cargo/pyo3-stub-gen-0.23.0
  • dependabot/cargo/rayon-1.12.0
  • dependabot/cargo/regex-1.12.4
  • dependabot/cargo/regex-1.13.0
  • dependabot/cargo/regex-1.13.1
  • dependabot/cargo/thiserror-2.0.19
  • dependabot/cargo/thiserror-2.0.20
  • dependabot/github_actions/github_actions-007b9456e6
  • dependabot/github_actions/github_actions-5080f5591b
  • dependabot/github_actions/github_actions-640176b5ab
  • dependabot/github_actions/github_actions-674967a53d
  • dependabot/github_actions/github_actions-696b649f44
  • dependabot/github_actions/github_actions-903567a242
  • dependabot/github_actions/github_actions-d47ceab2ed
  • dependabot/pip/breathe-gte-4.36.0
  • dependabot/pip/highspy-gte-1.14.0
  • dependabot/pip/highspy-gte-1.15.0
  • dependabot/pip/mypy-1.20.0
  • dependabot/pip/mypy-2.1.0
  • dependabot/pip/mypy-2.3.0
  • dependabot/pip/nbsphinx-gte-0.9.8
  • dependabot/pip/pytest-cov-gte-7.1.0
  • dependabot/pip/pytest-gte-9.0.3
  • dependabot/pip/pytest-gte-9.1.1
  • dependabot/pip/pytest-subtests-gte-0.15.0
  • dependabot/pip/qiskit-gte-2.4.1-and-lt-3
  • dependabot/pip/qiskit-gte-2.5.1-and-lt-3
  • dependabot/pip/qiskit-sphinx-theme-approx-eq-2.1.0
  • dependabot/pip/ruff-0.15.4
  • dependabot/pip/ruff-0.15.8
  • dependabot/pip/ruff-0.16.0
  • dependabot/pip/setuptools-gte-82.0.1
  • dependabot/pip/toml-gte-0.10.2
  • dependabot/pip/tox-gte-4.55.0
  • dependabot/pip/tox-gte-4.56.1
  • dependabot/pip/tox-gte-4.58.0
  • dependabot/pip/typos-gte-1.47.0
  • dependabot/pip/typos-gte-1.48.0
  • dependency-groups
  • diag-coulomb-group-terms
  • docs-circuit-guide-restructure
  • docs-cleanup
  • docs-fix-indices-vs-modes
  • docs-include-init-docstrings
  • double-factorization
  • entry-points
  • evolution-decompose
  • evolution-synthesis-relax-num-qubits
  • explain-ffsim-backend
  • f2q-optimization
  • fcidump-grouping
  • fermion-circuit
  • fermion-state-prep
  • fermion_to_mode
  • fix-adjoint
  • fix-cext-fer_op-function-names
  • fix-cross-sign-bug
  • fix-docs-after-qiskit-2.5
  • fix-docs-preview-cleanup-action
  • fix-docs-relabel-modes
  • fix-f2q-synthesis-dag-corruption
  • fix-flaky-lucj-doctest
  • fix-ichop-conj
  • fix-inequality-check
  • fix-jw-definition
  • fix-latest-rust-lint
  • fix-majorana-fermion-mapping
  • fix-majorana-to-fermion
  • fix-minimum-rust-version
  • fix-mode-peeling
  • fix-normal-ordered
  • fix-qdrift-dropping-gates
  • fix-qdrift-mean-of-abs
  • fix-qdrift-time-coeff
  • fix-qiskit-header-include
  • fix-relabel-modes-post-processing
  • fix-sphinx-doctest
  • fix-update-caches
  • fix/exact-expm-trace
  • flowset
  • gate-mode-peeling
  • givens-decomposition
  • givens-slater
  • handle-jw-num-qubits
  • improve-claude-md
  • improve-coverage
  • improve-normal-ordered
  • inplace-qkobs
  • install-rust-manually
  • interaction-operators
  • iter-terms-with-groups
  • jordan-wigner-fn-naming
  • leverage-qiskit-pyo3-ffi
  • lint-cargo-fmt
  • main
  • maj_index_print
  • majorana-normal-order-ascending
  • memory-jw
  • merge-into-prep-slater
  • merge-orbital-rotations
  • mergify/bp/stable/0.1/pr-275
  • mergify/bp/stable/0.1/pr-278
  • mergify/bp/stable/0.1/pr-281
  • mergify/bp/stable/0.1/pr-284
  • mergify/bp/stable/0.1/pr-286
  • mergify/bp/stable/0.1/pr-288
  • mergify/bp/stable/0.1/pr-289
  • mergify/bp/stable/0.1/pr-292
  • mergify/bp/stable/0.1/pr-295
  • minor-ci-improvements
  • more-docs-styling
  • multi-initialize-modes
  • multi-ir-transpiler
  • mypy-warn-unused-ignores
  • no-build-isolation
  • operator-group-weights
  • operator-groups
  • operator-has-groups
  • operator-num-groups
  • operator-str-format
  • orbital-rotation
  • patch-1
  • perf-fcidump
  • perf-improvements
  • permute-indices
  • post-0.1.0-release
  • prepare-0.1-release
  • prepare-docs-for-platform
  • prepare-slater
  • preview-github-pages
  • print-ferm-op
  • product-formula
  • proper-stub-typing
  • protocols
  • pyext-operator-arrays
  • python-order-terms
  • qdrift-lazily-query-groups-by-idx
  • qdrift-performance
  • qdrift-preserve-sign
  • qdrift-remove-filter-diagonal
  • qdrift-trotterization
  • re-enable-sphinx-warnings
  • refactor-global-qargs-handling
  • refactor-many-body-order
  • refactor-ucj-norb
  • relabel-modes-docs
  • relabel-modes-optimization-pass
  • release-action
  • rename-fermion-indices-to-modes
  • replace-zero-len-arrays-with-null-pointers
  • restructure-docs
  • reuse-new-interfaces
  • right-multiplication
  • sandwich-ordering
  • skqd
  • slater-permutation-fast-path
  • slater-transport-min
  • some-install-improvements
  • sqdrift-filter-identities
  • sqdrift-filter-trivial
  • stable/0.1
  • staged-pass-manager
  • support-python-3.14
  • sybil
  • sync-readme-with-docs-index
  • term-ordering
  • test-qiskit-versions
  • transpile-lucj
  • unlock-reno
  • update-guides-overview
  • update-installation-docs
  • update-lint
  • update-sqdrift-tutorial
  • upgrade-pyo3-stub-gen
  • url-cleanup
  • variational-lucj
  • variational-ucc
  • version-info
  • wheel-macos-intel

31 Aug 2026 07:30AM UTC coverage: 98.046% (+0.03%) from 98.021%
33368664568

push

github

web-flow
Use exact FCI traces for matrix exponentials (#279)

* Use exact FCI traces for matrix exponentials

* Update releasenotes/notes/exact-fci-trace-9d950da5d3abe256.yaml

* refactor: read the exact FCI trace from the kernel, not a patched attribute

The exact-trace change plumbed the trace to the matrix-exponential callers by
patching a private `_trace` attribute onto the SciPy `LinearOperator` returned by
`_linear_operator_`. That coupled a *public* protocol's return value to metadata
only this package's wrapper sets: `SupportsLinearOperator` promises nothing more
than a `scipy.sparse.linalg.LinearOperator`, so any other conforming operator
reaching `Evolution` raised `AttributeError` on the read. The `isinstance`
FermionOperator guard hid that today, but the comment above it records the intent
to remove the guard once `SupportsLinearOperator` folds into `OperatorTrait` --
at which point the crash goes live.

A SciPy `LinearOperator` is also simply the wrong carrier: it has nowhere to put
the value, and composing one drops any attached attribute (`scale * linop`
returns a bare `_ScaledLinearOperator`), so the metadata survived exactly one hop
by luck.

The trace does not need transporting at all. The internal
`_fci_linear_operator_` carrier already returns the native `FciLinearOperator`,
which exposes `trace` as a real, typed, documented getter next to the
matrix-vector action. Going through that carrier gives both pieces from one
object, so the private attribute, both `cast(Any, ...)` escapes and a stale
`type: ignore` all disappear, and the public wrapper goes back to returning an
unadorned operator.

This keeps the numerical win intact: still 82x faster and ~63000x more accurate
than `traceA=0.0` on a large-trace operator, measured against a dense `expm`
reference. Behaviour is unchanged -- the trace handed to SciPy is bit-identical.

The shared helper now takes the operator rather than a prebuilt operator/trace
pair, which also confines the FCI-kern... (continued)

113 of 113 new or added lines in 5 files covered. (100.0%)

12191 of 12434 relevant lines covered (98.05%)

523805.41 hits per line

Relevant lines Covered
Build:
Build:
12434 RELEVANT LINES 12191 COVERED LINES
523805.41 HITS PER LINE
Source Files on main
  • Tree
  • List 104
  • Changed 4
  • Source Changed 4
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
33368664568 main Use exact FCI traces for matrix exponentials (#279) * Use exact FCI traces for matrix exponentials * Update releasenotes/notes/exact-fci-trace-9d950da5d3abe256.yaml * refactor: read the exact FCI trace from the kernel, not a patched attribute ... push 31 Aug 2026 07:34AM UTC web-flow github
98.05
33368010229 fix/exact-expm-trace Merge d50967cfc into cd27fcf1e Pull #279 31 Aug 2026 07:26AM UTC web-flow github
98.05
33096227836 fix/exact-expm-trace Merge 46fa4d129 into cd27fcf1e Pull #279 27 Aug 2026 05:06PM UTC web-flow github
98.05
33017076694 memory-jw Merge de8c1c4a1 into cd27fcf1e Pull #297 26 Aug 2026 09:53PM UTC web-flow github
98.05
33014860605 memory-jw Merge 48a5c1e3a into cd27fcf1e Pull #297 26 Aug 2026 09:26PM UTC web-flow github
98.05
32980911712 stable/0.1 docs: restructure the guides overview page (#295) (#296) * docs: restructure the guides overview page * docs: promote "workflow validation" section level (cherry picked from commit cd27fcf1e) Co-authored-by: Max ... push 26 Aug 2026 02:36PM UTC web-flow github
98.02
32979888878 mergify/bp/stable/0.1/pr-295 Merge bb4440b0c into 86d2e13e1 Pull #296 26 Aug 2026 02:27PM UTC web-flow github
98.02
32979863509 main docs: restructure the guides overview page (#295) * docs: restructure the guides overview page * docs: promote "workflow validation" section level push 26 Aug 2026 02:27PM UTC web-flow github
98.02
32978715709 update-guides-overview Merge 6b1ffb650 into 7c96ed62b Pull #295 26 Aug 2026 02:16PM UTC web-flow github
98.02
32977098172 update-guides-overview Merge 824ae83bf into 7c96ed62b Pull #295 26 Aug 2026 02:00PM UTC web-flow github
98.02
See All Builds (564)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc