Basics
Creation of algebras
See the corresponding sections on structure constant algebras.
zero_algebra Method
zero_algebra([T, ] K::Field) -> AbstractAssociativeAlgebra
Return the zero ring as an algebra over the field
The optional first argument determines the type of the algebra, and can be StructureConstantAlgebra
(default) or MatrixAlgebra
.
Examples
julia> A = zero_algebra(QQ)
Structure constant algebra of dimension 0 over QQ
Basic properties
basis Method
basis(A::AbstractAssociativeAlgebra) -> Vector
Given a coordinates
to get the the coordinates of an element with respect to the bases.
Predicates
is_zero Method
is_zero(A::AbstractAssociativeAlgebra) -> Bool
Return whether
is_commutative Method
is_commutative(A::AbstractAssociativeAlgebra) -> Bool
Return whether
Examples
julia> A = matrix_algebra(QQ, 2);
julia> is_commutative(A)
false
is_central Method
is_central(A::AbstractAssociativeAlgebra)
Return whether the
Generators
gens Method
gens(A::AbstractAssociativeAlgebra; thorough_search::Bool = false) -> Vector
Given a basis(A)
, which generates
If thorough_search
is true
, the number of returned generators is possibly smaller. This will in general increase the runtime. It is not guaranteed that the number of generators is minimal in any case.
The gens_with_data
function computes additional data for expressing a basis as words in the generators.
Examples
julia> A = matrix_algebra(QQ, 3);
julia> gens(A; thorough_search = true)
5-element Vector{MatAlgebraElem{QQFieldElem, QQMatrix}}:
[1 0 0; 0 0 0; 0 0 0]
[0 0 0; 1 0 0; 0 0 0]
[0 0 0; 0 0 0; 1 0 0]
[0 1 0; 0 0 0; 0 0 0]
[0 0 1; 0 0 0; 0 0 0]
gens_with_data Method
gens_with_data(A::AbstractAssociativeAlgebra; thorough_search::Bool = false)
-> Vector, Vector, Vector
Given a
a subset
of basis(A)
, which generatesas an algebra over , a (new) basis
and a vector w::Vector{Tuple{Int, Int}}
, such thatB[i] = prod(G[j]^k for (j, k) in w[i]
.
If thorough_search
is true
, the number of returned generators is possibly smaller. This will in general increase the runtime. It is not guaranteed that the number of generators is minimal in any case.
Examples
julia> A = matrix_algebra(QQ, 3);
julia> G, B, w = gens_with_data(A; thorough_search = true);
julia> B[1] == prod(G[i]^j for (i, j) in w[1])
true
Center
center Method
center(A::AbstractAssociativeAlgebra)
-> StructureConstantAlgebra, Map
Returns the center
Examples
julia> A = matrix_algebra(QQ, 2);
julia> C, CtoA = center(A);
julia> C
Structure constant algebra of dimension 1 over QQ
dimension_of_center Method
dimension_of_center(A::AbstractAssociativeAlgebra) -> Int
Given a
Examples
julia> A = matrix_algebra(QQ, 2);
julia> dimension_of_center(A)
1
dimension_over_center Method
dimension_over_center(A::AbstractAssociativeAlgebra) -> Int
Given a simple
Examples
julia> A = matrix_algebra(QQ, 2);
julia> dimension_of_center(A)
1