AlgebraPackage(R, A)

naalg.spad line 522 [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.