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

Qiskit / qiskit / 34099395685
88%

Build:
DEFAULT BRANCH: main
Ran 07 Sep 2026 09:17AM UTC
Jobs 1
Files 963
Run time 3min
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 07:47AM UTC coverage: 87.874% (+0.06%) from 87.819%
34099395685

push

github

web-flow
Implement `MCTS` algorithm for synthesizing `PauliEvolution` gates (#16581)

* Refactoring Clifford class

PauliList allows to store an arbitrary number of Paulis with associated phases
in a packed format that is optimized for vectorized conjugation by Clifford gates.

Clifford uses PauliList.

* The initial implementation. The rollout strategy is completely identical to the rollout
strategy in the python code (up to a small bug fix in the python code), ensuring that
this implementation and the original python code give similar results. In particular,
this is the reason why we are reversing the iterators when calling max_by_key -- to
ensure that the first candidate with the best score gets chosen, or why we are considering
the pair (j, i) directly after the pair (i, j).

* Replacing compare and identify methods by chunk-based computations from the
Rustiq paper. This changes the results, however on average the number of CX-gates
is about the same as before.

For efficiency, this uses table lookups instead of direct conjugation,
similarly to the implementation in Rustiq, which further improves the runtime by
2x on larger instances.

* implementing upto phase and clifford options

fixing global phase with all-identity paulis

cleanup

* Finalizing the plugin interface

Making pass over tests

Some cleanup

* improving PauliList::from_pauli_labels methods and adding error handling

* Also using Result for Rustiq's inner synthesis method

* performance optimization

When computing the score of applying a given Clifford circuit on a pair of qubits,
instead of iterating over all active Paulis and computing the score change for this
pair of qubits, it is faster to first count the number of pairs of each type and then
sum up the results. This gives up to 10x performance improvement for the larger circuits.
Interestingly, the idea for this optimization was suggested by Claude when I privately
asked it to make performance suggestions.

* Replacing unwrap for cli... (continued)

674 of 711 new or added lines in 8 files covered. (94.8%)

8 existing lines in 3 files now uncovered.

116757 of 132869 relevant lines covered (87.87%)

981492.12 hits per line

Uncovered Changes

Lines Coverage ∆ File
16
72.88
crates/synthesis/src/evolution/chunks.rs
12
97.6
crates/synthesis/src/evolution/mcts.rs
4
95.51
-4.49% crates/synthesis/src/evolution/mod.rs
4
86.14
0.2% qiskit/transpiler/passes/synthesis/hls_plugins.py
1
90.52
3.14% crates/quantum_info/src/clifford.rs

Coverage Regressions

Lines Coverage ∆ File
5
92.29
-0.26% crates/qasm2/src/lex.rs
2
80.7
-0.04% crates/circuit/src/parameter/symbol_expr.rs
1
90.31
0.0% crates/circuit/src/parameter/parameter_expression.rs
Jobs
ID Job ID Ran Files Coverage
1 34099395685.1 07 Sep 2026 09:17AM UTC 963
87.87
GitHub Action Run
Source Files on build 34099395685
  • Tree
  • List 963
  • Changed 11
  • Source Changed 6
  • Coverage Changed 10
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #34099395685
  • 58a45d2d on github
  • Prev Build on gh-readonly-queue/main/pr-16920-5f0a8617ef5816c4e39fab98b4e7d28e85e941fd (#34094874284)
  • Next Build on main (#34117120878)
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