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

Qiskit / qiskit-fermions / 34605419033
98%

Build:
DEFAULT BRANCH: main
Ran 11 Sep 2026 01:43PM UTC
Jobs 1
Files 113
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

11 Sep 2026 01:37PM UTC coverage: 97.974% (+0.001%) from 97.973%
34605419033

push

github

web-flow
Add `apply` to the `FermionicTrotterization` pass (#346)

* fix(transpiler): use global mode indices in RelabelModes

`find_permutation` read each `Evolution`'s operator directly to gather the
excitations it feeds to `build_excitation_span_minimization_model`. Those mode
indices are local to the gate: a `FermionicEvolutionSynthesis` narrows every
factor it emits onto that factor's support, leaving the factor's position in the
register encoded in the node's `qargs` alone. The model is defined over the
register's modes, so the two disagree for any circuit whose evolutions have been
decomposed.

The effect was not a permutation that merely came out worse. Every narrowed
two-mode factor was gathered as the excitation (0, 1) no matter which modes it
actually coupled, so a long-range coupling -- the excitation a span-minimizing
model most wants to see -- disappeared from the model entirely, and the pass
silently optimized a Hamiltonian that was not the circuit's. Nothing raised,
because local indices are perfectly valid indices.

Translate through `qargs` before gathering, reusing qdrift's `_global_modes`.
This mirrors what the fermion-to-qubit stage already does with the same operators
(`MapperFnEvolutionSynthesis` lifts the local operator onto its global mode
indices before mapping), so both consumers now agree on what a factor's modes
mean.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* feat(transpiler): apply the synthesis in FermionicTrotterization

The pass only tagged each `Evolution` with a synthesis method and left the
expansion to a separate `Decompose("Evolution")`. The stated reason was to keep
whole operators available to later passes, `RelabelModes` above all, but that
premise does not hold: `RelabelModes.run` rewires by permuting `qargs` and never
touches an operator, and its automatic model now translates through `qargs`
before gathering excitations, so it reads a decomposed circuit as faithfully as
an undecomposed one. Deferring ... (continued)

12 of 12 new or added lines in 2 files covered. (100.0%)

12139 of 12390 relevant lines covered (97.97%)

532010.09 hits per line

Jobs
ID Job ID Ran Files Coverage
1 34605419033.1 11 Sep 2026 01:43PM UTC 113
97.97
GitHub Action Run
Source Files on build 34605419033
  • Tree
  • List 113
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #34605419033
  • 7ef4f94b on github
  • Prev Build on main (#34600589741)
  • Next Build on main (#34609082514)
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