Structure constant algebras

Creation

structure_constant_algebraMethod
structure_constant_algebra(R::Ring, sctable::Array{_, 3}; one::Vector = nothing,
                                                          check::Bool = true)

Given an array with dimensions $(d, d, d)$ and a ring $R$, return the $d$-dimensional structure constant algebra over $R$. The basis e of $R$ satisfies e[i] * e[j] = sum(sctable[i,j,k] * e[k] for k in 1:d).

Unless check = false, this includes (time consuming) associativity and distributivity checks. If one is given, record the element with the supplied coordinate vector as the one element of the algebra.

Examples

julia> associative_algebra(QQ, reshape([1, 0, 0, 2, 0, 1, 1, 0], (2, 2, 2)))
Structure constant algebra of dimension 2 over QQ
source
structure_constant_algebraMethod
structure_constant_algebra(K::SimpleNumField) -> StructureConstantAlgebra, Map

Given a number field $L/K$, return $L$ as a $K$-algebra $A$ together with a $K$-linear map $A \to L$.

Examples

julia> L, = quadratic_field(2);

julia> structure_constant_algebra(L)
(Structure constant algebra of dimension 2 over QQ, Map: structure constant algebra -> real quadratic field)
source

Structure constant table

structure_constant_tableMethod
structure_constant_table(A::StructureConstantAlgebra; copy::Bool = true) -> Array{_, 3}

Given an algebra $A$, return the structure constant table of $A$. See structure_constant_algebra for the defining property.

Examples

julia> A = associative_algebra(QQ, reshape([1, 0, 0, 2, 0, 1, 1, 0], (2, 2, 2)));

julia> structure_constant_table(A)
2×2×2 Array{QQFieldElem, 3}:
[:, :, 1] =
 1  0
 0  2

[:, :, 2] =
 0  1
 1  0
source