Skip to content

olivierverdier/MultiAffine.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MultiAffine

Build Status codecov

This package models an affine group consisting of matrices of the form

$$χ = \begin{bmatrix} \mathbf{1} & \mathbf{0} \\\ X & h \end{bmatrix}$$

where $h$ is a matrix element of some group $H$, represented in dimension $n$, and $X$ is a $n × k$ matrix. If we denote such an element by $[X,h]$, the multiplication law is

$$[X,h] [X',h'] = [X+hX';hh']$$

One example of such group is

using MultiAffine
using Manifolds
G = MultiAffineGroup(Unitary(2), 2)
identity_element(G) # ([0.0 0.0; 0.0 0.0], ComplexF64[1.0 + 0.0im 0.0 + 0.0im; 0.0 + 0.0im 1.0 + 0.0im])

When the group $H$ is the special orthogonal group, one can use the alias MultiDisplacement(n,k) to create the group MultiAffineGroup(SpecialOrthogonal(n), k), for instance:

G = MultiDisplacement(3,2)
identity_element(G) # ([0.0 0.0; 0.0 0.0; 0.0 0.0], [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0])

About

Implementation of the multi-affine group and its actions

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages