Difference between revisions of "ApCoCoA-1:NCo.MRAdd"

From ApCoCoAWiki
m (Bot: Category moved)
m (replaced <quotes> tag by real quotes)
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
{{Version|1}}
 
<command>
 
<command>
 
<title>NCo.MRAdd</title>
 
<title>NCo.MRAdd</title>
Line 10: Line 11:
 
<em>Please note:</em> The function(s) explained on this page is/are using the <em>ApCoCoAServer</em>. You will have to start the ApCoCoAServer in order to use it/them.
 
<em>Please note:</em> The function(s) explained on this page is/are using the <em>ApCoCoAServer</em>. You will have to start the ApCoCoAServer in order to use it/them.
 
<par/>
 
<par/>
Please set coefficient field via the function <ref>NCo.SetFp</ref> (or <ref>NCo.UnsetFp</ref>) before calling this function. The default coefficient field is the field of rational numbers, i.e. RAT in CoCoAL. For more information, please check the relevant functions.
+
Please set coefficient field via the function <ref>ApCoCoA-1:NCo.SetFp|NCo.SetFp</ref> (or <ref>ApCoCoA-1:NCo.UnsetFp|NCo.UnsetFp</ref>) before calling this function. The default coefficient field is the field of rational numbers, i.e. RAT in CoCoAL. For more information, please check the relevant functions.
 
<itemize>
 
<itemize>
 
<item>@param <em>X:</em> a finite alphabet (or set of indeterminates). It is of STRING type. Note that every letter in X MUST appear only once.The order of letters in X induces word orderings.</item>
 
<item>@param <em>X:</em> a finite alphabet (or set of indeterminates). It is of STRING type. Note that every letter in X MUST appear only once.The order of letters in X induces word orderings.</item>
  
<item>@param <em>Ordering:</em> a word ordering induced by the order of letters in X. It is a STRING, which is a shortened-form of the name of corresponding word ordering. Note that <quotes>LLEX</quotes> (the length-lexicographic ordering), <quotes>ELIM</quotes> (an elimination ordering) and <quotes>LRLEX</quotes> (the length-reverse-lexicographic ordering) are supported currently. See <ref>NCo.SetOrdering</ref> for more details.</item>
+
<item>@param <em>Ordering:</em> a word ordering induced by the order of letters in X. It is a STRING, which is a shortened-form of the name of corresponding word ordering. Note that "LLEX" (the length-lexicographic ordering), "ELIM" (an elimination ordering) and "LRLEX" (the length-reverse-lexicographic ordering) are supported currently. See <ref>ApCoCoA-1:NCo.SetOrdering|NCo.SetOrdering</ref> for more details.</item>
  
<item>@param <em>Relations:</em> a finite set of relations. It is of LIST type. Each element in Relations is of the form [W1, W2], where W1 and W2 are words in <tt>&lt;X&gt;</tt>. Each word is represented as a STRING. For example, the word <tt>xy^2x</tt> is represented as <quotes>xyyx</quotes>, and the identity is represented as the empty string <quotes></quotes>. Thus, the relation <tt>(yx, xy)</tt> is represented as [<quotes>yx</quotes>, <quotes>xy</quotes>], and the set of relations <tt>{(yx, xy),(zx,xz),(zy,yz)}</tt> is represented as [[<quotes>yx</quotes>, <quotes>xy</quotes>],[<quotes>zx</quotes>, <quotes>xz</quotes>],[<quotes>zy</quotes>, <quotes>yz</quotes>]].</item>
+
<item>@param <em>Relations:</em> a finite set of relations. It is of LIST type. Each element in Relations is of the form [W1, W2], where W1 and W2 are words in <tt>&lt;X&gt;</tt>. Each word is represented as a STRING. For example, the word <tt>xy^2x</tt> is represented as "xyyx", and the identity is represented as the empty string "". Thus, the relation <tt>(yx, xy)</tt> is represented as ["yx", "xy"], and the set of relations <tt>{(yx, xy),(zx,xz),(zy,yz)}</tt> is represented as [["yx", "xy"],["zx", "xz"],["zy", "yz"]].</item>
  
<item>@param <em>F1, F2:</em> two polynomials, which are left and right operands of addition respectively. Each polynomial is represented as a LIST of monomials, which are pairs of the form [C, W] where W is a word in <tt>&lt;X&gt;</tt> and C is the coefficient of W. For example, the polynomial <tt>f=xy-y+1</tt> is represented as F:=[[1,<quotes>xy</quotes>], [-1, <quotes>y</quotes>], [1,<quotes></quotes>]]. The zero polynomial <tt>0</tt> is represented as the empty LIST [].</item>
+
<item>@param <em>F1, F2:</em> two polynomials, which are left and right operands of addition respectively. Each polynomial is represented as a LIST of monomials, which are pairs of the form [C, W] where W is a word in <tt>&lt;X&gt;</tt> and C is the coefficient of W. For example, the polynomial <tt>f=xy-y+1</tt> is represented as F:=[[1,"xy"], [-1, "y"], [1,""]]. The zero polynomial <tt>0</tt> is represented as the empty LIST [].</item>
 
<item>@return: a LIST which represents the polynomial equal to F1+F2.</item>
 
<item>@return: a LIST which represents the polynomial equal to F1+F2.</item>
 
</itemize>
 
</itemize>
 
<example>
 
<example>
X := <quotes>abc</quotes>;   
+
X := "abc";   
Ordering := <quotes>LLEX</quotes>;   
+
Ordering := "LLEX";   
Relations := [[<quotes>aa</quotes>,<quotes></quotes>], [<quotes>bb</quotes>,<quotes></quotes>], [<quotes>ab</quotes>,<quotes>c</quotes>], [<quotes>ac</quotes>, <quotes>b</quotes>], [<quotes>cb</quotes>, <quotes>a</quotes>]];   
+
Relations := [["aa",""], ["bb",""], ["ab","c"], ["ac", "b"], ["cb", "a"]];   
 
F1 := []; -- F1=0
 
F1 := []; -- F1=0
 
F2 := []; -- F2=0
 
F2 := []; -- F2=0
Line 30: Line 31:
 
[ ]
 
[ ]
 
-------------------------------
 
-------------------------------
F3 := [[1,<quotes>b</quotes>],[1,<quotes>ba</quotes>]]; -- F3=b+ba
+
F3 := [[1,"b"],[1,"ba"]]; -- F3=b+ba
 
NCo.MRAdd(X, Ordering, Relations, F1,F3);
 
NCo.MRAdd(X, Ordering, Relations, F1,F3);
[[1, <quotes>ba</quotes>], [1, <quotes>b</quotes>]]
+
[[1, "ba"], [1, "b"]]
 
-------------------------------
 
-------------------------------
 
NCo.SetFp(2);  
 
NCo.SetFp(2);  
F4 := [[1,<quotes>a</quotes>],[1,<quotes></quotes>]]; -- F4=a+1   
+
F4 := [[1,"a"],[1,""]]; -- F4=a+1   
F5 := [[1,<quotes>b</quotes>],[1,<quotes>ac</quotes>]]; -- F5=b+ac=(by applying Relations)=>2b=0
+
F5 := [[1,"b"],[1,"ac"]]; -- F5=b+ac=(by applying Relations)=>2b=0
 
NCo.MRAdd(X, Ordering, Relations, F4,F5);
 
NCo.MRAdd(X, Ordering, Relations, F4,F5);
[[1, <quotes>a</quotes>], [1, <quotes></quotes>]]
+
[[1, "a"], [1, ""]]
 
-------------------------------
 
-------------------------------
 
</example>
 
</example>
 
</description>
 
</description>
 
<seealso>
 
<seealso>
<see>NCo.SetFp</see>
+
<see>ApCoCoA-1:NCo.SetFp|NCo.SetFp</see>
<see>NCo.SetOrdering</see>
+
<see>ApCoCoA-1:NCo.SetOrdering|NCo.SetOrdering</see>
<see>NCo.UnsetFp</see>
+
<see>ApCoCoA-1:NCo.UnsetFp|NCo.UnsetFp</see>
<see>Introduction to CoCoAServer</see>
+
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see>
 
</seealso>
 
</seealso>
 
<types>
 
<types>

Latest revision as of 13:41, 29 October 2020

This article is about a function from ApCoCoA-1.

NCo.MRAdd

Addition of two polynomials in a finitely presented monoid ring.

Syntax

NCo.MRAdd(X:STRING, Ordering:STRING, Relations:LIST, 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 coefficient field via the function NCo.SetFp (or NCo.UnsetFp) before calling this function. The default coefficient field is the field of rational numbers, i.e. RAT in CoCoAL. For more information, please check the relevant functions.

  • @param X: a finite alphabet (or set of indeterminates). It is of STRING type. Note that every letter in X MUST appear only once.The order of letters in X induces word orderings.

  • @param Ordering: a word ordering induced by the order of letters in X. It is a STRING, which is a shortened-form of the name of corresponding word ordering. Note that "LLEX" (the length-lexicographic ordering), "ELIM" (an elimination ordering) and "LRLEX" (the length-reverse-lexicographic ordering) are supported currently. See NCo.SetOrdering for more details.

  • @param Relations: a finite set of relations. It is of LIST type. Each element in Relations is of the form [W1, W2], where W1 and W2 are words in <X>. Each word is represented as a STRING. For example, the word xy^2x is represented as "xyyx", and the identity is represented as the empty string "". Thus, the relation (yx, xy) is represented as ["yx", "xy"], and the set of relations {(yx, xy),(zx,xz),(zy,yz)} is represented as [["yx", "xy"],["zx", "xz"],["zy", "yz"]].

  • @param F1, F2: two polynomials, which are left and right operands of addition respectively. Each polynomial is represented as a LIST of monomials, which are pairs of the form [C, W] where W is a word in <X> and C is the coefficient of W. For example, the polynomial f=xy-y+1 is represented as F:=[[1,"xy"], [-1, "y"], [1,""]]. The zero polynomial 0 is represented as the empty LIST [].

  • @return: a LIST which represents the polynomial equal to F1+F2.

Example

X := "abc";  
Ordering := "LLEX";  
Relations := [["aa",""], ["bb",""], ["ab","c"], ["ac", "b"], ["cb", "a"]];  
F1 := []; -- F1=0
F2 := []; -- F2=0
NCo.MRAdd(X, Ordering, Relations, F1,F2);
[ ]
-------------------------------
F3 := [[1,"b"],[1,"ba"]]; -- F3=b+ba
NCo.MRAdd(X, Ordering, Relations, F1,F3);
[[1, "ba"], [1, "b"]]
-------------------------------
NCo.SetFp(2); 
F4 := [[1,"a"],[1,""]]; -- F4=a+1  
F5 := [[1,"b"],[1,"ac"]]; -- F5=b+ac=(by applying Relations)=>2b=0
NCo.MRAdd(X, Ordering, Relations, F4,F5);
[[1, "a"], [1, ""]]
-------------------------------

See also

NCo.SetFp

NCo.SetOrdering

NCo.UnsetFp

Introduction to CoCoAServer