GAP
package QDistRnd
The GAP
package for calculating the distance of a $q$-ary quantum
stabilizer code.
The GAP
package QDistRnd
implements a probabilistic algorithm for
finding the distance of a $q$-ary quantum low-density parity-check
code linear over a finite field GF($q$). An empirical convergence
criterion is provided to estimate the probability that a minimum
weight codeword has actually been found. Versions of the routines for
CSS and regular stabilizer codes are given.
In addition, a format for storing matrices associated with $q$-ary quantum codes is introduced and implemented via provided import/export routines. The format is based on the well established MaTrix market eXchange (MTX) Coordinate format developed at NIST, and is designed for full backward compatibility with this format. Thus, the files are readable by any software package which supports MTX.
The package QDistRnd
requires the Guava
package to run; GAPDoc
and AutoDoc
are required to generate the documentation (see the file
PackageInfo.g
for versions required). All of these packages are
included with GAP
version 4.11; this or later version of GAP
is
strongly recommended.
Starting with GAP 4.13.0, the QDistRnd
package is distributed with a standard installation of GAP
.
To install the package permanently, download the latest released version from
releases
and unpack it in the pkg
directory of one of your GAP
root
directories. After installation, the package can be loaded at the
GAP
prompt by typing
gap> LoadPackage("QDistRnd");
Alternatively, if you just want to try it, you can unpack the package
anywhere and type at the GAP
prompt
gap> SetPackagePath("QDistRnd","absolute_path_to_the_package_QDistRnd" );
After that you can load the package as you would do normally.
After installation, basic tests of the package (most of the examples listed in the package manual) can by performed by running
gap> TestPackage("qdistrnd");
at the GAP command prompt. Note that the package name must be in lowercase.
The same tests are run as a part of documentation processing script which is also executed as a GitHub Action every time changes are commited.
Documentation for the package can be found in the doc
subdirectory in
HTML form as chap0.html
and PDF form as manual.pdf
. Documentation
can also be accessed on the package
website and through the
standard GAP
help system. Documentation can be recompiled by running
gap makedoc.g
in the package directory.
The package only deals with Galois-qubit q
-ary codes. It would
be nice to develop and implement similar methods for quantum codes
over a finite ring, e.g., Z(q)
with q
not necessarily a power
of a prime. This could be done with the help of Smith normal form
decomposition. The required complexity may be higher, however.
Write sample read/write routines for MTXE
files in Mathematica
and/or C
.
If there is need (or interest), add routines for the alternate
integer format to represent elements from extension fields, where
polynomials over a prime field GF(p)
will be encoded as p
-ary
integers. The only apparent advantage would be a unification with
the currently used format for prime field elements using the
equivalence with Z(p)
. On the other hand, it would not improve
readability: the corresponding decimal integers would be as
difficult to interpret as the currently used integer powers of a
primitive field element.