Skip to content

galois v0.2.0

Compare
Choose a tag to compare
@github-actions github-actions released this 18 Nov 00:40

Released November 17, 2022

Breaking changes

  • Refactored FEC classes and usage. (#413, #435)

    • Modified BCH codes to support q-ary, non-primitive, and non narrow-sense codes.

    • Modified ReedSolomon codes to support non-primitive codes.

    • Enabled instantiation of a BCH or ReedSolomon code by specifying (n, k) or (n, d).

    • Removed parity_only=False keyword argument from FEC encode() methods and replaced with output="codeword".

    • Removed bch_valid_codes() from the API. Instead, use galois.BCH(n, d=d) to find and create a BCH code with codeword size n and design distance d. For example, here is how to find various code sizes of primitive BCH codes over GF(5).

      >>> import galois
      >>> GF = galois.GF(5)
      >>> for d in range(3, 10):
      ...     bch = galois.BCH(5**2 - 1, d=d, field=GF)
      ...     print(repr(bch))
      ... 
      <BCH Code: [24, 20, 3] over GF(5)>
      <BCH Code: [24, 18, 4] over GF(5)>
      <BCH Code: [24, 16, 5] over GF(5)>
      <BCH Code: [24, 16, 6] over GF(5)>
      <BCH Code: [24, 15, 7] over GF(5)>
      <BCH Code: [24, 13, 8] over GF(5)>
      <BCH Code: [24, 11, 9] over GF(5)>
    • Removed generator_to_parity_check_matrix(), parity_check_to_generator_matrix(), poly_to_generator_matrix(), and roots_to_parity_check_matrix() from the API.

  • Renamed properties and methods for changing the finite field element representation. (#436)

    • Renamed display keyword argument in GF() to repr.

    • Renamed FieldArray.display() classmethod to FieldArray.repr().

    • Renamed FieldArray.display_mode property to FieldArray.element_repr.

      >>> import galois
      >>> GF = galois.GF(3**4, repr="poly")
      >>> x = GF.Random(2, seed=1); x
      GF([2α^3 + 2α^2 + 2α + 2,          2α^3 + 2α^2], order=3^4)
      >>> GF.repr("power"); x
      GF([α^46, α^70], order=3^4)
      >>> GF.element_repr
      'power'

Changes

  • Added output="codeword" keyword argument to FEC encode() methods. (#435)
  • Added output="message" keyword argument to FEC decode() methods. (#435)
  • Standardized NumPy scalar return types (np.bool_ and np.int64) to Python types (bool and int). For example, in FieldArray.multiplicative_order(). (#437)
  • Improved documentation and published docs for pre-release versions (e.g., v0.3.x).

Contributors

Commits

a182763 Add release notes for v0.2.0
ba3d3d3 Minor clarifications in docs
6ae4a78 Standardize scalar return types
f0d92b3 Fix typos
07783e2 Fix ValueError messages
475212d Modify admonition types
e876aa7 Conform dropdown admonitions to new Sphinx Immaterial
66e6c1e Change seealso admonition icon
4cbbf30 Fix docs error of mismatched parameter names
4d56903 Add abstract admonitions
ebbb197 Add Galois quote
cfb8f2d Update Sphinx Immaterial to latest
419df85 Fix color of outdated version banner
b933732 Rename display to repr and display_mode to element_repr
5b593b2 Fix CI push to gh-pages
d26b373 Run Python script in CI without custom action
04f0083 Add outdated version banner
7f59231 Create latest symlink when publishing docs to GitHub Pages
3676b4c Remove fast-forward-pr GitHub Action
9696635 Run all CI on release/* branches
61b8016 Clean up docs for optional return argument
f8d63ac Clean up _convert_codeword_to_message()
1b36c35 Add output kwarg to FEC decode() methods
054b480 Add output kwarg to FEC encode() methods
b3c4e6e Set docs page's "Last updated" field with git
e43e396 Add unit tests for generalized BCH and RS codes
fb04257 Clean up TypeError from verify_issubclass()
61f1849 Fix console syntax highlighting in README
f0f35f1 Remove old g(x) to G and H functions
2dd1635 Modify ReedSolomon to support general Reed-Solomon codes over GF(q)
189fa0b Remove bch_valid_codes() from public API
4a91a04 Use binary search when finding BCH d when n and k known
0a5b51e Modify BCH to support general BCH codes over GF(q)
dfe8ee9 Remove unnecessary pytest helper files
1fe55ef Fix the repr of Array and FieldArray when not subclasses
83bf603 Use pyproject.toml pytest settings in VS Code
3e17338 Add --showlocals to pyproject.toml pytest settings
3d47673 Add .coverage to gitignore
3f957da Remove FEC helper functions from public API
b1e4295 Move FEC unit tests into their own folders
11868e4 Run CI on PRs to version branches
676d0dd Fix docs publish on package release