AlgebraPackage(R, A)

naalg.spad line 594 [edit on github]

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 : () -> List(A)

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 : A -> NonNegativeInteger

rightRank(x) determines the number of linearly independent elements in b1*x, ..., bn*x, where b=[b1, ..., bn] is a basis.

weakBiRank : A -> NonNegativeInteger

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.