# AlgebraPackage(R, A)¶

AlgebraPackage assembles a variety of useful functions for general algebras.

basis: Vector A -> Vector A if R has EuclideanDomain
basis(va) selects a basis from the elements of va.
basisOfCenter: () -> List A
basisOfCenter() returns a basis of the space of all x of A satisfying commutator(x, a) = 0 and associator(x, a, b) = associator(a, x, b) = associator(a, b, x) = 0 for all a, b in A.
basisOfCentroid: () -> List Matrix R
basisOfCentroid() returns a basis of the centroid, i.e. the endomorphism ring of A considered as (A, A)-bimodule.
basisOfCommutingElements: () -> List A
basisOfCommutingElements() returns a basis of the space of all x of A satisfying 0 = commutator(x, a) for all a in A.
basisOfLeftAnnihilator: A -> List A
basisOfLeftAnnihilator(a) returns a basis of the space of all x of A satisfying 0 = x*a.
basisOfLeftNucleus: () -> List A
basisOfLeftNucleus() returns a basis of the space of all x of A satisfying 0 = associator(x, a, b) for all a, b in A.
basisOfLeftNucloid: () -> List Matrix R
basisOfLeftNucloid() returns a basis of the space of endomorphisms of A as right module. Note: left nucloid coincides with left nucleus if A has a unit.
basisOfMiddleNucleus: () -> List A
basisOfMiddleNucleus() returns a basis of the space of all x of A satisfying 0 = associator(a, x, b) for all a, b in A.
basisOfNucleus: () -> List A
basisOfNucleus() returns a basis of the space of all x of A satisfying associator(x, a, b) = associator(a, x, b) = associator(a, b, x) = 0 for all a, b in A.
basisOfRightAnnihilator: A -> List A
basisOfRightAnnihilator(a) returns a basis of the space of all x of A satisfying 0 = a*x.
basisOfRightNucleus: () -> List A
basisOfRightNucleus() returns a basis of the space of all x of A satisfying 0 = associator(a, b, x) for all a, b in A.
basisOfRightNucloid: () -> List Matrix R
basisOfRightNucloid() returns a basis of the space of endomorphisms of A as left module. Note: right nucloid coincides with right nucleus if A has a unit.
biRank: A -> NonNegativeInteger
biRank(x) determines the number of linearly independent elements in x, x*bi, bi*x, bi*x*bj, i, j=1, ..., n, where b=[b1, ..., bn] is a basis. Note: if A has a unit, then doubleRank, weakBiRank and biRank coincide.
doubleRank: A -> NonNegativeInteger
doubleRank(x) determines the number of linearly independent elements in b1*x, ..., x*bn, where b=[b1, ..., bn] is a basis.
leftRank: A -> NonNegativeInteger
leftRank(x) determines the number of linearly independent elements in x*b1, ..., x*bn, where b=[b1, ..., bn] is a basis.
radicalOfLeftTraceForm() returns basis for null space of leftTraceMatrix(), if the algebra is associative, alternative or a Jordan algebra, then this space equals the radical (maximal nil ideal) of the algebra.
rightRank(x) determines the number of linearly independent elements in b1*x, ..., bn*x, where b=[b1, ..., bn] is a basis.
weakBiRank(x) determines the number of linearly independent elements in the bi*x*bj, i, j=1, ..., n, where b=[b1, ..., bn] is a basis.