Structure constant algebras
Creation
structure_constant_algebra
— Methodstructure_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
structure_constant_algebra
— Methodstructure_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)
Structure constant table
structure_constant_table
— Methodstructure_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