What's Changed
- Deploy docs via Github Action by @mrossinek in #10
- Assorted cleanups by @mrossinek in #15
- build(deps): bump git2 from 0.20.3 to 0.20.4 by @dependabot[bot] in #17
- build(deps): bump regex from 1.12.2 to 1.12.3 by @dependabot[bot] in #18
- Measure and report code coverage by @mrossinek in #16
- ci: use PEP 735 dependency groups by @mrossinek in #19
- Lint during CI by @mrossinek in #20
- Run tests in CI across supported platforms by @mrossinek in #21
- fix: replace zero-length arrays with NULL pointers by @mrossinek in #25
- ci: fix python version installed in development tests by @mrossinek in #28
- ci: enable macos development tests by @mrossinek in #26
- refactor: leverage new in-place arithmetics with QkObs by @mrossinek in #30
- ci: treat clippy warnings as errors when linting by @mrossinek in #34
- refactor: remove useless ExitCode's from C API by @mrossinek in #37
- ci: replace pytest-doctest with sybil by @mrossinek in #36
- docs: fix rendering of doctests by @mrossinek in #38
- refactor: rename fermionic indices to modes by @mrossinek in #40
- docs: fix left-over mentions of
indicesby @mrossinek in #41 - build(deps-dev): bump ruff from 0.14.14 to 0.15.4 by @dependabot[bot] in #45
- build(deps): bump actions/upload-artifact from 6 to 7 in the github_actions group by @dependabot[bot] in #44
- Operator mode relabeling functions by @mrossinek in #32
- build(deps): bump pyo3-stub-gen from 0.17.2 to 0.19.0 by @dependabot[bot] in #35
- fix: ensure clang can find qiskit.h by @mrossinek in #47
- Givens decompositon by @mrossinek in #48
- Minor lint improvements by @mrossinek in #49
- build(deps): bump actions/deploy-pages from 4 to 5 in the github_actions group by @dependabot[bot] in #51
- build(deps): bump pyo3-stub-gen from 0.19.0 to 0.20.0 by @dependabot[bot] in #52
- [Python] initial
circuitandtranspilermodules by @mrossinek in #53 - build(deps-dev): bump mypy from 1.19.1 to 1.20.0 by @dependabot[bot] in #62
- build(deps-dev): bump ruff from 0.15.4 to 0.15.8 by @dependabot[bot] in #63
- build(deps): bump nalgebra from 0.34.1 to 0.34.2 by @dependabot[bot] in #65
- Operator groups by @mrossinek in #60
- Various improvements to the installation process by @mrossinek in #67
- upgrade pyo3-stub-gen by @mrossinek in #64
- ci: enable windows development tests by @mrossinek in #24
- ci: use pip install --no-build-isolation by @mrossinek in #71
- Test against multiple Qiskit versions by @mrossinek in #69
- build(deps): bump actions/upload-pages-artifact from 4 to 5 in the github_actions group by @dependabot[bot] in #72
- fix: the majorana_to_fermion encoding logic by @mrossinek in #74
- build(deps): bump rayon from 1.11.0 to 1.12.0 by @dependabot[bot] in #75
- fix: correct order of operations inside majorana <> fermion mapping by @mrossinek in #79
- feat: implement right-multiplication for operators by @mrossinek in #80
- feat: add the
sandwichargument toFermionOperator.normal_orderedby @mrossinek in #81 - fix: also check rust formatting during linting by @mrossinek in #82
- feat: implements the
InitializeModesfermionic gate by @mrossinek in #83 - feat: implements the
OrbitalRotationgate by @mrossinek in #84 - build(deps): bump pyo3-stub-gen from 0.22.1 to 0.22.2 by @dependabot[bot] in #85
- build(deps-dev): update breathe requirement from >=4.35.0 to >=4.36.0 by @dependabot[bot] in #86
- build(deps-dev): update toml requirement from >=0.9.6 to >=0.10.2 by @dependabot[bot] in #87
- feat: add a Python-level
OperatorTraitprotocol by @mrossinek in #91 - Provide read-only access to internal operator data structures by @mrossinek in #43
- feat: allow ascending index order in
MajoranaOperator.normal_orderedby @mrossinek in #92 - Implement a decomposition for the
Evolutiongate by @mrossinek in #93 - refactor: make
num_qubitsin EvolutionSynthesis flexible by @mrossinek in #94 - feat: formalize the staged pass manager by @mrossinek in #95
- feat: QDrift Trotterization optimization by @mrossinek in #97
- docs: update SqDRIFT tutorial by @mrossinek in #98
- MajoranaAction str by @MIWdlB in #100
- Rename
FermiontoFermionicin circuits and transpiler modules by @MIWdlB in #99 - feat: update FermionOperator printing by @mrossinek in #101
- Fermionic mode ordering optimization by @spiccinelli in #29
RelabelModesoptimization pass by @mrossinek in #102- Restructure documentation around guides by @mrossinek in #107
- build(deps): bump pyo3-stub-gen from 0.22.2 to 0.22.3 by @dependabot[bot] in #108
- Remove unneeded git2 dependency by @mrossinek in #112
- Update index.rst with new guidelines by @abbycross in #111
- build(deps): bump nalgebra from 0.34.2 to 0.35.0 by @dependabot[bot] in #113
- build(deps): bump cbindgen from 0.29.2 to 0.29.3 by @dependabot[bot] in #114
- docs: reorder sections of circuits guide by @mrossinek in #116
- Refactor global qargs handling by @mrossinek in #115
- build(deps-dev): bump mypy from 1.20.0 to 2.1.0 by @dependabot[bot] in #120
- test: remove unnecessary subclass pattern by @mrossinek in #125
- fix: formatting of doctest by @mrossinek in #126
- ci: generate pystubs before running Python testsuite by @mrossinek in #127
- docs: improve installation verification tips by @mrossinek in #128
- refactor: replace operator
__str__with__format__by @mrossinek in #130 - perf: improve performance of
QDriftoptimization pass by @mrossinek in #134 - build(deps): bump regex from 1.12.3 to 1.12.4 by @dependabot[bot] in #137
- build(deps): bump cbindgen from 0.29.3 to 0.29.4 by @dependabot[bot] in #138
- fix: correctly compute mean of absolute coeffs during qDrift by @mrossinek in #141
- Rename
many_body_ordertomax_rankby @mrossinek in #142 - ci: include --all-targets for clippy linting by @mrossinek in #143
- build(deps): bump actions/checkout from 6 to 7 in the github_actions group by @dependabot[bot] in #145
- build(deps): bump pyo3-stub-gen from 0.22.3 to 0.23.0 by @dependabot[bot] in #144
- Edge-/Transfer-Vertex operators by @mrossinek in #123
- feat: implement
OperatorTrait.num_groupsby @mrossinek in #149 - Group terms while loading an
FCIDumpby @mrossinek in #151 - fix: replace operator coefficients with identity during qDrift by @mrossinek in #154
- Double factorization by @mrossinek in #146
- Add operator iterator methods with groups by @mrossinek in #152
- build(deps-dev): update pytest-cov requirement from >=7.0 to >=7.1.0 by @dependabot[bot] in #156
- build(deps-dev): update pytest-subtests requirement from >=0.14 to >=0.15.0 by @dependabot[bot] in #158
- build(deps-dev): update qiskit-sphinx-theme requirement from ~=2.0.0 to ~=2.1.0 by @dependabot[bot] in #160
- Leverage
qiskit-pyo3-ffiby @mrossinek in #150 - Refactor the pass manager to Qiskit 2.5's Multi-IR transpiler pipeline by @mrossinek in #155
- docs: include identity filtering in SqDRIFT guide by @mrossinek in #148
- Remove the need for build-isolation by @mrossinek in #163
- docs: improve RelabelModes explanation by @mrossinek in #161
- hack: temporarily allow sphinx warnings by @mrossinek in #166
- fix: increase minimum required Rust version by @mrossinek in #167
- fix: preserve coefficient signs in QDriftTrotterization by @spiccinelli in #165
- fix: ensure init docstrings are included by @mrossinek in #168
- fix: lint after latest rust release by @mrossinek in #170
- fix: qDrift optimization should preserve non-Evolution gates by @mrossinek in #171
- feat: properly expose synthesis plugin via entry-points by @mrossinek in #169
- Asorted docs improvements by @mrossinek in #172
- fix: make operator
__ne__the negation of__eq__by @mrossinek in #173 - fix: raise on too-small num_qubits in jordan_wigner by @mrossinek in #174
- ci: support and test Python 3.14 by @mrossinek in #175
- build(deps): bump regex from 1.12.4 to 1.13.0 by @dependabot[bot] in #176
- feat: add version information to the package by @mrossinek in #178
- Fix relabel modes post processing by @mrossinek in #177
- docs: refresh developer docs and drop a stale Makefile export by @mrossinek in #179
- fix: faulty definition of Jordan-Wigner encoding in docs by @mrossinek in #180
- fix: prefix cext FermionOperator term functions with qf_ferm_op_ by @mrossinek in #181
- docs: clarify QISKIT_LIB/QISKIT_INCLUDE usage in CLAUDE.md by @mrossinek in #182
- Term ordering by @mrossinek in #183
- feat: add
order_termsfor user-controlled term ordering by @mrossinek in #184 - Some refactoring by @mrossinek in #185
- Proper stub typing by @mrossinek in #186
- ci: greedily warn about unused type ignores by @mrossinek in #189
- ffsim-based simulation engine by @mrossinek in #187
- build(deps): bump regex from 1.13.0 to 1.13.1 by @dependabot[bot] in #192
- fix: correct cross-spin sign for interleaved mixed FCI terms by @mrossinek in #196
- feat(linalg): add rectangular Givens decomposition for Slater prep by @mrossinek in #197
- Parallel
InitializeModesvia an assert-only validator by @mrossinek in #198 - Fix the DAG corruption in
F2QSynthesisby @mrossinek in #201 - Adds the
PrepareSlaterDeterminantgate by @mrossinek in #200 - perf(transpiler): peel disjoint unit-orbitals in Slater synthesis by @mrossinek in #203
- feat(transpiler): merge runs of consecutive OrbitalRotation gates by @mrossinek in #204
- feat(transpiler): fuse
InitializeModes+OrbitalRotationintoPrepareSlaterDeterminantby @mrossinek in #205 - fix(transpiler): compensate JW Z-string for interleaved peeled modes in Slater synthesis by @mrossinek in #206
- feat(transpiler): block-split the mixing remainder in Slater synthesis by @mrossinek in #207
- Improve coverage by @mrossinek in #208
- Generalize
jordan_wignerby @mrossinek in #209 - refactor(ucj): parallelize diagonal Coulomb evolution via disjoint-support groups by @mrossinek in #211
- refactor(transpiler): default Slater-prep synthesis to minimal two-qubit depth by @mrossinek in #212
- build(deps): bump thiserror from 2.0.18 to 2.0.19 by @dependabot[bot] in #214
- build(deps): bump actions/setup-python from 6 to 7 in the github_actions group by @dependabot[bot] in #215
- feat(transpiler): let MapperFnEvolutionSynthesis choose the product formula by @mrossinek in #216
- fix(docs): ensure determinism of SqDRIFT guide by @mrossinek in #218
- docs(guides): expand the LUCJ guide by @mrossinek in #213
- docs(guides): add a getting-started guide for SKQD Krylov circuits by @mrossinek in #217
- docs: add citation information by @mrossinek in #220
- ci: also lint python/*.py by @mrossinek in #221
- fix(docs): seed transpiler to avoid flaky SWAP count by @mrossinek in #224
- docs(guides): add an explanatory guide on the ffsim-backend by @mrossinek in #223
- feat(transpiler): add
filter_trivialtoQDriftTrotterizationby @mrossinek in #222 - Introduce proper python
Protocols by @mrossinek in #226 - fix: ensure
FermionicCircuitintances can be serialized by @mrossinek in #228 - perf(transpiler): remove
QDriftTrotterization'sfilter_diagonal_termsflag by @mrossinek in #230 - Clean up URLs by @caleb-johnson in #231
- perf: support lazy, index-based group lookup in
split_out_groupsby @mrossinek in #232 - feat(operators): add
has_groups()to the Python API by @mrossinek in #233 - perf(operators): compute group weights natively for all operator types by @mrossinek in #235
- refactor(circuit): make
UCJ.__init__take an explicit variant instead of inferring it by @mrossinek in #236 - Variational UCJ by @mrossinek in #237
- Variational UCC by @mrossinek in #238
- refactor(circuit): remove
norbfromUCJ.__init__by @mrossinek in #241 - build(deps): bump coverallsapp/github-action from 2.3.7 to 2.3.8 in the github_actions group by @dependabot[bot] in #244
- ci: only bump pip dependencies if necessary by @mrossinek in #250
- build(deps-dev): bump ruff from 0.15.8 to 0.16.1 by @dependabot[bot] in #251
- Fix the commutator helpers by @mrossinek in #252
- Fix accidental term conjugation during
OperatorTrait.ichopby @mrossinek in #253 - Fix the
adjointofEdge/TransferVertexOperatorby @mrossinek in #254 - Fix
EdgeVertexOperator.normal_orderedby @mrossinek in #255 - perf(operators): stop copying operator buffers that are never read by @mrossinek in #256
- Contract generators in Edge/Transfer
normal_orderedby @mrossinek in #257 - ci: add cibuildwheel config and wheel-build workflows by @mrossinek in #227
- Speed up loading a
FermionOperatorfrom an FCIDump file by @mrossinek in #262 - build(deps): bump pypa/cibuildwheel from 3.4.0 to 4.2.0 in the github_actions group by @dependabot[bot] in #263
- ci: update rustup logic by @mrossinek in #264
- ci: add release action by @mrossinek in #260
- Rework Github actions by @mrossinek in #265
- build: publish macOS x86_64 wheels by @mrossinek in #267
- Build process fixes by @mrossinek in #268
- ci: add caching to reduce runtime by @mrossinek in #269
- fix(ci): install
buildwhere the wheel is actually built by @mrossinek in #270 - Add a 1D Fermi-Hubbard guide by @mrossinek in #240
- Add a 2D Fermi-Hubbard guide by @mrossinek in #242
- docs: prepare for IQP migration by @mrossinek in #259
- ci: host browsable documentation previews on GitHub Pages by @mrossinek in #271
- fix(ci): do not fail docs preview cleanup when it does not exist by @mrossinek in #273
- Prepare 0.1 release by @mrossinek in #274
New Contributors
- @mrossinek made their first contribution in #10
- @dependabot[bot] made their first contribution in #17
- @MIWdlB made their first contribution in #100
- @spiccinelli made their first contribution in #29
- @abbycross made their first contribution in #111
- @caleb-johnson made their first contribution in #231
Full Changelog: https://github.com/Qiskit/qiskit-fermions/commits/0.1.0