Skip to content

galois v0.0.18

Compare
Choose a tag to compare
@github-actions github-actions released this 06 Jul 21:43
· 0 commits to 8a2adff76d6d1c52879e4c9597508dac19da57e1 since this release

Breaking Changes

  • Make API more consistent with software like Matlab and Wolfram:
    • Rename galois.prime_factors() to galois.factors().
    • Rename galois.gcd() to galois.egcd() and add galois.gcd() for conventional GCD.
    • Rename galois.poly_gcd() to galois.poly_egcd() and add galois.poly_gcd() for conventional GCD.
    • Rename galois.euler_totient() to galois.euler_phi().
    • Rename galois.carmichael() to galois.carmichael_lambda().
    • Rename galois.is_prime_fermat() to galois.fermat_primality_test().
    • Rename galois.is_prime_miller_rabin() to galois.miller_rabin_primality_test().
  • Rename polynomial search method keyword argument values from ["smallest", "largest", "random"] to ["min", "max", "random"].

Changes

  • Clean up galois API and dir() so only public classes and functions are displayed.
  • Speed-up galois.is_primitive() test and search for primitive polynomials in galois.primitive_poly().
  • Speed-up galois.is_smooth().
  • Add Reed-Solomon codes in galois.ReedSolomon.
  • Add shortened BCH and Reed-Solomon codes.
  • Add error detection for BCH and Reed-Solomon with the detect() method.
  • Add general cyclic linear block code functions.
  • Add Matlab default primitive polynomial with galois.matlab_primitive_poly().
  • Add number theoretic functions:
    • Add galois.legendre_symbol(), galois.jacobi_symbol(), galois.kronecker_symbol().
    • Add galois.divisors(), galois.divisor_sigma().
    • Add galois.is_composite(), galois.is_prime_power(), galois.is_perfect_power(), galois.is_square_free(), galois.is_powersmooth().
    • Add galois.are_coprime().
  • Clean up integer factorization algorithms and add some to public API:
    • Add galois.perfect_power(), galois.trial_division(), galois.pollard_p1(), galois.pollard_rho().
  • Clean up API reference structure and hierarchy.
  • Fix minor bugs in BCH codes.

Contributors

Commits

5ca778e Version bump to 0.0.18
8a2adff Add release notes for v0.0.18
3a84c38 Hide implementation details from galois namespace
213f0ab Clean up integer arithmetic docstrings
c4138ab Add trial division factorization to public API
fb6e509 Add Pollard rho algorithm
ba742c6 Add Pollard's p-1 algorithm
9c72502 Disable too-many-branches in pylint
20fe5ed Speed-up is_smooth()
b4e5dc5 Fix erroneous pylint complaints
aef9b25 Add is_powersmooth()
995dc80 Add perfect_power() to the public API
134c286 Clean up backslashes in LaTeX in docstrings
a006bea Clean up the Miller-Rabin primality test
be55733 Clean up Fermat's primality test
f710153 Speed up is_smooth() test
b03c5bc Add are_coprime() to test if integers are pairwise coprime
8418e1a Add is_perfect_power()
3ea43a4 Add Legendre, Jacobi, and Kronecker symbols
0da1449 Rename is_prime_miller_rabin() to miller_rabin_primality_test()
b9ed28f Rename is_prime_fermat() to fermat_primality_test()
4d1e3f8 Add poly_gcd() for non-extended GCD
c21c1c7 Rename poly_gcd() to poly_egcd()
cfe8190 Move integer arithmetic routines to separate file
a2b47a4 Restructure docs hierarchy
c8d35c9 Add gcd() to find the greatest common divisor of two integers
c72b1c3 Rename gcd() to egcd()
7a1f5b0 Restructure API reference
77e01c0 Remove Oakley Galois fields
3e48a13 Add is_square_free()
d6b78b4 Add is_prime_power()
d0aad9d Add is_composite()
f102cd7 Rename prime_factors() to factors()
b2770f6 Add divisor_sigma() to implement the sum of divisors functions
2e29c6b Add divisors() to find all integer divisors of n
46bb848 Rename carmichael() to carmichael_lambda()
e57d7ec Rename euler_totient() to euler_phi()
a34f4bf Fix numpy API reference
efbce45 Fix is_primitive() test for degree-1 polynomials
0a3aa6e Greatly speed up is_primitive()
0a6debb Cache prime_factors() output
7b418f1 Rearrange conway poly database code
94eca9e State incompatibility with numpy v1.21
037850b Add tests for number of irreducible and primitive polynomials over GF(2)
2563b20 Add tests for matlab_primitive_poly()
a9ffd87 Make poly search method arguments consistent
fc89ae1 Speed-up creation of cyclic generator matrices
c5ecb59 Add linear block code functions
c8259f2 Remove superfluous FEC functions
a3c7563 Rename generator_poly_to_matrix() to poly_to_generator_matrix()
4821550 Add error detection to RS codes
b9db515 Add error detection to BCH codes
d77c493 Add shortened RS codes
0adda4c Add shortened BCH codes
a09bce4 Add design distance property
f90450c Add FEC encode/decode unit tests
cd97abd Increase primitive polynomial test coverage
8c65c4d Update README with FEC basic usage
9ae3910 Cleanup BCH comments and improve testing
f6013b2 Add ReedSolomon class
f803bfe Add polynomial evaluation JIT function
1f9d33c Fix error message in GF() class factory
998aa7a Prevent modification of input argument to poly_roots JIT function
9c88843 Enable Poly str/repr with display mode "power"
ed4e63f Cleanup FEC docstrings
cf6a57d Add matlab_primitive_poly() function
040df1d Add Reed-Solomon functions
28b42c2 Fix BCH default primitive poly for GF(2^7)
d53e2e3 Fix bug in computation of t in bch_generator_poly()
185a425 Add bch_parity_check_matrix() and common cyclic code functions
dd2a252 Fix sphinx docs for FieldArray