Skip to content

v0.10.0

Latest

Choose a tag to compare

@github-actions github-actions released this 02 Jul 20:08
· 86 commits to master since this release

QuantumClifford v0.10.0

Diff since v0.9.19

  • (fix) The gates SQRTY, CXYZ, CZYX were computing phases incorrectly when acting on I stabilizers.
  • (fix) Paulis with imaginary phases had their phases incorrectly tracked.
  • (fix) rowdecompose was 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.
  • QuantumCliffordJuMPExt is a new extension depending on the JuMP solver suite. It enables computing minimum distance for quantum LDPC codes via Mixed Integer Programming (MIP) using JuMP.
  • QuantumCliffordOscarExt is a new extension depending on the Oscar CAS. It provides more convenient ways to construct two-block-group-algebra codes and more.
  • Improvements to GeneralizedStabilizer API including support for products and tensor product for many Clifford and non-Clifford operators and states.
  • expect is now implemented for GeneralizedStabilizer.
  • projectrand! is now implemented for GeneralizedStabilizer.
  • QuantumClifford now depends on QECCore. QECCore is a new package separate from QuantumClifford, 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_x and parity_checks_z -> parity_matrix_z
    • AbstractECC -> AbstractQECC
    • ClassicalCode -> AbstractCECC
    • Some codes are moved to QECCore from QuantumClifford, including Toric, Surface, RepCode, CSS, Shor9, Steane7, Cleve8, Perfect5, Bitflip3.
  • (breaking) StabMixture was renamed to GeneralizedStabilizer.
  • Constructing a Destabilizer out of a full-rank Stabilizer does not require a canonicalization anymore, i.e. stabilizerview(Destabilizer(s))==s is guaranteed.
  • The maximally_mixed function 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!) for GeneralizedStabilizer (#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 GeneralizedStabillizer API: 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:

  • Color codes [$200] (#360)
  • Performance of indexing PauliOperator with UnitRange (#455)
  • Document the simulator interface (#488)
  • Measurement doesn't take Stabilizer type. (#492)