QuantumClifford v0.10.0
- (fix) The gates
SQRTY,CXYZ,CZYXwere computing phases incorrectly when acting onIstabilizers. - (fix) Paulis with imaginary phases had their phases incorrectly tracked.
- (fix)
rowdecomposewas not accounting for the phase of the input Pauli string, leading to potential errors in non-Clifford functionality. - Various stabilizer data structures can now be constructed out of sequences of Paulis.
- Most canonicalization routines can now act on sequences of Paulis.
project*!family of functions now work on more tableau types.QuantumCliffordJuMPExtis a new extension depending on the JuMP solver suite. It enables computing minimum distance for quantum LDPC codes via Mixed Integer Programming (MIP) usingJuMP.QuantumCliffordOscarExtis a new extension depending on the Oscar CAS. It provides more convenient ways to construct two-block-group-algebra codes and more.- Improvements to
GeneralizedStabilizerAPI including support for products and tensor product for many Clifford and non-Clifford operators and states. expectis now implemented forGeneralizedStabilizer.projectrand!is now implemented forGeneralizedStabilizer.QuantumCliffordnow depends onQECCore.QECCoreis a new package separate fromQuantumClifford, which specifies the interfaces error correction codes, together with declaring a number of the more essential ones. Naming changes:- (breaking)
parity_checks_x->parity_matrix_xandparity_checks_z->parity_matrix_z AbstractECC->AbstractQECCClassicalCode->AbstractCECC- Some codes are moved to
QECCorefromQuantumClifford, includingToric,Surface,RepCode,CSS,Shor9,Steane7,Cleve8,Perfect5,Bitflip3.
- (breaking)
- (breaking)
StabMixturewas renamed toGeneralizedStabilizer. - Constructing a
Destabilizerout of a full-rankStabilizerdoes not require a canonicalization anymore, i.e.stabilizerview(Destabilizer(s))==sis guaranteed. - The
maximally_mixedfunction is now available for creating maximally mixed multi-qubit states. - Much faster indexing and slicing of
PauliOperator.
Merged pull requests:
- improvements to the non-clifford functionality (#259) (@Krastanov)
- tensor product of
GeneralizedStabilizer(#345) (@Fe-r-oz) - Color codes support 1 (#361) (@amicciche)
- add QuantumCliffordOscarExt to provide convenient API for finitely presented groups via specific group presentation (#400) (@thofma)
- noncliff: in-place Pauli measurements (
projectrand!) forGeneralizedStabilizer(#427) (@Fe-r-oz) - compute the minimum distance of QLDPC using Mixed Integer Programming (#439) (@Fe-r-oz)
- CompatHelper: bump compat for Nemo to 0.49, (keep existing compat) (#483) (@github-actions[bot])
- Bump dawidd6/action-download-artifact from 8 to 9 (#484) (@dependabot[bot])
- improve getindex performance for PauliOperator (#455) (#487) (@LEXUGE)
- fix typo in print statement (#494) (@Krastanov)
- CompatHelper: bump compat for Nemo to 0.50, (keep existing compat) (#496) (@github-actions[bot])
- CompatHelper: bump compat for Hecke in [weakdeps] to 0.36, (keep existing compat) (#497) (@github-actions[bot])
- improvements to
GeneralizedStabillizerAPI:sm⊗S"X",pcT⊗P"X",pcT*sm,pcT⊗pcT(#498) (@Fe-r-oz) - Bump dawidd6/action-download-artifact from 9 to 10 (#499) (@dependabot[bot])
- CompatHelper: bump compat for QuantumInterface to 0.4, (keep existing compat) (#500) (@github-actions[bot])
- Initialize QECCore package and make it as a dependency of QC.jl (#502) (@nzy1997)
- CompatHelper: bump compat for Makie in [weakdeps] to 0.23, (keep existing compat) (#507) (@github-actions[bot])
- Move some simple codes into QECCore.jl (#508) (@nzy1997)
- Bump dawidd6/action-download-artifact from 10 to 11 (#510) (@dependabot[bot])
- CompatHelper: bump compat for Makie in [weakdeps] to 0.24, (keep existing compat) (#514) (@github-actions[bot])
- constructors from arrays of Paulis, and canonicalization of arrays of Paulis (#515) (@Krastanov)
- doc updates and buildkite updates (#516) (@Krastanov)
- chore: fix deprecation warnings and remove unused imports in tests (#520) (@LEXUGE)
- Fixed incorrect phases on certain single qubit symbolics. (#521) (@Hamiltonian-Action)
- Fixing incorrect phase when applying Paulis. (#523) (@Hamiltonian-Action)
- fix: single qubit projection now takes Stabilizer (#527) (@LEXUGE)
- split out the ECC tests (#536) (@Krastanov)
Closed issues: