abelian¶
Project overview¶
Short description¶
Welcome to the documentation of abelian
, a Python library which facilitates
computations on elementary locally compact abelian groups (LCAs). The LCAs are
the groups isomorphic to
\(\mathbb{R}\),
\(T = \mathbb{R}/\mathbb{Z}\),
\(\mathbb{Z}\),
\(\mathbb{Z}_n\)
and direct sums of these.
The library is structured into two packages, the abelian
package and the
abelian.linalg
sub-package, which is built on the matrix class
MutableDenseMatrix
from the
sympy
library for symbolic mathematics.
Classes and methods¶
The
LCA
class represents elementary LCAs.- Fundamental methods: identity LCA, direct sums, equality, isomorphic, element projection, Pontryagin dual.
The
HomLCA
class represents homomorphisms between LCAs.- Fundamental methods: identity morphism, zero morphism, equality, composition, evaluation, stacking, element-wise operations, kernel, cokernel, image, coimage, dual (adjoint) morphism.
The
LCAFunc
class represents functions from LCAs to complex numbers.- Fundamental methods: evaluation, composition, shift (translation), pullback, pushforward, point-wise operators (e.g. addition).
Algorithms for the Smith normal form and Hermite normal form are also
implemented in
smith_normal_form()
and
hermite_normal_form()
respectively.
Project goals¶
- Represent the groups \(\mathbb{R}\), \(T\), \(\mathbb{Z}\) and \(\mathbb{Z}_n\) and facilitate computations on these.
- Handle the relationship between discrete and continuous groups in a natural way using group homomorphisms.
- DFT computations on discrete, finite groups and their products using the FFT.
- The software should build on the mathematical theory.
Installation¶
- Download the latest version of Python, e.g. the Anaconda distribution.
- Depending on your operating system, do one of the following:
- Open a Python editor (such as Spyder, which comes with Anaconda)
and type
from abelian import *
to import all classes and functions from the library. You’re all set, go try some examples from the tutorials.