# 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)
smith_normal_form(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__()