abelian

A Python library for locally compact Abelian (LCA) groups.

Note

This software is being built, and is not ready to be used yet.

Project Goals

  • Classical groups \(\mathbb{R}\), \(\mathbb{T}\), \(\mathbb{Z}\) and \(\mathbb{Z}_n\) and computations on these.
  • Relationship between continuous and discrete should be ‘pretty’.
  • FFT computations on discrete, compact groups (and their products), e.g. \(\mathbb{Z}_{n_{1}} \oplus \mathbb{Z}_{n_{2}} \oplus \dots \oplus \mathbb{Z}_{n_{r}}\).
  • The software should build on the mathematical theory.

Todo

  • Create skeleton for project
  • Factorizations of homomorphisms between FGAs (tests, docs, implementation)

Software specification

All public classes

Function(representation, domain) A function on a LCA.
Group()

All public functions

hermite_normal_form(A)
param A:
smith_normal_form(A)
param A:

All public classes with methods

Methods for Function

__init__(representation, domain) Create a function.
call(list_arg, *args, **kwargs) Evaluate the function.
compose(func) Compose with C -> C function.
convolve(other) Convolution (if domain is discrete + compact).
dft() Discrete fourier transform (if domain is discrete + compact).
pointwise(func, operator) Pointwise mult/add/...
pullback(morphism) Pullback.
pushfoward(morphism) Pushfoward.

Methods for Group

__init__()

Indices and tables