class emlp.groups.Group(*args, **kwargs)[source]

Abstract Group Object which new groups should inherit from.

d = NotImplemented

The dimension of the base representation

lie_algebra = NotImplemented

The continuous generators

discrete_generators = NotImplemented

The discrete generators


Matrix exponential


Draw a sample from the group (not necessarily Haar measure)


Draw N samples from the group (not necessarily Haar measure)

class emlp.groups.Trivial(n)[source]

The trivial group G={I} in n dimensions. If you want to see how the inductive biases of EMLP perform without any symmetry, use Trivial(n)

class emlp.groups.SO(n)[source]

The special orthogonal group SO(n) in n dimensions

class emlp.groups.O(n)[source]

The Orthogonal group O(n) in n dimensions

class emlp.groups.C(k)[source]

The Cyclic group Ck in 2 dimensions

class emlp.groups.D(k)[source]

The Dihedral group Dk in 2 dimensions

class emlp.groups.Scaling(n)[source]

The scaling group in n dimensions

class emlp.groups.SO13p(*args, **kwargs)[source]

The component of Lorentz group connected to identity

class emlp.groups.SO13(*args, **kwargs)[source]
class emlp.groups.O13(*args, **kwargs)[source]

The full lorentz group (including Parity and Time reversal)

class emlp.groups.Lorentz(*args, **kwargs)[source]
class emlp.groups.SO11p(*args, **kwargs)[source]

The identity component of O(1,1) (Lorentz group in 1+1 dimensions)

class emlp.groups.O11(*args, **kwargs)[source]

The Lorentz group O(1,1) in 1+1 dimensions

class emlp.groups.Sp(m)[source]

Symplectic group Sp(m) in 2m dimensions (sometimes referred to instead as Sp(2m) )

class emlp.groups.Z(n)[source]

The cyclic group Z_n (discrete translation group) of order n. Features a regular base representation.

class emlp.groups.S(n)[source]

The permutation group S_n with an n dimensional regular representation.

class emlp.groups.U(n)[source]

The unitary group U(n) in n dimensions (complex)

class emlp.groups.SU(n)[source]

The special unitary group SU(n) in n dimensions (complex)

class emlp.groups.Cube[source]

A discrete version of SO(3) including all 90 degree rotations in 3d space Implements a 6 dimensional representation on the faces of a cube

class emlp.groups.RubiksCube[source]

The Rubiks cube group G<S_48 consisting of all valid 3x3 Rubik’s cube transformations. Generated by the a quarter turn about each of the faces.

class emlp.groups.ZksZnxZn(k, n)[source]

One of the original GCNN groups ℤₖ⋉(ℤₙ×ℤₙ) for translation in x,y and rotation with the discrete 90 degree rotations (k=4) or 180 degree (k=2)

class emlp.groups.Embed(G, d, slice)[source]

A method to embed a given base group representation in larger vector space. Inputs: G: the group (and base representation) to embed d: the dimension in which to embed slice: a slice object specifying which dimensions G acts on.


SO(2) embedded in R^3 with rotations about z axis


O(2) embedded in R^3 with rotations about z axis


Dihedral D(k) embedded in R^3 with rotations about z axis