Skip to content

galois v0.0.29

Compare
Choose a tag to compare
@github-actions github-actions released this 18 May 14:12
· 0 commits to 810bca8693ae53991c4ff3f81167e5291af6b8d2 since this release

Released May 18, 2022

Breaking changes

  • Moved galois.square_free_factorization() function into Poly.square_free_factors() method. (#362)
  • Moved galois.distinct_degree_factorization() function into Poly.distinct_degree_factors() method. (#362)
  • Moved galois.equal_degree_factorization() function into Poly.equal_degree_factors() method. (#362)
  • Moved galois.is_irreducible() function into Poly.is_irreducible() method. This is a method, not property, to indicate it is a computationally-expensive operation. (#362)
  • Moved galois.is_primitive() function into Poly.is_primitive() method. This is a method, not property, to indicate it is a computationally-expensive operation. (#362)
  • Moved galois.is_monic() function into Poly.is_monic property. (#362)

Changes

  • Added galois.set_printoptions() function to modify package-wide printing options. This is the equivalent of np.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 of np.get_printoptions(). (#363)
  • Added galois.printoptions() context manager to modify printing options inside of a with statement. This is the equivalent of np.printoptions(). (#363)
  • Added a separate Poly.factors() method, in addition to the polymorphic galois.factors(). (#362)
  • Added a separate Poly.is_square_free() method, in addition to the polymorphic galois.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 returned np.int64 instead of int. 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

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