galois v0.0.29
Released May 18, 2022
Breaking changes
- Moved
galois.square_free_factorization()
function intoPoly.square_free_factors()
method. (#362) - Moved
galois.distinct_degree_factorization()
function intoPoly.distinct_degree_factors()
method. (#362) - Moved
galois.equal_degree_factorization()
function intoPoly.equal_degree_factors()
method. (#362) - Moved
galois.is_irreducible()
function intoPoly.is_irreducible()
method. This is a method, not property, to indicate it is a computationally-expensive operation. (#362) - Moved
galois.is_primitive()
function intoPoly.is_primitive()
method. This is a method, not property, to indicate it is a computationally-expensive operation. (#362) - Moved
galois.is_monic()
function intoPoly.is_monic
property. (#362)
Changes
- Added
galois.set_printoptions()
function to modify package-wide printing options. This is the equivalent ofnp.set_printoptions()
. (#363)In [1]: GF = galois.GF(3**5, display="poly") In [2]: a = GF([109, 83]); a Out[2]: GF([α^4 + α^3 + 1, α^4 + 2], order=3^5) In [3]: f = galois.Poly([3, 0, 5, 2], field=galois.GF(7)); f Out[3]: Poly(3x^3 + 5x + 2, GF(7)) In [4]: galois.set_printoptions(coeffs="asc") In [5]: a Out[5]: GF([1 + α^3 + α^4, 2 + α^4], order=3^5) In [6]: f Out[6]: Poly(2 + 5x + 3x^3, GF(7))
- Added
galois.get_printoptions()
function to return the current package-wide printing options. This is the equivalent ofnp.get_printoptions()
. (#363) - Added
galois.printoptions()
context manager to modify printing options inside of awith
statement. This is the equivalent ofnp.printoptions()
. (#363) - Added a separate
Poly.factors()
method, in addition to the polymorphicgalois.factors()
. (#362) - Added a separate
Poly.is_square_free()
method, in addition to the polymorphicgalois.is_square_free()
. This is a method, not property, to indicate it is a computationally-expensive operation. (#362) - Fixed a bug (believed to be introduced in v0.0.26) where
Poly.degree
occasionally returnednp.int64
instead ofint
. This could cause overflow in certain large integer operations (e.g., computing$q^m$ when determining if a degree-$m$ polynomial over$\mathrm{GF}(q)$ is irreducible). When the integer overflowed, this created erroneous results. (#360, #361) - Increased code coverage.
Contributors
- Matt Hostetter (@mhostetter)
Commits
efc645e Version bump to 0.0.29
810bca8 Add release notes for v0.0.29
db27b73 Use consistent section capitalization
bb75879 Use decorator for the FieldArray.display()
context manager
992c215 Add galois.printoptions()
context manager
b77cabf Modify Sphinx explicit references
b2987bc Add set_printoptions()
tips in docs
3d72707 Add get/set_printoptions()
functions
5c03168 Add index page to docs
7356465 Update documentation prose
a8d5086 Update minimum Sphinx version
cd312a1 Verify factored polynomials are indeed square-free
a64b771 Add Poly.is_square_free()
9f029c1 Move galois.is_primitive()
to Poly.is_primitive()
008b971 Move galois.is_irreducible()
to Poly.is_irreducible()
89e8ec7 Move galois.is_monic()
to the Poly.is_monic
property
e0a3e24 Make polynomial factorization functions Poly
methods
062a118 Add Poly.factors()
method
fe379c3 Add additional unit test
3eeb4ec Always return int
from Poly.degree
c5d930d Increase NTT code coverage
eadc6a3 Improve class factory code coverage
94db928 Increase primitive element code coverage
26e91c5 Increase Array
code coverage
450fb3e Improve LFSR code coverage