Release Notes

v0.0.16

Changes

  • Add Field() alias of GF() class factory.

  • Add finite groups modulo n with Group() class factory.

  • Add is_group(), is_field(), is_prime_field(), is_extension_field().

  • Add polynomial constructor Poly.String().

  • Add polynomial factorization in poly_factors().

  • Add np.vdot() support.

  • Fix PyPI packaging issue from v0.0.15.

  • Fix bug in creation of 0-degree polynomials.

  • Fix bug in poly_gcd() not returning monic GCD polynomials.

v0.0.15

Breaking Changes

  • Rename poly_exp_mod() to poly_pow() to mimic the native pow() function.

  • Rename fermat_primality_test() to is_prime_fermat().

  • Rename miller_rabin_primality_test() to is_prime_miller_rabin().

Changes

  • Massive linear algebra speed-ups. (See #88)

  • Massive polynomial speed-ups. (See #88)

  • Various Galois field performance enhancements. (See #92)

  • Support np.convolve() for two Galois field arrays.

  • Allow polynomial arithmetic with Galois field scalars (of the same field). (See #99), e.g.

>>> GF = galois.GF(3)

>>> p = galois.Poly([1,2,0], field=GF)
Poly(x^2 + 2x, GF(3))

>>> p * GF(2)
Poly(2x^2 + x, GF(3))
  • Allow creation of 0-degree polynomials from integers. (See #99), e.g.

>>> p = galois.Poly(1)
Poly(1, GF(2))
  • Add the four Oakley fields from RFC 2409.

  • Speed-up unit tests.

  • Restructure API reference.

Contributors

  • @mhostetter

v0.0.14

Breaking Changes

  • Rename GFArray.Eye() to GFArray.Identity().

  • Rename chinese_remainder_theorem() to crt().

Changes

  • Lots of performance improvements

  • Additional linear algebra support

  • Various bug fixes

Contributors

  • @BK-Modding

  • @mhostetter