ApCoCoA-1:NC.Mul
NC.Mul
Multiplication of two polynomials in a non-commutative polynomial ring.
Syntax
NC.Mul(F1:LIST, F2:LIST):LIST
Description
Please note: The function(s) explained on this page is/are using the ApCoCoAServer. You will have to start the ApCoCoAServer in order to use it/them.
Please set non-commutative polynomial ring (via the command Use) and word ordering (via the function NC.SetOrdering) before calling this function. The default word ordering is the length-lexicographic ordering ("LLEX"). For more information, please check the relevant commands and functions.
@param F1, F2: two non-commutative polynomials, which are left and right operands of multiplication respectively. Each polynomial is represented as a LIST of LISTs, and each element in every inner LIST involves only one indeterminate or none (a constant). For example, the polynomial f=2x[2]y[1]x[2]^2-9y[2]x[1]^2x[2]^3+5 is represented as F:=[[2x[1],y[1],x[2]^2], [-9y[2],x[1]^2,x[2]^3], [5]]. The zero polynomial 0 is represented as the empty LIST [].
@return: a LIST which represents the polynomial equal to F1*F2.
Example
NC.SetFp(3); NC.SetX(<quotes>abc</quotes>); NC.RingEnv(); Coefficient ring : Fp = Z/(3) Alphabet : abc Ordering : LLEX ------------------------------- F1 := [[2,<quotes>a</quotes>],[1,<quotes></quotes>]]; F2 := [[2,<quotes>b</quotes>],[1,<quotes>ba</quotes>]]; NC.Multiply(F1,F2); -- over F3 [[2, <quotes>aba</quotes>], [1, <quotes>ab</quotes>], [1, <quotes>ba</quotes>], [2, <quotes>b</quotes>]] ------------------------------- NC.Multiply(F2,F1); [[2, <quotes>baa</quotes>], [2, <quotes>ba</quotes>], [2, <quotes>b</quotes>]] ------------------------------- NC.Multiply(F1,[]); [ ] ------------------------------- NC.Multiply([],F1); [ ] ------------------------------- NC.Multiply([],[]); [ ] ------------------------------- NC.UnsetFp(); NC.RingEnv(); Coefficient ring : Q Alphabet : abc Ordering : LLEX ------------------------------- NC.Multiply(F1,F2); -- over Q [[2, <quotes>aba</quotes>], [4, <quotes>ab</quotes>], [1, <quotes>ba</quotes>], [2, <quotes>b</quotes>]] ------------------------------- NC.Multiply(F2,F1); [[2, <quotes>baa</quotes>], [5, <quotes>ba</quotes>], [2, <quotes>b</quotes>]] -------------------------------
See also