galois v0.0.25
Released March 21, 2022
Breaking Changes
- Separated
LFSR
intoFLFSR
/GLFSR
and fixed/redefined terms (feedback poly, characteristic poly, state). (#285) - Removed
galois.pow()
and replaced it with the built-inpow()
. (#300)>>> f = galois.Poly([6, 3, 0, 1], field=galois.GF(7)) >>> g = galois.Poly([5, 0, 3], field=galois.GF(7)) >>> pow(f, 123456789, g) Poly(6x + 2, GF(7))
- Removed
FieldClass.properties
and replaced withFieldClass.__str__
. (#289)>>> GF = galois.GF(3**5) >>> print(GF) Galois Field: name: GF(3^5) characteristic: 3 degree: 5 order: 243 irreducible_poly: x^5 + 2x + 1 is_primitive_poly: True primitive_element: x
- Differentiated
repr()
andstr()
for Galois field arrays, like NumPy.repr()
displays the finite field's order, butstr()
does not.>>> GF = galois.GF(31, display="power") >>> x = GF([1, 23, 0, 15]) >>> x GF([ 1, α^27, 0, α^21], order=31) >>> print(x) [ 1, α^27, 0, α^21]
- Renamed
Poly.String()
toPoly.Str()
. RemovedPoly.string
and replaced it withPoly.__str__
. (#300)>>> f = galois.Poly.Str("x^3 + x + 1"); f Poly(x^3 + x + 1, GF(2)) >>> str(f) 'x^3 + x + 1'
- Renamed
Poly.Integer()
toPoly.Int()
. RemovedPoly.integer
and replaced it withPoly.__int__
. (#300)>>> f = galois.Poly.Int(11); f Poly(x^3 + x + 1, GF(2)) >>> int(f) 11
Changes
- Fixed bug in Fibonacci/Galois LFSRs where feedback polynomial wasn't interpreted correctly for fields with characteristic greater than 2. (#299)
- Utilized memoization for expensive search routines (
irreducible_poly()
andprimitive_poly()
) to speed-up subsequent calls. (#295)In [2]: %time galois.primitive_poly(7, 4) CPU times: user 675 ms, sys: 6.24 ms, total: 682 ms Wall time: 741 ms Out[2]: Poly(x^4 + x^2 + 3x + 5, GF(7)) In [3]: %time galois.primitive_poly(7, 4) CPU times: user 30 µs, sys: 0 ns, total: 30 µs Wall time: 31.7 µs Out[3]: Poly(x^4 + x^2 + 3x + 5, GF(7))
- Added support for
bin()
,oct()
, andhex()
onPoly
objects. (#300)>>> f = galois.Poly.Int(11); f Poly(x^3 + x + 1, GF(2)) >>> bin(f) '0b1011' >>> oct(f) '0o13' >>> hex(f) '0xb'
- Made Galois field arrays display with fixed-width elements, like NumPy. (#270)
- Achieved speed-up of
repr()
andstr()
on Galois field arrays of at least 25x. Achieved a much greater speed-up for large arrays, since now elements converted to...
are no longer needlessly converted to their string representation. (#270) - Overhauled documentation and website. Type hints are now displayed in the API reference. (#263)
- Various bug fixes.
Contributors
- Matt Hostetter (@mhostetter)
Commits
f9b6cab Version bump to 0.0.25
989657f Add release notes for v0.0.25
c2e3def Update feature list
98b9f3f Make GF()
docstring more readable with a tab set
a401abf Document poly arithmetic only on the Basic Usage page
3edc4e9 Remove galois.pow()
, instead use built-in pow()
7f8ce52 Define Poly.__index__()
to support bin()
, oct()
, and hex()
6816adc Remove unnecessary __ne__()
definition
45db3a5 Rename Poly.Integer
to Poly.Int
d05ce1b Replace Poly.integer
with int(poly)
4a3ff9d Rename Poly.String()
to Poly.Str()
47eb6f5 Replace Poly.string
with str(poly)
af3e6ee Remove unused section in API reference
7c2b1f0 Do not fail CI if codecov fails to upload
d3be8ab Complete overhaul of LFSRs and fix bug when p > 2
f691bb5 Memoize slow polynomial search functions
2bd30ef Differentiate str()
and repr()
for FieldArray
1b102d1 Remove unnecessary tabs in docstring
5b5c65c Replace FieldClass.properties
with FieldClass.__str__()
3ec09d3 Separate LFSR
into FLFSR
and GLFSR
1a2a8e7 Build the docs with Python 3.8 on Read the Docs
b373d45 Fix properties formatting for prime fields in power display mode
3881ea0 Fix typos in finite field tutorials
1aceed0 Display type hints in API documentation
5efd39c Add tabbed sections with different reprs in basic usage
1dd41e1 Add tabbed sections with different reprs for tutorials
c63fecf Modify the CSS rules for tab-set
from sphinx-design
1018fd5 Add sphinx-design
dependency for tabbed sections
b77e999 Switch light/night mode icons
337ef93 Update BibTeX citation
88487c1 Remove unnecessary doc dependencies
005c493 Revert autosummary table fix since already fixed in upstream
5799874 Separate Poly
class and init docstrings
5553d0f Revert use of box drawing glyphs for monospace consistency with more fonts
aaebb3d Remove NumPy reference and use Basic Usage articles instead
2f24414 Remove old basic usage file
7e19eab Fix autosummary strange line wrapping
f28176d Add more detail in the field element representation docs
603c03d Update Getting Started guide with new array repr()
fd9a57c Make repr()
more efficient for large arrays
3c4c2d4 Make "poly" display mode use fixed widths
7ffd551 Make "poly" display mode more efficient for prime fields
3a0c668 Use fixed widths in "power" display mode for all array sizes
b506f1b Make __repr__()
more efficient
6872b7a Initial docs port to sphinx-immaterial