This package provides some extensions of the ring of integers, and tools for working with 2 x 2 matrices over these rings. Implementations and tools for one-qubit Clifford + T gates are included.
These packages are not registered.
These packages began as tools to verify results from other rotation synthesis software and to verify calculations appearing in papers. Routines for doing synthesis are not included here. However, these libraries are a suitable base for writing such routines. Furthermore, this software includes wrapper files gridsynth.jl and gridsynth_extra.jl providing a Julia interface to the original gridsynth software (written in Haskell).
This monorepo contains several installable packages (in ./lib). In addition, there is some code at the top level which has not yet been devolved into packages.
These packages are not registered.
The top-level test suite runs tests for both the toplevel code as well as the test suits for each individual package.
- This software is available "as is". I may, or may not, develop it further.
- The level of documentation and testing is uneven.
- Some interfaces are more experimental than others and may be incomplete.
These packages implement more general cyclotomic numbers. They are field extensions, rather than
just ring extensions. The implementations are necessarily more complicated and are much less efficient than
those in IntegerRingExtensions.jl. In particular, the implementations in these two packages require heap allocation
for creating and using the provided types, whereas instances of rings in IntegerRingExtensions are isbits
when the chosen parametric integer type is isbits.