Add lalib.domains.Domain

- this class models domains from linear algebra
  and is needed for the `Vector` class to be created
- `Domain` wraps Python's built-in `frozenset` type
  + they must contain at least one label
  + as a convenience, so-called canonical `Domain`s
    (i.e., with labels `0`, `1`, ...) can be created
    by passing in a positive `int`eger to `Domain()`
- the `Domain.is_canonical` property indicates
  what kind a `Domain` is
- add unit tests for the class
- add extensive documentation for the class
This commit is contained in:
Alexander Hess 2024-10-20 02:35:43 +02:00
commit 4a5e316d0c
Signed by: alexander
GPG key ID: 344EA5AB10D868E0
3 changed files with 357 additions and 0 deletions

View file

@ -15,6 +15,7 @@ import xdoctest
"module",
[
"lalib",
"lalib.domains",
"lalib.elements",
"lalib.elements.galois",
"lalib.fields",