Skip to content

Releases: qLDPCOrg/qLDPC

v0.3.3

Choose a tag to compare

@perlinm perlinm released this 01 Aug 13:12
b63ee49

Major changes

  • add QuditCode.to_swel and .maybe_to_swel by @perlinm in #542
  • Add QuditCode.get_destabilizer_ops by @perlinm in #543
  • Add CSS.get_destabilizer_ops by @perlinm in #544
  • Add PauliChannelSequence: sequence of independent Pauli-string errors by @perlinm in #545
  • allow NoiseRule and PauliChannel to act on tsim circuits by @perlinm in #547
  • Add confidence_ratio option to LookupDecoder by @perlinm in #552
  • add GolayCode and QuantumGolayCode by @perlinm in #555

Minor changes

Full Changelog: v0.3.2...v0.3.3

v0.3.2

Choose a tag to compare

@perlinm perlinm released this 17 Jul 23:34
ee6770a

Major changes

  • User-specified idling errors and treat one/two-qubit SPP/SPP_DAG as one/two-qubit Cliffords by @perlinm in #519
  • Support multi-qubit noise rules by @perlinm in #521
  • Condition errors on noiseless qubits by @perlinm in #446
  • Support target- and tag-specific noise rules by @perlinm in #525
  • Add PauliChannel.to_circuit by @perlinm in #529
  • Transversal logical S gate for SWEL codes by @perlinm in #532
  • Add option for the LookupDecoder to predict observable flips directly by @perlinm in #533
  • Add CSSCode.is_self_dual and CSSCode.is_swel by @perlinm in #535
  • Allow a LookupDecoder to ignore post-selected syndrome bits by @perlinm in #538
  • Add SWEL (self-dual with equivalent logicals) support for CSS codes over arbitrary finite fields by @perlinm in #536

Minor changes

  • Use galois.GF2 by @perlinm in #515
  • Add tsim support to NoiseModel by @perlinm in #516
  • Accept a pathlib.Path for disk cache path by @perlinm in #517
  • Add ErrorTargets by @perlinm in #520
  • Hygiene: enforce line width limit for docstrings by @perlinm in #522
  • Rename ErrorTargets to FlipPattern by @perlinm in #523
  • Minor notebook update by @perlinm in #524
  • Minor bugfixes and cleanup in recent noise_model.py additions by @perlinm in #526
  • Make NoiseModels serializable, when possible by @perlinm in #527
  • Add NoiseModel.__repr__ by @perlinm in #528
  • Add a missing guard + raise error for invalid inputs to circuits.get_logical_tableau by @perlinm in #531
  • Allow tsim.Circuit inputs/outputs to qldpc.circuits.with_remapped_qubits by @perlinm in #534
  • Allow initializing QubitIDs from integer qubit numbers by @perlinm in #537
  • Fix decoder when post-selecting in get_logical_error_and_discard_rate by @perlinm in #539

Full Changelog: v0.3.0...v0.3.2

v0.3.0

Choose a tag to compare

@perlinm perlinm released this 26 Jun 13:45
c413c78

Major Changes

  • Cyclic Hypergraph Product Codes by @michaelontiveros in #431
  • 4D Geometric Codes by @michaelontiveros in #433
  • Add an example notebook for decoding tqec circuits by @HaoTy in #445
  • Compute logical error rates of logical state preparation circuits by @perlinm in #444
  • Add option to intercept the DEM to decode in get_logical_error_and_discard_rate by @perlinm in #453
  • Human-readable RingArrays and Howell normal form by @perlinm in #455
  • Add ErrorRateFunc class by @perlinm in #461
  • Support post-selection in code-capacity error rate calculations by @perlinm in #464
  • Add Wedderburn-Artin decomposition of semisimple Abelian rings by @perlinm in #465
  • Add Howell normal form for matrices over semisimple rings by @perlinm in #467
  • Add line operators for lifted product codes by @perlinm in #470
  • Finish Wedderburn-Artin decomposition of non-commutative rings by @perlinm in #478
  • Add candidate Howell normal form for matrices over non-commutative rings by @perlinm in #481
  • Add erasure support to decoders by @perlinm in #483
  • Identify most likely observable flips in a LookupDecoder by @perlinm in #486
  • Clean up and refactor abstract module by @perlinm in #494
  • Add abstract.linalg by @perlinm in #495
  • Fix: DetectorErrorModelArrays ignores stim's ^ decomposition separator by @HaoTy in #462
  • Add synthetic post-selection to DetectorErrorModelArrays by @perlinm in #507
  • Add post-selection on observables by @perlinm in #511

Minor Changes

  • Add Ring.eval and Group.eval by @perlinm in #432
  • Minor cleanup of CHGPCodes by @perlinm in #435
  • Separately compute the X and Z distance of an HGPCode by @perlinm in #436
  • Rename keyword argument: validate --> skip_validation by @perlinm in #437
  • Minor revision of T4Code by @perlinm in #438
  • Pass decoder_args through to RelayBP decoder construction by @perlinm in #439
  • Allow setting only X-type or only Z-type logicals of a QuditCode by @perlinm in #441
  • Sliding window decoder bug fix by @beitom in #442
  • Factor out get_pauli_product_measurements to circuits.common by @perlinm in #443
  • Allow initializing Records with dict[Hashable, int] by @perlinm in #447
  • Add option to change target qubits in get_pauli_product_measurements by @perlinm in #448
  • Add get_logical_error_and_discard_rate by @perlinm in #449
  • Add example notebook for Knill QEC by @perlinm in #450
  • Clean up post-selection options in circuit benchmarking methods by @perlinm in #451
  • Minor typing improvements by @perlinm in #452
  • Add a trivial decoder by @perlinm in #457
  • Replace uint with uint64 for improved compatibility by @SpyroL7 in #456
  • fix bug in DetectorErrorModelArrays.from_arrays by @perlinm in #459
  • Allow HGPCode.get_canonical_logical_ops to accept/return abstract.RingArrays by @perlinm in #460
  • Fix get_distance_bound() for large codes by @cduck in #458
  • Reorganize abstract algebra module by @perlinm in #463
  • Minor fixes to abstract/rings.py by @perlinm in #466
  • Minor fix to RingArray.howell_normal_form by @perlinm in #468
  • Fix and simplify WedderburnArtinComponentTransformer._get_embeddings by @perlinm in #469
  • Some gap fixes by @perlinm in #471
  • Save any constructed WedderburnArtinTransformer to its ring by @perlinm in #472
  • Work towards supporting Wedderburn-Artin decomposition of non-commutative rings by @perlinm in #473
  • Compute primitive idempotents of a ring by @perlinm in #474
  • Recycle X and Z decoders if possible in CSSCode.get_logical_error_rate_func by @perlinm in #475
  • Build standard basis for non-commutative Wedderburn-Artin components by @perlinm in #476
  • fix bug introduced in #475 by @perlinm in #477
  • Store raw importance-sampling data in ErrorRateFunc by @perlinm in #479
  • Factor out dual basis calculation by @perlinm in #480
  • Minor change to post-selection argument in code-capacity calculations by @perlinm in #482
  • Cleanup: unit tests and typos by @perlinm in #484
  • Some coverage fixes by @perlinm in #485
  • Find logical stabilizers of state prep circuits more robustly by @perlinm in #487
  • Fix bug in HNF for non-commutative rings by @perlinm in #488
  • Add fixtures to some unit tests by @perlinm in #489
  • Update readme by @perlinm in #490
  • Add group lift to right-regular antirepresentation by @perlinm in #491
  • Add WedderburnArtinTransformer.transpose by @perlinm in #492
  • Add ErrorRateFunc.truncation_error_bound by @perlinm in #493
  • Update stim and sinter dependencies by @perlinm in #496
  • Typing cleanup in qldpc.decoders by @perlinm in #497
  • Fix treatment of detectors in state prep circuit benchmarking methods by @perlinm in #499
  • More robust code retrieval from the qecdb by @perlinm in #500
  • Fix benchmarking circuit validation by @perlinm in #501
  • Reorganize qldpc.circuits module by @perlinm in #502
  • Allow passing fields to field arguments by @perlinm in #503
  • Add the TrivialCode by @perlinm in #506
  • Make get_state_stabilizers code-agnostic by @perlinm in #505
  • Add DetectorErrorModelArrays.to_circuit by @perlinm in #508
  • Encode into native stabilizer basis, if possible by @perlinm in #509
  • Fix and simplify synthetic post-selection by @perlinm in #510
  • Cheaper abstract algebra tests by @perlinm in #513
  • Simplify permutation automorphism finding for non-self-dual CSS codes by @perlinm in #514
  • version bump to v0.3.0 by @perlinm in #504

New Contributors

Full Changelog: v0.2.9...v0.3.0

v0.2.9

Choose a tag to compare

@perlinm perlinm released this 28 Mar 17:48
19ee7a8

Major changes

  • Prevent Stim from merging scheduled gate layers by @abbrazi in #423
  • Split logical error rate example notebook into multiple notebooks by @perlinm in #425
  • Allow initializing a decoder from a DEM by @perlinm in #427
  • [BREAKING CHANGE for Relay-BP] Clean up decoder retrieval and allow MWPM to ignore non-graphlike errors by @perlinm in #428
  • Add AlphaSyndrome measurement strategy (arXiv:2601.12509) by @acasta-yhliu in #422

Minor changes

New Contributors

Full Changelog: v0.2.8...v0.2.9

v0.2.8

Choose a tag to compare

@perlinm perlinm released this 18 Feb 19:35
35b0cd8

What's Changed

Full Changelog: v0.2.7...v0.2.8

v0.2.7

Choose a tag to compare

@perlinm perlinm released this 25 Jan 10:17
fa69932

Major changes

Minor changes

Full Changelog: v0.2.6...v0.2.7

v0.2.6

Choose a tag to compare

@perlinm perlinm released this 24 Oct 19:58
306d62d

What's Changed

  • Add qldpc.math.block_matrix to simplify building block matrices by @perlinm in #381
  • Fix python 3.10 support by @perlinm in #383
  • Gap fix by @perlinm in #384
  • Simplify cache keys and add option to delete cache entries by @perlinm in #388
  • Add option to compute automorphism groups with MAGMA by @perlinm in #387
  • Retrieve codes from qecdb.org by @perlinm in #392
  • [BREAKING CHANGE] Pass sequences to some methods that previously accepted many arguments by @perlinm in #393
  • Add "human API" to GAP, if GAP cannot be called automatically by @perlinm in #391
  • Make workflows use python 3.10 by @perlinm in #395
  • version bump to v0.2.6 by @perlinm in #394

Full Changelog: v0.2.4...v0.2.6

v0.2.4

Choose a tag to compare

@perlinm perlinm released this 24 Sep 01:54

What's Changed

  • Change conventions for the IcebergCode by @perlinm in #364
  • Clean up behavior of QuditCode.conjugated and QuditCode.deformed by @perlinm in #366
  • Add [15, 1, 3] TetrahedralCode by @perlinm in #365
  • Add CSSCode.classical by @perlinm in #367
  • Add more helper circuits by @perlinm in #368
  • allow segments to address the same observables in CompiledCompositeSinterDecoder by @perlinm in #369
  • Rename QuditCode.get_dual_subsystem_code to QuditCode.dual by @perlinm in #370
  • Add CSSCode.set_logical_ops_x, which automatically finds suitable Z-type logicals by @perlinm in #371
  • Allow passing a cutoff to QuditCode.get_distance_exact by @perlinm in #373
  • make circuits.Record a proper Mapping by @perlinm in #374
  • Allow passing an error_channel to a LookupDecoder by @perlinm in #375
  • [REVERTED] Allow excluding detectors from segments of a CompositeSinterDecoder by @perlinm in #376
  • Add capability to post-select detector error models by @perlinm in #377
  • Rename CompositeSinterDecoder to SubgraphSinterDecoder by @perlinm in #378
  • Add SequentialSinterDecoder by @perlinm in #379
  • Build the DetectorRecord after post-selection by @perlinm in #380

Full Changelog: v0.2.2c...v0.2.4

v0.2.2c

Choose a tag to compare

@perlinm perlinm released this 06 Sep 22:37

What's Changed

Full Changelog: v0.2.2b...v0.2.2c

v0.2.2b

Choose a tag to compare

@perlinm perlinm released this 02 Sep 16:12

What's Changed

  • Pass log-likelihood priors to MWPM SinterDecoder by @perlinm in #341
  • Add CardinalEdgeColoring syndrome measurement strategy by @perlinm in #339
  • (EdgeColoring, CardinalEdgeColoring) -> (EdgeColoringXZ, EdgeColoring) by @perlinm in #342
  • Move sinter_decoder to decoders module by @perlinm in #343
  • Refactor syndrome measurement methods by @perlinm in #344
  • Clean up memory experiments and related code by @perlinm in #347
  • Add option to make operations immune to noise by @perlinm in #349
  • Simpler all-0 encoding circuits by @perlinm in #350
  • Add custom syndrome measurement circuits for QCCodes (and BBCodes) by @perlinm in #351
  • Add capability to relabel qubits in a Stim circuit (circuits.with_remapped_qubits) by @perlinm in #352
  • add circuits/bookkeeping.py by @perlinm in #353
  • Add DetectorErrorModelArrays.from_arrays and .simplify by @perlinm in #354
  • Add QuantumHammingCode by @perlinm in #355
  • Support parallel decoding with Relay-BP by @perlinm in #357
  • Identify the error rates of all logical operators in QEC memory cycles by @perlinm in #346
  • version bump to v0.2.2 by @perlinm in #358

Full Changelog: v0.2.1...v0.2.2b