v0.0.24¶
Released February 12, 2022
Breaking changes¶
Move
galois.minimal_poly()
functionality intoFieldArray.minimal_poly()
.Refactor
FieldArray.lup_decompose()
intoFieldArray.plu_decompose()
.Raise
ValueError
instead of returningNone
forprev_prime(2)
.Return
(n, 1)
fromperfect_power(n)
ifn
is not a perfect power rather than returningNone
.
Changes¶
Compute a finite field element’s square root (if it exists) with
np.sqrt()
.Test if finite field elements have a square root with
FieldArray.is_quadratic_residue()
.List which finite field elements are/aren’t quadratic residues (have a square root) with
FieldClass.quadratic_residues
andFieldClass.quadratic_non_residues
.Compute standard vector spaces with
FieldArray.row_space()
,FieldArray.column_space()
,FieldArray.left_null_space()
, andFieldArray.null_space()
.Compute a finite field element’s additive and multiplicative orders with
FieldArray.additive_order()
andFieldArray.multiplicative_order()
.Evaluate polynomials at square matrix inputs using
f(X, elementwise=False)
.Compute the characteristic polynomial of a single element or square matrix with
FieldArray.characteristic_poly()
.Compute the minimal polynomial of a single element with
FieldArray.minimal_poly()
.Compute a Lagrange interpolating polynomial with
lagrange_poly(x, y)
.Support non-square matrix inputs to
FieldArray.lu_decompose()
andFieldArray.plu_decompose()
.Support polynomial scalar multiplication. Now
p * 3
is valid syntax and representsp + p + p
.Allow polynomial comparison with integers and field scalars. Now
galois.Poly([0]) == 0
andgalois.Poly([0]) == GF(0)
returnTrue
rather than raisingTypeError
.Support testing 0-degree polynomials for irreducibility and primitivity.
Extend
crt()
to work over non co-prime moduli.Extend
prev_prime()
andnext_prime()
to work over arbitrarily-large inputs.Allow negative integer inputs to
primes()
,is_prime()
,is_composite()
,is_prime_power()
,is_perfect_power()
,is_square_free()
,is_smooth()
, andis_powersmooth()
.Fix various type hinting errors.
Various other bug fixes.
Contributors¶
Iyán Méndez Veiga (@iyanmv)
Matt Hostetter (@mhostetter)