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

Qiskit / qiskit-fermions / 34119094223
98%

Build:
DEFAULT BRANCH: main
Ran 07 Sep 2026 12:01PM UTC
Jobs 1
Files 111
Run time 1min
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

07 Sep 2026 11:55AM UTC coverage: 98.195% (-0.02%) from 98.21%
34119094223

push

github

web-flow
refactor(circuit)!: build UCJ from an ffsim UCJ operator (#322)

The UCJ gate reimplemented how the ansatz tensors are *obtained* (double
factorization of the t2 amplitudes, interaction-pair masking, and the
parameter-vector packing) alongside the part that is actually this package's
concern: turning those tensors into a mapper-agnostic fermionic circuit. The
first half duplicated ffsim, which is where the ansatz math belongs, so this
narrows the gate to the second half and takes the ffsim operator directly.

The duplication was verified, not assumed. Against ffsim 0.0.84, the removed
`num_parameters`/`from_parameters`/`to_parameters` agreed elementwise with
`n_params`/`from_parameters`/`to_parameters` for all three spin variants and
both `with_final_orbital_rotation` settings, and the tensor layouts and dtypes
were already identical, so passing the operator through changes no numerics.
What it gains is what ffsim has and this package never implemented: the
compressed (`optimize=True`) double factorization and `from_cisd_vec`.

What remains is the part with no ffsim equivalent: the OrbitalRotation and
Evolution decomposition, and in particular the closed-form circle-method edge
coloring that hands Evolution a pre-grouped FermionOperator so each group
synthesizes as one parallel layer. That is what makes the gate lowerable
through any fermion-to-qubit encoding, which ffsim's JW-hardcoded
`UCJOpSpinBalancedJW` cannot do, and it is unchanged: a 2-repetition balanced
ansatz still expands to 10 OrbitalRotation plus 2 Evolution gates.

Two consequences worth naming. ffsim is now the gate's input type rather than
an accelerator with a fallback, so UCJ is constructible only where ffsim
installs, which excludes Windows; that is documented with a WSL pointer rather
than worked around. Since the class docstring's example now needs ffsim, it is
gated with `.. skip: start if(not HAS_FFSIM)`, which required registering Sybil's
`SkipParser` in python/conftest.py; do... (continued)

31 of 31 new or added lines in 1 file covered. (100.0%)

1 existing line in 1 file now uncovered.

13218 of 13461 relevant lines covered (98.19%)

490019.45 hits per line

Coverage Regressions

Lines Coverage ∆ File
1
99.89
-0.11% crates/core/src/mappers/library/jordan_wigner.rs
Jobs
ID Job ID Ran Files Coverage
1 34119094223.1 07 Sep 2026 12:01PM UTC 111
98.19
GitHub Action Run
Source Files on build 34119094223
  • Tree
  • List 111
  • Changed 2
  • Source Changed 1
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #34119094223
  • 0ae8883c on github
  • Prev Build on main (#34117020294)
  • Next Build on main (#34125176929)
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