v0.0.22¶
Released December 3, 2021
Breaking changes¶
Random integer generation is handled using new style random generators. Now each
.Random()call will generate a new seed rather than using the NumPy “global” seed used withnp.random.randint().Add a
seed=Nonekeyword argument toFieldArray.Random()andPoly.Random(). A reproducible script can be constructed like this:rng = np.random.default_rng(123456789) x = GF.Random(10, seed=rng) y = GF.Random(10, seed=rng) poly = galois.Poly.Random(5, seed=rng, field=GF)
Changes¶
Official support for Python 3.9.
Major performance improvements to “large” finite fields (those with
dtype=np.object_).Minor performance improvements to all finite fields.
Add the Number Theoretic Transform (NTT) in
ntt()andintt().Add the trace of finite field elements in
FieldArray.field_trace().Add the norm of finite field elements in
FieldArray.field_norm().Support
len()onPolyobjects, which returns the length of the coefficient array (polynomial order + 1).Support
x.dot(y)syntax for the expressionnp.dot(x, y).Minimum NumPy version bumped to 1.18.4 for new style random usage.
Various bug fixes.
Contributors¶
Iyán Méndez Veiga (@iyanmv)
Matt Hostetter (@mhostetter)