http://apcocoa.uni-passau.de/wiki/api.php?action=feedcontributions&user=AndraschkoBot&feedformat=atomApCoCoAWiki - User contributions [en]2024-03-29T07:32:07ZUser contributionsMediaWiki 1.35.0http://apcocoa.uni-passau.de/wiki/index.php?title=Main_Page/Contribute&diff=16259Main Page/Contribute2020-11-02T14:39:58Z<p>AndraschkoBot: wiki was renamed</p>
<hr />
<div><div class="mainpage_box"><br />
<h3>Contribute</h3><br />
ApCoCoA is developed by the [[Team|ApCoCoA Team]], which is lead by [http://staff.fim.uni-passau.de/~kreuzer/ Martin Kreuzer]. Since we are a small team and there is much to do, new contributors are always welcome. If you want to help with the Wiki, you need to get an account, so please contact one of our team members who is working on the Wiki about creating an account for you. Contact Details can be found at the website of the [https://www.symbcomp.fim.uni-passau.de/lehrstuhlteam/ Chair of Symbolic Computation] at the University of Passau.<br />
<br />
In order to contribute a package to ApCoCoA-2, please follow the steps described in [[HowTo:Contribute an ApCoCoA-2 Package]]. There you get all informations about how to write a package and how to document it in the Wiki. A list of requested Packages can be found at [[ApCoCoAWiki:Requested Packages]].<br />
<br />
A to-do list especially for this Wiki can be found at [[ApCoCoAWiki:Todo]]. If you are familiar with CoCoA and want to write [[Category:How To|How To's]], then you can go to [[ApCoCoAWiki:Requested HowTo's]] for a list of requested HowTo's.<br />
<br />
If you have any questions, concerns or suggestions about ApCoCoA and this Wiki, please do not hesitate to contact us.<br />
</div></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:Weyl.WPower&diff=16192ApCoCoA-1:Weyl.WPower2020-10-29T13:50:57Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div>{{Version|1}}<br />
<command><br />
<title>Weyl.WPower</title><br />
<short_description>Computes the <tt>N</tt>-th power of a Weyl polynomial.</short_description><br />
<syntax><br />
Weyl.WPower(F:POLY,N:INT):POLY<br />
</syntax><br />
<description><br />
Computes the <tt>N</tt>-th of a Weyl polynomial <tt>F</tt>.<br />
<br />
<itemize><br />
<item>@param <em>F</em> A Weyl polynomial in normal form.</item><br />
<item>@param <em>N</em> A positive integer, power to be calculated.</item><br />
<item>@result A Weyl polynomial <tt>F^N</tt> in Normal form.</item><br />
</itemize><br />
<br />
<example><br />
A2::=QQ[x[1..2],y[1..2]]; --Define appropriate ring<br />
Use A2;<br />
F1:=x[1]^2x[2] - y[1]^3 + 3x[2]y[2] - 4;<br />
Weyl.WPower(F1,0);<br />
1<br />
-------------------------------<br />
Weyl.WPower(F1,1);<br />
x[1]^2x[2] - y[1]^3 + 3x[2]y[2] - 4<br />
-------------------------------<br />
Weyl.WPower(F1,2);<br />
x[1]^4x[2]^2 - 2x[1]^2x[2]y[1]^3 + y[1]^6 + 6x[1]^2x[2]^2y[2] - 6x[2]y[1]^3y[2] - 6x[1]x[2]y[1]^2 + 9x[2]^2y[2]^2 - 5x[1]^2x[2] + <br />
8y[1]^3 - 6x[2]y[1] - 15x[2]y[2] + 16<br />
-------------------------------<br />
Weyl.WPower(F1,3);<br />
x[1]^6x[2]^3 - 3x[1]^4x[2]^2y[1]^3 + 3x[1]^2x[2]y[1]^6 - y[1]^9 + 9x[1]^4x[2]^3y[2] - 18x[1]^2x[2]^2y[1]^3y[2] + 9x[2]y[1]^6y[2] - <br />
18x[1]^3x[2]^2y[1]^2 + 18x[1]x[2]y[1]^5 + 27x[1]^2x[2]^3y[2]^2 - 27x[2]^2y[1]^3y[2]^2 - 3x[1]^4x[2]^2 + 15x[1]^2x[2]y[1]^3 - <br />
12y[1]^6 - 54x[1]x[2]^2y[1]^2y[2] + 27x[2]^3y[2]^3 - 42x[1]^2x[2]^2y[1] + 36x[2]y[1]^4 - 18x[1]^2x[2]^2y[2] + 45x[2]y[1]^3y[2] + <br />
36x[1]x[2]y[1]^2 - 54x[2]^2y[1]y[2] - 27x[2]^2y[2]^2 + 21x[1]^2x[2] - 24x[1]x[2]^2 - 48y[1]^3 + 36x[2]y[1] + 63x[2]y[2] - 64<br />
<br />
-------------------------------<br />
Weyl.WPower(F1,-3);<br />
ERROR: 2nd Parameter should be a positive integer<br />
CONTEXT: Error("2nd Parameter should be a positive integer")<br />
-------------------------------<br />
</example><br />
</description><br />
<br />
<key>Weyl.WPower</key><br />
<key>WPower</key><br />
<br />
<types><br />
<type>polynomial</type><br />
</types><br />
<br />
<wiki-category>ApCoCoA-1:Package_weyl</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:Weyl.WMulByMonom&diff=16191ApCoCoA-1:Weyl.WMulByMonom2020-10-29T13:50:47Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div> {{Version|1}}<br />
<command><br />
<title>Weyl.WMulByMonom</title><br />
<short_description>Computes the product <tt>M*F</tt> of a Weyl monomial <tt>M</tt> and a Weyl polynomial <tt>F</tt> in normal form.</short_description><br />
<syntax><br />
Weyl.WMulByMonom(M:POLY,F:POLY):POLY<br />
</syntax><br />
<description><br />
This function multiplies a Weyl monomial <tt>M</tt> with a polynomial <tt>F</tt> and returns <tt>M*F</tt> as a Weyl polynomial in normal form.<br />
<br />
<itemize><br />
<item>@param <em>M</em> A Weyl monomial.</item><br />
<item>@param <em>F</em> A Weyl polynomial.</item><br />
<item>@return The product <tt>M*F</tt>, a Weyl polynomial in normal form.</item><br />
</itemize><br />
<br />
<em>Note:</em> Monomials and polynomials that are not in normal form should be first converted into normal form using <ref>ApCoCoA-1:Weyl.WNormalForm|Weyl.WNormalForm</ref>, otherwise you may get unexpected results.<br />
<br />
<example><br />
A1::=QQ[x,d]; --Define appropriate ring<br />
Use A1;<br />
M:=x^3d^4; F:=x^3+d^3+3xd+5;<br />
Weyl.WMulByMonom(M,F);<br />
x^6d^4 + x^3d^7 + 3x^4d^5 + 12x^5d^3 + 17x^3d^4 + 36x^4d^2 + 24x^3d<br />
-------------------------------<br />
Weyl.WMulByMonom(F,M); -- note the input<br />
ERROR: 1st parameter should be a Monomial!<br />
CONTEXT: Error("1st parameter should be a Monomial!")<br />
-------------------------------<br />
</example><br />
</description><br />
<seealso><br />
<see>ApCoCoA-1:Weyl.WNormalForm|Weyl.WNormalForm</see><br />
<see>ApCoCoA-1:Weyl.WMul|Weyl.WMul</see><br />
</seealso><br />
<types><br />
<type>polynomial</type><br />
</types><br />
<key>weyl.wmulbymonom</key><br />
<key>wmulbymonom</key><br />
<wiki-category>ApCoCoA-1:Package_weyl</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:Weyl.InIw&diff=16190ApCoCoA-1:Weyl.InIw2020-10-29T13:50:37Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div> {{Version|1}}<br />
<command><br />
<title>Weyl.InIw</title><br />
<short_description>Computes the initial ideal of a D-ideal <tt>I</tt> in Weyl algebra <tt>A_n</tt> with respect to the weight vector <tt>W=(u_i,v_i)</tt>.</short_description><br />
<syntax><br />
Weyl.InIw(I:IDEAL,W:LIST):IDEAL<br />
</syntax><br />
<description><br />
<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.<br />
<par/><br />
Computes the initial ideal of a D-ideal <tt>I</tt> in the Weyl algebra D with respect to weight vector <tt>W:=[u,v]</tt> such that <tt>u+v &gt; 0</tt>. Here <tt>u=(u1,...,un)</tt> and <tt>v=(v1,...,vn)</tt> are weights of indeterminates <tt>[x1,...,xn]</tt> and <tt>[y1,...,yn]</tt> respectively. Note that <tt>InIw(P,W)</tt> is an ideal of graded ring of D with respect to weight vector <tt>W</tt>. Due to limitations in CoCoA4, all <tt>u_i</tt> and <tt>v_i</tt> should be positive integers. Computation of initial ideal if <tt>u+v= 0</tt> is not implemented yet.<br />
<itemize><br />
<item>@param <em>I</em> An ideal in the Weyl algebra.</item><br />
<item>@param <em>W</em> A list of n positive integers, where n = number of indeterminates.</item><br />
<item>@return An ideal, which is the initial ideal of <tt>I</tt> with respect to <tt>W</tt>.</item><br />
</itemize><br />
<em>Beta Warning:</em> This method, package or class is a beta version. It may not work as intended or its interface may change in the next version! So please be careful when you're intending to use it.<br />
<br />
<example><br />
Use A4::=QQ[x[1..4],d[1..4]];<br />
I4:=Ideal(d[2]d[3]-d[1]d[4],x[1]d[1]-x[4]d[4]-1,x[2]d[2]+x[4]d[4]+1,x[3]d[3]+x[4]d[4]+2);<br />
Weyl.InIw(I4,[0,0,0,0,1,1,1,1]); --This function is implemented only for positive weights!<br />
ERROR: All weights shoud be strictly positive<br />
CONTEXT: Error("All weights shoud be strictly positive")<br />
-------------------------------<br />
Weyl.InIw(I4,[1,1,1,1,2,2,1,1]);<br />
-- CoCoAServer: computing Cpu Time = 0.016<br />
-------------------------------<br />
Ideal(x[2]x[3]x[4]d[4]^2 - x[1]x[4]^2d[4]^2, x[1]x[4]d[3]d[4] + x[2]x[4]d[4]^2, x[1]x[4]d[2]d[4], x[2]d[1]d[4],<br />
x[3]d[1]d[4] + x[4]d[2]d[4], x[1]d[1], x[2]d[2], x[3]d[3] + x[4]d[4], d[2]d[3] - d[1]d[4])<br />
-------------------------------<br />
Weyl.InIw(I4,[1,2,1,1,2,2,1,1]);<br />
-- CoCoAServer: computing Cpu Time = 0.032<br />
-------------------------------<br />
Ideal(x[2]x[4]d[4]^2, x[1]x[4]d[2]d[4], x[2]d[1]d[4], x[3]d[1]d[4] + x[4]d[2]d[4], x[1]d[1], x[2]d[2],<br />
x[3]d[3] + x[4]d[4], d[2]d[3] - d[1]d[4])<br />
-------------------------------<br />
<br />
Weyl.InIw(I4,[2,2,2,2,1,1,1,1]);<br />
-- CoCoAServer: computing Cpu Time = 0.031<br />
-------------------------------<br />
Ideal(x[2]x[3]x[4]d[4]^2 - x[1]x[4]^2d[4]^2, x[1]x[4]d[3]d[4] + x[2]x[4]d[4]^2, x[1]x[4]d[2]d[4] + x[3]x[4]d[4]^2,<br />
x[2]d[1]d[4] + x[4]d[3]d[4], x[3]d[1]d[4] + x[4]d[2]d[4], x[1]d[1] - x[4]d[4], x[2]d[2] + x[4]d[4],<br />
x[3]d[3] + x[4]d[4], d[2]d[3] - d[1]d[4])<br />
-------------------------------<br />
<br />
<br />
</example><br />
</description><br />
<seealso><br />
<see>ApCoCoA-1:Weyl.Inw|Weyl.Inw</see><br />
<see>ApCoCoA-1:Weyl.WLT|Weyl.WLT</see><br />
</seealso><br />
<types><br />
<type>apcocoaserver</type><br />
<type>ideal</type><br />
</types><br />
<key>weyl.InIw</key><br />
<key>iniw</key><br />
<wiki-category>ApCoCoA-1:Package_weyl</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:Slinalg.SGEF&diff=16189ApCoCoA-1:Slinalg.SGEF2020-10-29T13:50:27Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div>{{Version|1}}<br />
<command><br />
<title>Slinalg.SGEF</title><br />
<short_description>Performs specified steps of structured gaussian elimination on a sparse matrix over F2.</short_description><br />
<syntax><br />
Slinalg.SGEF(NRow:INT, NCol:INT, M:LIST, CSteps:STRING):LIST<br />
</syntax><br />
<description><br />
<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.<br />
<par/><br />
This function does some experiments on calculating row echelon form of a matrix using structured gaussian elimination. Please be careful while using this function because some columns and rows are deleted from the matrix. Some times the echelon form may not contain all the required information. The best possibility to compute echelon form is to set the parameter CSteps to "SGE1".<br />
<par/> <br />
<em>Structured Gaussian Elimination:</em> Structured Gaussian Elimination has the following four steps:<br />
<itemize><br />
<item><em>Step 1:</em> Delete all columns that have a single non-zero coefficient and the rows in which those columns have non-zero coefficients.</item><br />
<item><em>Step 2:</em> Declare some additional light columns to be "heavy", choosing the heaviest ones.</item><br />
<item><em>Step 3:</em> Delete some of the rows, selecting those which have the largest number of non-zero elements in the light columns.</item><br />
<item><em>Step 4:</em> For any row which has only a single non-zero coefficient equal to 1 in the light column, subtract appropriate multiples of that row from all other rows that have non-zero coefficients on that column so as to make those coefficients 0.</item><br />
</itemize><br />
After performing the four steps above we apply usual Gaussian Elimination, specially on the heavy part of the matrix.<br />
<itemize><br />
<item>@param <em>NRow</em>: Number of rows of the matrix.</item><br />
<item>@param <em>NCol</em>: Number of Columns of the matrix.</item><br />
<item>@param <em>M</em>: List of lists containing positions of non zero elements.</item><br />
<item>@param <em>CSteps</em>: The parameter CSetps lets you specify which steps of the Structured Gaussian Elimination you want to use.</item><br />
<item>@return A list of lists containing the row echelon form of the matrix.</item><br />
</itemize><br />
<br />
For the parameter <tt>CSteps</tt> we have to distinguish the following cases:<br />
<itemize><br />
<item><tt>CSteps</tt> is set to "SGE0": Then it performs the following: <tt>{loop Step 2, Step 4 End}</tt> and at the end it performs usual Gaussian Elimination.</item><br />
<item><tt>CSteps</tt> is set to "SGE1": Then it performs the following: <tt>{Step 1, {loop Step 2, Step 4 End}}</tt> and at the end it performs usual Gaussian Elimination.</item><br />
<item><tt>CSteps</tt> is set to "SGE2": Then it performs the following: <tt>{Step 1, {loop Step 2, Step 4 End}, Step 1, Step 3}</tt> and at the end it performs usual Gaussian Elimination.</item><br />
</itemize> <br />
<br />
<br />
<example><br />
NRow := 10;<br />
NCol := 13;<br />
CSteps:="SGE1";<br />
M := [[1, 2, 6, 7],<br />
[ 2, 4, 5, 6], <br />
[2, 3], <br />
[2, 3, 10, 11], <br />
[2, 4, 6, 7, 9, 10], <br />
[2, 10, 11, 13], <br />
[5, 6, 8],<br />
[ 6, 8, 9,10,12],<br />
[6, 10, 12], <br />
[10, 13]];<br />
<br />
Slinalg.SGEF(NRow, NCol, M, CSteps);<br />
[[2, 3],<br />
[3, 13],<br />
[10, 11],<br />
[11, 13]]<br />
</example><br />
<br />
<example><br />
NRow := 10;<br />
NCol := 13;<br />
CSteps:="SGE0";<br />
M := [[1, 2, 6, 7],<br />
[ 2, 4, 5, 6], <br />
[2, 3], <br />
[2, 3, 10, 11], <br />
[2, 4, 6, 7, 9, 10], <br />
[2, 10, 11, 13], <br />
[5, 6, 8],<br />
[ 6, 8, 9,10,12],<br />
[6, 10, 12], <br />
[10, 13]];<br />
<br />
Slinalg.SGEF(NRow, NCol, M, CSteps);<br />
[[1, 2, 6, 7],<br />
[2, 4, 5, 6],<br />
[3, 4, 5, 6],<br />
[4, 5, 6, 13],<br />
[5, 7, 9, 10],<br />
[6, 7, 8, 9, 10],<br />
[7, 8, 9, 12],<br />
[8, 9],<br />
[10, 11],<br />
[11, 13]]<br />
</example><br />
<br />
<example><br />
NRow := 10;<br />
NCol := 13;<br />
CSteps:="SGE2";<br />
M := [[1, 2, 6, 7],<br />
[ 2, 4, 5, 6], <br />
[2, 3], <br />
[2, 3, 10, 11], <br />
[2, 4, 6, 7, 9, 10], <br />
[2, 10, 11, 13], <br />
[5, 6, 8],<br />
[ 6, 8, 9,10,12],<br />
[6, 10, 12], <br />
[10, 13]];<br />
<br />
Slinalg.SGEF(NRow, NCol, M, CSteps);<br />
[ ]<br />
</example><br />
<br />
</description><br />
<types><br />
<type>apcocoaserver</type><br />
<type>matrix</type><br />
</types><br />
<br />
<seealso><br />
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see><br />
<see>ApCoCoA-1:IML.REF|IML.REF</see><br />
<see>ApCoCoA-1:LinAlg.REF|LinAlg.REF</see><br />
</seealso><br />
<br />
<key>slinalg.sgef</key><br />
<key>sgef</key><br />
<key>sparse matrix</key><br />
<wiki-category>ApCoCoA-1:Package_slinalg</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:SAT.LaunchMiniSat&diff=16188ApCoCoA-1:SAT.LaunchMiniSat2020-10-29T13:50:17Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div>{{Version|1}}<br />
<command><br />
<title>SAT.LaunchMiniSat</title><br />
<short_description>Launches MiniSat via the ApCoCoAServer on a given input file located in ApCoCoA-directory/sat/bin. The result is written to the file <tt>output</tt>.</short_description><br />
<syntax><br />
SAT.LaunchMiniSat(File:STRING)<br />
</syntax><br />
<description><br />
<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.<br />
<par/><br />
Make sure that the MiniSat executable is called "minisat" and located in ApCoCoA-directory/sat/bin.<br />
<itemize><br />
<item>@param <em>File</em>: The input file</item><br />
</itemize><br />
</description><br />
<br />
<types><br />
<type>polynomial</type><br />
<type>poly_system</type><br />
</types><br />
<br />
<key>SAT.LaunchMiniSat</key><br />
<key>LaunchMiniSat</key><br />
<wiki-category>ApCoCoA-1:Package_sat</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:SAT.LaunchCryptoMiniSat&diff=16187ApCoCoA-1:SAT.LaunchCryptoMiniSat2020-10-29T13:50:07Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div>{{Version|1}}<br />
<command><br />
<title>SAT.LaunchCryptoMiniSat</title><br />
<short_description>Launches CryptoMiniSat via the ApCoCoAServer on a given input file located in ApCoCoA-directory/sat/bin. The result is written to the file <tt>output</tt>.</short_description><br />
<syntax><br />
SAT.LaunchCryptoMiniSat(File:STRING)<br />
</syntax><br />
<description><br />
<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.<br />
<par/><br />
Make sure that the CryptoMiniSat executable is called "cryptominisat" and located in ApCoCoA-directory/sat/bin.<br />
<itemize><br />
<item>@param <em>File</em>: The input file</item><br />
</itemize><br />
</description><br />
<br />
<types><br />
<type>polynomial</type><br />
<type>poly_system</type><br />
</types><br />
<br />
<key>SAT.LaunchCryptoMiniSat</key><br />
<key>LaunchCryptoMiniSat</key><br />
<wiki-category>ApCoCoA-1:Package_sat</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:SAT.FixBits&diff=16186ApCoCoA-1:SAT.FixBits2020-10-29T13:49:57Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div>{{Version|1}}<br />
<command><br />
<title>SAT.FixBits</title><br />
<short_description>Allows to fix chosen bits in advance within a SAT input file. The new input file is <tt>sat_fixed.cnf</tt>.<br />
</short_description><br />
<syntax><br />
SAT.FixBits(BitList:LIST, File:STRING)<br />
</syntax><br />
<description><br />
<itemize><br />
<item>@param <em>BitList</em>: The indeterminates that should get fixed. Format: <tt>[[IndetIndex_1,Value_1],[IndetIndex_2,Value_2],...]</tt></item> <br />
<item>@param <em>File</em>: File in the SAT directory of the apcocoa folder</item><br />
</itemize><br />
<br />
<example><br />
-- quadratic system:<br />
Use R::=ZZ/(2)[x[1..3]];<br />
F1:= x[1]x[2] + x[1]x[3] + x[2]x[3] + x[3];<br />
F2:= x[2] + 1;<br />
F3:= x[1]x[2] + x[3];<br />
SPE:=[F1,F2,F3]; <br />
SAT.ConvertToCNF(SPE,4,0,0);<br />
SAT.FixBits([[1,0],[2,1]],"sat.cnf"); -- fixes x[1]=0 and x[2]=1<br />
SAT.LaunchMiniSat("sat_fixed.cnf");<br />
SAT.GetResult();<br />
--Result: [0,1,0] Test with: Eval(SPE,[0,1,0]);<br />
</example><br />
</description><br />
<br />
<types><br />
<type>polynomial</type><br />
<type>poly_system</type><br />
</types><br />
<br />
<key>SAT.FixBits</key><br />
<key>FixBits</key><br />
<wiki-category>ApCoCoA-1:Package_sat</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:SAT.ConvertToXOR&diff=16185ApCoCoA-1:SAT.ConvertToXOR2020-10-29T13:49:47Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div>{{Version|1}}<br />
<command><br />
<title>SAT.ConvertToXOR</title><br />
<short_description>Converts a given quadratic (cubic) system of polynomial equations (SPE) over GF(2) to XOR-CNF. Writes the XOR-CNF to the file <tt>sat_xor.cnf</tt>.<br />
</short_description><br />
<syntax><br />
SAT.ConvertToXOR(SPE:LIST, QStrategy:INT, CStrategy:INT)<br />
</syntax><br />
<description><br />
<em>Note:</em> XOR-CNF files are only applicable with CryptoMiniSat!<br />
<par/><br />
This function starts an alternative conversion algorithm.<br />
<br />
<itemize><br />
<item>@param <em>SPE</em>: A List containing the polynomial equations of the system.</item> <br />
<item>@param <em>QStrategy</em>: Strategy for quadratic substitution. 0 - Standard; 1 - Linear Partner; 2 - Adv. Lin. Partner;</item><br />
<item>@param <em>CStrategy</em>: Strategy for cubic substitution. 0 - Standard; 1 - Quadratic Partner;</item><br />
</itemize><br />
<br />
<example><br />
-- quadratic system:<br />
Use R::=ZZ/(2)[x[1..3]];<br />
F1:= x[1]x[2] + x[1]x[3] + x[2]x[3] + x[3];<br />
F2:= x[2] + 1;<br />
F3:= x[1]x[2] + x[3];<br />
SPE:=[F1,F2,F3]; <br />
SAT.ConvertToXOR(SPE,0,0);<br />
SAT.LaunchCryptoMiniSat("sat_xor.cnf");<br />
SAT.GetResult();<br />
--Result: [0,1,0] Test with: Eval(SPE,[0,1,0]);<br />
</example><br />
<br />
<example><br />
-- cubic system:<br />
Use ZZ/(2)[x[1..3]];<br />
F1:=x[1]x[2]x[3] + x[1]x[2] + x[2]x[3] + x[1] + x[3] +1;<br />
F2:=x[1]x[2]x[3] + x[1]x[2] + x[2]x[3] + x[1] + x[2];<br />
F3:=x[1]x[2] + x[2]x[3] + x[2];<br />
SPE:=[F1,F2,F3];<br />
SAT.ConvertToXOR(SPE,0,0);<br />
SAT.LaunchCryptoMiniSat("sat_xor.cnf");<br />
SAT.GetResult();<br />
--Result: [0,0,1] Test with: Eval(SPE,[0,0,1]);<br />
</example><br />
<br />
</description><br />
<br />
<types><br />
<type>polynomial</type><br />
<type>poly_system</type><br />
</types><br />
<br />
<key>SAT.ConvertToXOR</key><br />
<key>sat.ConvertToXOR</key><br />
<key>ConvertToXOR</key><br />
<wiki-category>ApCoCoA-1:Package_sat</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:SAT.ConvertToCNF&diff=16184ApCoCoA-1:SAT.ConvertToCNF2020-10-29T13:49:37Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div>{{Version|1|[[Package sat/SAT.ConvertToCNF]]}}<br />
<command><br />
<title>SAT.ConvertToCNF</title><br />
<short_description>Converts a given quadratic (cubic) system of polynomial equations (SPE) over GF(2) to CNF. Writes the CNF to the file <tt>sat.cnf</tt></short_description><br />
<syntax><br />
SAT.ConvertToCNF(SPE:LIST, CuttingNumber:INT, QStrategy:INT, CStrategy:INT)<br />
</syntax><br />
<description><br />
This function starts the conversion algorithm.<br />
<br />
<itemize><br />
<item>@param <em>SPE</em>: A List containing the polynomial equations of the system.</item> <br />
<item>@param <em>CuttingNumber</em>: Maximal support-length of the linear polynomials when their corresponding CNF is written to the file. Could be 3 - 6. </item><br />
<item>@param <em>QStrategy</em>: Strategy for quadratic substitution. 0 - Standard; 1 - Linear Partner; 2 - Adv. Lin. Partner;</item><br />
<item>@param <em>CStrategy</em>: Strategy for cubic substitution. 0 - Standard; 1 - Quadratic Partner;</item><br />
</itemize><br />
<br />
<example><br />
-- quadratic system:<br />
Use R::=ZZ/(2)[x[1..3]];<br />
F1:= x[1]x[2] + x[1]x[3] + x[2]x[3] + x[3];<br />
F2:= x[2] + 1;<br />
F3:= x[1]x[2] + x[3];<br />
SPE:=[F1,F2,F3]; <br />
SAT.ConvertToCNF(SPE,4,0,0);<br />
SAT.LaunchMiniSat("sat.cnf");<br />
SAT.GetResult();<br />
--Result: [0,1,0] Test with: Eval(SPE,[0,1,0]);<br />
</example><br />
<br />
<example><br />
-- cubic system:<br />
Use ZZ/(2)[x[1..3]];<br />
F1:=x[1]x[2]x[3] + x[1]x[2] + x[2]x[3] + x[1] + x[3] +1;<br />
F2:=x[1]x[2]x[3] + x[1]x[2] + x[2]x[3] + x[1] + x[2];<br />
F3:=x[1]x[2] + x[2]x[3] + x[2];<br />
SPE:=[F1,F2,F3];<br />
SAT.ConvertToCNF(SPE,4,0,0);<br />
SAT.LaunchMiniSat("sat.cnf");<br />
SAT.GetResult();<br />
--Result: [0,0,1] Test with: Eval(SPE,[0,0,1]);<br />
</example><br />
<br />
</description><br />
<br />
<types><br />
<type>polynomial</type><br />
<type>poly_system</type><br />
</types><br />
<br />
<key>SAT.ConvertToCNF</key><br />
<key>ConvertToCNF</key><br />
<wiki-category>ApCoCoA-1:Package_sat</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:Num.SubEXTABM&diff=16183ApCoCoA-1:Num.SubEXTABM2020-10-29T13:49:27Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div> {{Version|1}}<br />
<command><br />
<title>Num.SubEXTABM</title><br />
<short_description>Computes a border basis of an almost vanishing sub-ideal for a set of points and an ideal using the <ref>ApCoCoA-1:Num.EXTABM|Num.EXTABM</ref> algorithm.</short_description><br />
<syntax><br />
Num.SubEXTABM(Points:MAT, Val:MAT, Epsilon:RAT, Basis:LIST):Object<br />
Num.SubEXTABM(Points:MAT, Val:MAT, Epsilon:RAT, Basis:LIST, Delta:RAT, NormalizeType:INT):Object<br />
</syntax><br />
<description><br />
<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.<br />
<par/><br />
This command computes a border basis of an almost vanishing sub-ideal for a set of points and an ideal using the <ref>ApCoCoA-1:Num.EXTABM|Num.EXTABM</ref> algorithm.<br />
<par/><br />
The current ring has to be a ring over the rational numbers with a standard-degree<br />
compatible term-ordering. Each row in the matrix <tt>Points</tt> represents one point, so the number of columns must equal the<br />
number of indeterminates in the current ring. <br />
<br />
<itemize><br />
<item>@param <em>Points</em> The points for which a border basis is computed.</item><br />
<br />
<item>@param <em>Val</em> The time series we want to approximate using <em>Points</em>. </item><br />
<br />
<item>@param <em>Epsilon</em> A positive rational number describing the maximal admissible least squares error for a polynomial. (Bigger values for <tt>Epsilon</tt> lead to bigger errors of the polynomials evaluated at the point set). </item><br />
<br />
<item>@param <em>Basis</em> A set of polynomials in the current ring. This basis defines the ideal in which we compute the basis of the approximate vanishing ideal.</item><br />
<br />
<item>@return A list of two results. First the border basis as a list of polynomials, second the vector space basis of P/I as a list of terms.</item><br />
<br />
</itemize><br />
<br />
The following parameters are optional:<br />
<itemize><br />
<item>@param <em>Delta</em> A positive rational number which describes the computing precision. In different steps, it is crucial, if a value is 0 or not. The algorithm assumes every value in <tt>[-Delta, Delta]</tt> to be 0. The default value for <tt>Delta</tt> is 0.00000000001.</item><br />
<br />
<item>@param <em>NormalizeType</em> A integer of the set <tt>{1,2,3,4}</tt>. The default value is 2. This parameter describes, if and where required the input points are normalized. If <tt>NormalizeType</tt> equals 1, each coordinate of a point is divided by the maximal absolute value of all coordinates of this point. This ensures that all coordinates of the points are within <tt>[-1,1]</tt>. With <tt>NormalizeType=2</tt> no normalization is done at all. <tt>NormalizeType=3</tt> shifts each coordinate to <tt>[-1,1]</tt>, i.e. the minimal coordinate of a point is mapped to -1 and the maximal coordinate to 1, which describes a unique affine mapping. The last option is <tt>NormalizeType=4</tt>. In this case, each point is normalized by its euclidean norm. Although <tt>NormalizeType=3</tt> is in most cases a better choice, the default value is due to backward compatibility 1.</item><br />
<br />
</itemize><br />
<br />
<example><br />
Use P::=QQ[x,y,z];<br />
<br />
Points := Mat([[1,2,3],[4,5,6],[7,11,12]]);<br />
Val := Mat([[1],[0.1],[0.2]]);<br />
R:=Num.SubEXTABM(Points,Val, 0.1, [x]);<br />
<br />
Dec(-Eval(R[1],Points[1]),3);<br />
Dec(-Eval(R[1],Points[2]),3);<br />
Dec(-Eval(R[1],Points[3]),3);<br />
-- CoCoAServer: computing Cpu Time = 0<br />
-------------------------------<br />
["1.000", "0.999", "1.000", "0.999", "0.999", "1.000"]<br />
-------------------------------<br />
["0.099", "0.100", "0.100", "0.099", "0.099", "0.100"]<br />
-------------------------------<br />
["0.200", "0.200", "0.200", "0.199", "0.199", "0.199"]<br />
-------------------------------<br />
</example><br />
</description><br />
<seealso><br />
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see><br />
<see>ApCoCoA-1:Num.ABM|Num.ABM</see><br />
</seealso><br />
<types><br />
<type>apcocoaserver</type><br />
<type>points</type><br />
<type>ideal</type><br />
</types><br />
<key>SubEXTABM</key><br />
<key>num.SubEXTABM</key><br />
<key>numerical.subextabm</key><br />
<wiki-category>ApCoCoA-1:Package_numerical</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:Num.SubBBABM&diff=16182ApCoCoA-1:Num.SubBBABM2020-10-29T13:49:17Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div> {{Version|1}}<br />
<command><br />
<title>Num.SubBBABM</title><br />
<short_description>Computes a border basis of an almost vanishing sub-ideal for a set of points and an ideal using the <ref>ApCoCoA-1:Num.BBABM|Num.BBABM</ref> algorithm.</short_description><br />
<syntax><br />
Num.SubBBABM(Points:MAT, Epsilon:RAT, Basis:LIST):Object<br />
Num.SubBBABM(Points:MAT, Epsilon:RAT, Basis:LIST, Delta:RAT, ForbiddenTerms:LIST, NormalizeType:INT):Object<br />
</syntax><br />
<description><br />
<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.<br />
<par/><br />
This command computes a border basis of an almost vanishing sub-ideal for a set of points and an ideal using the <ref>ApCoCoA-1:Num.BBABM|Num.BBABM</ref> algorithm.<br />
<par/><br />
The current ring has to be a ring over the rational numbers with a standard-degree<br />
compatible term-ordering. Each row in the matrix <tt>Points</tt> represents one point, so the number of columns must equal the<br />
number of indeterminates in the current ring. <br />
<br />
<itemize><br />
<item>@param <em>Points</em> The points for which a border basis is computed.</item><br />
<br />
<item>@param <em>Epsilon</em> A positive rational number describing the maximal admissible least squares error for a polynomial. (Bigger values for <tt>Epsilon</tt> lead to bigger errors of the polynomials evaluated at the point set). <tt>Epsilon</tt> should be in the interval (0,1). As a rule of thumb, <tt>Epsilon</tt> is the expected percentage of error on the input points. </item><br />
<br />
<item>@param <em>Basis</em> A set of polynomials in the current ring. This basis defines the ideal in which we compute the basis of the approximate vanishing ideal.</item><br />
<br />
<item>@return A list of two results. First the border basis as a list of polynomials, second the vector space basis of P/I as a list of terms.</item><br />
<br />
</itemize><br />
<br />
The following parameters are optional:<br />
<itemize><br />
<item>@param <em>Delta</em> A positive rational number which describes the computing precision. In different steps, it is crucial, if a value is 0 or not. The algorithm assumes every value in <tt>[-Delta, Delta]</tt> to be 0. The default value for <tt>Delta</tt> is 0.00000000001.</item><br />
<br />
<item>@param <em>ForbiddenTerms</em> A list containing the terms which are not allowed to show up in the order ideal.</item><br />
<br />
<item>@param <em>NormalizeType</em> A integer of the set <tt>{1,2,3,4}</tt>. The default value is 2. This parameter describes, if and where required the input points are normalized. If <tt>NormalizeType</tt> equals 1, each coordinate of a point is divided by the maximal absolute value of all coordinates of this point. This ensures that all coordinates of the points are within <tt>[-1,1]</tt>. With <tt>NormalizeType=2</tt> no normalization is done at all. <tt>NormalizeType=3</tt> shifts each coordinate to <tt>[-1,1]</tt>, i.e. the minimal coordinate of a point is mapped to -1 and the maximal coordinate to 1, which describes a unique affine mapping. The last option is <tt>NormalizeType=4</tt>. In this case, each point is normalized by its euclidean norm. Although <tt>NormalizeType=3</tt> is in most cases a better choice, the default value is due to backward compatibility 1.</item><br />
<br />
</itemize><br />
<br />
<example><br />
Use P::=QQ[x,y,z];<br />
<br />
Points := Mat([[2/3,0,0],[0,1,0],[0,0,1/3]]);<br />
R:=Num.SubBBABM(Points, 0.1, [x]);<br />
Dec(R[1],2);<br />
R[2];<br />
<br />
<br />
-- CoCoAServer: computing Cpu Time = 0<br />
-------------------------------<br />
["1 xz ", "1 xy ", "1 x^2 -0.66 x "]<br />
-------------------------------<br />
[x]<br />
-------------------------------<br />
</example><br />
</description><br />
<seealso><br />
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see><br />
<see>ApCoCoA-1:Num.ABM|Num.ABM</see><br />
<see>ApCoCoA-1:Num.BBABM|Num.BBABM</see><br />
</seealso><br />
<types><br />
<type>apcocoaserver</type><br />
<type>points</type><br />
<type>ideal</type><br />
</types><br />
<key>SubBBABM</key><br />
<key>num.SubBBABM</key><br />
<key>numerical.subbbabm</key><br />
<wiki-category>ApCoCoA-1:Package_numerical</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:Num.SubAVI&diff=16181ApCoCoA-1:Num.SubAVI2020-10-29T13:49:07Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div> {{Version|1}}<br />
<command><br />
<title>Num.SubAVI</title><br />
<short_description>Computes a border basis of an almost vanishing sub-ideal for a set of points and an ideal using the <ref>ApCoCoA-1:Num.AVI|Num.AVI</ref> algorithm.</short_description><br />
<syntax><br />
Num.SubAVI(Points:MAT, Epsilon:RAT, Basis:LIST):Object<br />
Num.SubAVI(Points:MAT, Epsilon:RAT, Basis:LIST, Delta:RAT, NormalizeType:INT):Object<br />
</syntax><br />
<description><br />
<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.<br />
<par/><br />
This command computes a border basis of an almost vanishing sub-ideal for a set of points and an ideal using the <ref>ApCoCoA-1:Num.AVI|Num.AVI</ref> algorithm.<br />
<par/><br />
The current ring has to be a ring over the rational numbers with a standard-degree<br />
compatible term-ordering. Each row in the matrix <tt>Points</tt> represents one point, so the number of columns must equal the<br />
number of indeterminates in the current ring. <br />
<br />
<itemize><br />
<item>@param <em>Points</em> The points for which a border basis is computed.</item><br />
<br />
<item>@param <em>Epsilon</em> A positive rational number describing which singular values should be treated as 0 (bigger values for epsilon lead to bigger errors of the polynomials evaluated at the point set). Epsilon should be in the interval (0,1). As a rule of thumb, Tau is the expected percentage of error on the input points. </item><br />
<br />
<item>@param <em>Basis</em> A homogeneous Groebner Basis in the current ring. This basis defines the ideal in which we compute the basis of the approximate vanishing ideal.</item><br />
<br />
<item>@return A list of two results. First the border basis as a list of polynomials, second the vector space basis of P/I as a list of terms.</item><br />
<br />
</itemize><br />
<br />
The following parameters are optional:<br />
<itemize><br />
<item>@param <em>Delta</em> A positive rational number which describes the computing precision. In different steps, it is crucial, if a value is 0 or not. The algorithm assumes every value in <tt>[-Delta, Delta]</tt> to be 0. The default value for <tt>Delta</tt> is 0.00000000001.</item><br />
<br />
<item>@param <em>NormalizeType</em> A integer of the set <tt>{1,2,3,4}</tt>. The default value is 2. This parameter describes, if and where required the input points are normalized. If <tt>NormalizeType</tt> equals 1, each coordinate of a point is divided by the maximal absolute value of all coordinates of this point. This ensures that all coordinates of the points are within <tt>[-1,1]</tt>. With <tt>NormalizeType=2</tt> no normalization is done at all. <tt>NormalizeType=3</tt> shifts each coordinate to <tt>[-1,1]</tt>, i.e. the minimal coordinate of a point is mapped to -1 and the maximal coordinate to 1, which describes a unique affine mapping. The last option is <tt>NormalizeType=4</tt>. In this case, each point is normalized by its euclidean norm.</item><br />
<br />
<br />
</itemize><br />
<br />
<example><br />
Use P::=QQ[x,y,z];<br />
<br />
Points := Mat([[2/3,0,0],[0,1,0],[0,0,1/3]]);<br />
R:=Num.SubAVI(Points, 0.1, [x]);<br />
Dec(R[1],2);<br />
R[2];<br />
<br />
-- CoCoAServer: computing Cpu Time = 0<br />
-------------------------------<br />
["1 x^2 -0.66 x ", "1 xy ", "1 xz "]<br />
-------------------------------<br />
[x]<br />
-------------------------------<br />
<br />
</example><br />
</description><br />
<seealso><br />
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see><br />
<see>ApCoCoA-1:Num.AVI|Num.AVI</see><br />
</seealso><br />
<types><br />
<type>apcocoaserver</type><br />
<type>points</type><br />
<type>ideal</type><br />
</types><br />
<key>SubAVI</key><br />
<key>num.SubAVI</key><br />
<key>numerical.subavi</key><br />
<wiki-category>ApCoCoA-1:Package_numerical</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:Num.SubABM&diff=16180ApCoCoA-1:Num.SubABM2020-10-29T13:48:57Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div> {{Version|1}}<br />
<command><br />
<title>Num.SubABM</title><br />
<short_description>Computes a border basis of an almost vanishing sub-ideal for a set of points and an ideal using the <ref>ApCoCoA-1:Num.ABM|Num.ABM</ref> algorithm.</short_description><br />
<syntax><br />
Num.SubABM(Points:MAT, Epsilon:RAT, Basis:LIST):Object<br />
Num.SubABM(Points:MAT, Epsilon:RAT, Basis:LIST, Delta:RAT, ForbiddenMonomials:List, NormalizeType:INT):Object<br />
</syntax><br />
<description><br />
<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.<br />
<par/><br />
This command computes a border basis of an almost vanishing sub-ideal for a set of points and an ideal using the <ref>ApCoCoA-1:Num.ABM|Num.ABM</ref> algorithm.<br />
<par/><br />
The current ring has to be a ring over the rational numbers with a standard-degree<br />
compatible term-ordering. Each row in the matrix <tt>Points</tt> represents one point, so the number of columns must equal the<br />
number of indeterminates in the current ring. <br />
<br />
<itemize><br />
<item>@param <em>Points</em> The points for which a border basis is computed.</item><br />
<br />
<item>@param <em>Epsilon</em> A positive rational number describing the maximal admissible least squares error for a polynomial. (Bigger values for <tt>Epsilon</tt> lead to bigger errors of the polynomials evaluated at the point set). <tt>Epsilon</tt> should be in the interval (0,1). As a rule of thumb, <tt>Epsilon</tt> is the expected percentage of error on the input points. </item><br />
<br />
<item>@param <em>Basis</em> A set of polynomials in the current ring. This basis defines the ideal in which we compute the basis of the approximate vanishing ideal.</item><br />
<br />
<item>@return A list of two results. First the border basis as a list of polynomials, second the vector space basis of P/I as a list of terms.</item><br />
<br />
</itemize><br />
<br />
The following parameters are optional:<br />
<itemize><br />
<item>@param <em>Delta</em> A positive rational number which describes the computing precision. In different steps, it is crucial, if a value is 0 or not. The algorithm assumes every value in <tt>[-Delta, Delta]</tt> to be 0. The default value for <tt>Delta</tt> is 0.00000000001.</item><br />
<br />
<item>@param <em>ForbiddenTerms</em> A list containing the terms which are not allowed to show up in the order ideal.</item><br />
<br />
<item>@param <em>NormalizeType</em> A integer of the set <tt>{1,2,3,4}</tt>. The default value is 2. This parameter describes, if and where required the input points are normalized. If <tt>NormalizeType</tt> equals 1, each coordinate of a point is divided by the maximal absolute value of all coordinates of this point. This ensures that all coordinates of the points are within <tt>[-1,1]</tt>. With <tt>NormalizeType=2</tt> no normalization is done at all. <tt>NormalizeType=3</tt> shifts each coordinate to <tt>[-1,1]</tt>, i.e. the minimal coordinate of a point is mapped to -1 and the maximal coordinate to 1, which describes a unique affine mapping. The last option is <tt>NormalizeType=4</tt>. In this case, each point is normalized by its euclidean norm. Although <tt>NormalizeType=3</tt> is in most cases a better choice, the default value is due to backward compatibility 1.</item><br />
<br />
</itemize><br />
<br />
<example><br />
Use P::=QQ[x,y,z];<br />
<br />
Points := Mat([[2/3,0,0],[0,1,0],[0,0,1/3]]);<br />
R:=Num.SubABM(Points, 0.1, [x]);<br />
Dec(R[1],2);<br />
R[2];<br />
<br />
-- CoCoAServer: computing Cpu Time = 0<br />
-------------------------------<br />
["1 xz ", "1 xy ", "1 x^2 -0.66 x "]<br />
-------------------------------<br />
[x]<br />
-------------------------------<br />
</example><br />
</description><br />
<seealso><br />
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see><br />
<see>ApCoCoA-1:Num.ABM|Num.ABM</see><br />
</seealso><br />
<types><br />
<type>apcocoaserver</type><br />
<type>points</type><br />
<type>ideal</type><br />
</types><br />
<key>SubABM</key><br />
<key>num.SubABM</key><br />
<key>numerical.subabm</key><br />
<wiki-category>ApCoCoA-1:Package_numerical</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:Num.SingularValues&diff=16179ApCoCoA-1:Num.SingularValues2020-10-29T13:48:47Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div>{{Version|1}}<br />
<command><br />
<title>Num.SingularValues</title><br />
<short_description>Computes the singular values of a matrix.</short_description><br />
<syntax><br />
Num.SVD(A:MAT):[S:LIST]<br />
</syntax><br />
<description><br />
<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.<br />
<par/><br />
This command computes the singular values of the given matrix <tt>A</tt>.<br />
<br />
<itemize><br />
<item>@param <em>A</em> The matrix we want to analyze.</item><br />
<item>@return A list containing the singular values of <tt>A</tt>.</item><br />
</itemize><br />
<br />
<example><br />
D:=[[1,2,7,18],[2,4,9,12],[23,8,9,10]];<br />
Dec(Num.SingularValues(D),3);<br />
<br />
-- CoCoAServer: computing Cpu Time = 0<br />
-------------------------------<br />
["33.091", "17.047", "3.365"]<br />
-------------------------------<br />
</example><br />
</description><br />
<seealso><br />
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see><br />
<see>ApCoCoA-1:Num.QR|Num.QR</see><br />
<see>ApCoCoA-1:Num.SVD|Num.SVD</see><br />
<see>ApCoCoA-1:Num.EigenValues|Num.EigenValues</see><br />
<see>ApCoCoA-1:Num.EigenValuesAndVectors|Num.EigenValuesAndVectors</see><br />
<see>ApCoCoA-1:Num.EigenValuesAndAllVectors|Num.EigenValuesAndAllVectors</see><br />
</seealso><br />
<types><br />
<type>apcocoaserver</type><br />
<type>matrix</type><br />
</types><br />
<key>numerical.singularvalues</key><br />
<key>singularvalues</key><br />
<key>num.singularvalues</key><br />
<wiki-category>ApCoCoA-1:Package_numerical</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:Num.SimDiag&diff=16178ApCoCoA-1:Num.SimDiag2020-10-29T13:48:37Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div> {{Version|1}}<br />
<command><br />
<title>Num.SimDiag</title><br />
<short_description>Computes an approximate diagonalization of a set of matrices.</short_description><br />
<syntax><br />
Num.SimDiag(A:LIST, MaxIt:INT):[B:MAT, C:MAT]<br />
</syntax><br />
<description><br />
<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.<br />
<par/><br />
This function returns a list of two matrices, containing the approximate (almost) eigenvectors of the matrices in <tt>A</tt> and its inverse. <br />
<br />
<itemize><br />
<item>@param <em>A</em> A list of quadratic matrices with rational entries.</item><br />
<item>@param <em>MaxIt</em> The maximum number of iterations.</item><br />
<item>@return The output is a list of two matrices <tt>[B:MAT, C:MAT]</tt>. The first matrix <tt>B</tt> contains the real almost eigenvectors of the matrices in <tt>A</tt>. The matrix <tt>C</tt> is the inverse of <tt>B</tt>.</item><br />
</itemize><br />
<br />
<br />
<example><br />
M1 := Mat([[0, 0, -0.079, -0.018],[0, 0, 0.032, -0.012], [1, 0, 1.056, -0.012],[0, 1, -0.060, 1.025]]);<br />
M2 := Mat([[0, -0.063, 0, -0.018],[1, 1.026, 0, -0.012], [0, 0, 0, -0.012], [0, 0, 1, 1.025]]);<br />
M1 := Transposed(M1);<br />
M2 := Transposed(M2);<br />
Result := Num.SimDiag([M1,M2],10);<br />
<br />
Dec(Result[2]*M1*Result[1],3);<br />
Dec(Result[2]*M2*Result[1],3);<br />
<br />
<br />
Mat([<br />
["0.062", "0.016", "0.000", "0.006"],<br />
["0.021", "0.030", "-0.002", "-0.000"],<br />
["0.000", "0.005", "1.006", "-0.035"],<br />
["-0.000", "-0.000", "-0.031", "0.982"]<br />
])<br />
-------------------------------<br />
Mat([<br />
["0.048", "0.000", "0.030", "-0.005"],<br />
["0.000", "0.991", "-0.002", "-0.021"],<br />
["0.020", "0.005", "0.029", "-0.000"],<br />
["0.000", "-0.030", "-0.000", "0.982"]<br />
])<br />
-----------------------------<br />
</example><br />
</description><br />
<seealso><br />
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see><br />
<see>ApCoCoA-1:Num.QR|Num.QR</see><br />
<see>ApCoCoA-1:Num.SVD|Num.SVD</see><br />
<see>ApCoCoA-1:Num.EigenValues|Num.EigenValues</see><br />
<see>ApCoCoA-1:Num.EigenValuesAndVectors|Num.EigenValuesAndVectors</see><br />
<see>ApCoCoA-1:Num.EigenValuesAndAllVectors|Num.EigenValuesAndAllVectors</see><br />
</seealso><br />
<types><br />
<type>apcocoaserver</type><br />
<type>matrix</type><br />
</types><br />
<key>simdiag</key><br />
<key>num.simdiag</key><br />
<key>numerical.simdiag</key><br />
<wiki-category>ApCoCoA-1:Package_numerical</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:Num.SVD&diff=16177ApCoCoA-1:Num.SVD2020-10-29T13:48:27Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div> {{Version|1}}<br />
<command><br />
<title>Num.SVD</title><br />
<short_description>Computes the singular value decomposition of a matrix.</short_description><br />
<syntax><br />
Num.SVD(A:MAT):[U:MAT,S:MAT,VT:MAT]<br />
</syntax><br />
<description><br />
<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.<br />
<par/><br />
This command computes the singular value decomposition of the given matrix <tt>A</tt>. Let <tt>A</tt> be a <tt>(m x n)</tt> matrix. Then <tt>A</tt> is decomposed into the product of an orthogonal <tt>(m x m)</tt> matrix <tt>U</tt>, a transposed matrix <tt>VT</tt> of an orthogonal <tt>(n x n)</tt> matrix <tt>V</tt> and a real <tt>(m x n)</tt> matrix <tt>S</tt>, which contains the singular values of the matrix <tt>A</tt>.<br />
<br />
<itemize><br />
<item>@param <em>A</em> The matrix we want to decompose.</item><br />
<item>@return A list of three matrices <tt>[U, S, VT]</tt> such that <tt>A=U*S*VT</tt>.</item><br />
</itemize><br />
<br />
<example><br />
D:=[[1,2,7,18],[2,4,9,12],[23,8,9,10]];<br />
Dec(Num.SVD(D),3);<br />
<br />
-- CoCoAServer: computing Cpu Time = 0<br />
-------------------------------<br />
[Mat([<br />
["-0.473", "-0.666", "-0.575"],<br />
["-0.415", "-0.407", "0.813"],<br />
["-0.776", "0.624", "-0.084"]<br />
]), Mat([<br />
["33.091", "17.047", "3.365"]<br />
]), Mat([<br />
["-0.579", "-0.266", "-0.424", "-0.642"],<br />
["0.755", "0.119", "-0.159", "-0.624"],<br />
["-0.265", "0.423", "0.750", "-0.431"],<br />
["-0.153", "0.857", "-0.480", "0.100"]<br />
])]<br />
-------------------------------<br />
</example><br />
</description><br />
<seealso><br />
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see><br />
<see>ApCoCoA-1:Num.QR|Num.QR</see><br />
<see>ApCoCoA-1:Num.SingularValues|Num.SingularValues</see><br />
<see>ApCoCoA-1:Num.EigenValues|Num.EigenValues</see><br />
<see>ApCoCoA-1:Num.EigenValuesAndVectors|Num.EigenValuesAndVectors</see><br />
<see>ApCoCoA-1:Num.EigenValuesAndAllVectors|Num.EigenValuesAndAllVectors</see><br />
</seealso><br />
<types><br />
<type>apcocoaserver</type><br />
<type>matrix</type><br />
</types><br />
<key>numerical.svd</key><br />
<key>svd</key><br />
<key>num.svd</key><br />
<wiki-category>ApCoCoA-1:Package_numerical</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:Num.RatPoints&diff=16176ApCoCoA-1:Num.RatPoints2020-10-29T13:48:17Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div> {{Version|1}}<br />
<command><br />
<title>Num.RatPoints</title><br />
<short_description>Computes the zero set of an exact zero dimensional border basis. The zeros are computed approximately using the eigenvalues of the transposed multiplication matrices.</short_description><br />
<syntax><br />
Num.RatPoints(BB:LIST, OrderIdeal:LIST)):LIST of MAT<br />
</syntax><br />
<description><br />
<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.<br />
<par/><br />
This command computes a set of points, which are the zeros of an exact border basis. This border basis is close to the approximate border basis <tt>AppBB</tt>. The set of (complex) points is represented as two matrices. The <tt>j</tt>-th column of the first matrix gives the real part of a point and the <tt>j</tt>-th column of the second matrix gives the imaginary part. For computation the function is using the <ref>ApCoCoA-1:Num.EigenValues|Num.EigenValues</ref> command.<br />
<br />
<itemize><br />
<item>@param <em>AppBB</em> An approximate border basis.</item><br />
<item>@param <em>OrderIdeal</em> The associated order ideal</item><br />
<item>@return A set of points in matrix form described above.</item><br />
</itemize><br />
<br />
<example><br />
Use P::=QQ[x,y,z];<br />
<br />
Points := Mat([[2/3,0,0],[0,10,0],[0,0,1/3]]);<br />
R:=Num.ABM(Points, 0);<br />
Dec(Num.RatPoints(R[1],R[2]),2);<br />
<br />
-- CoCoAServer: computing Cpu Time = 0<br />
-------------------------------<br />
-- CoCoAServer: computing Cpu Time = 0.016<br />
-------------------------------<br />
[Mat([<br />
["0.66", "0.00", "0"],<br />
["0", "0", "10"],<br />
["0", "0.33", "0"]<br />
]), Mat([<br />
["0", "0", "0"],<br />
["0", "0", "0"],<br />
["0", "0", "0"]<br />
])]<br />
-------------------------------<br />
<br />
</example><br />
</description><br />
<seealso><br />
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see><br />
</seealso><br />
<types><br />
<type>apcocoaserver</type><br />
<type>polynomial</type><br />
<type>points</type><br />
</types><br />
<key>Num.RatPoints</key><br />
<key>RatPoints</key><br />
<key>numerical.RatPoints</key><br />
<wiki-category>ApCoCoA-1:Package_numerical</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:Num.QR&diff=16175ApCoCoA-1:Num.QR2020-10-29T13:48:07Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div> {{Version|1}}<br />
<command><br />
<title>Num.QR</title><br />
<short_description>Computes the QR-decomposition of a matrix.</short_description><br />
<syntax><br />
Num.QR(A:MAT):[Q:MAT,R:MAT]<br />
</syntax><br />
<description><br />
<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.<br />
<par/><br />
This command computes the QR-decomposition of a matrix using the external library Lapack, i.e. the matrix <tt>A</tt> will be decomposed into the product of an orthogonal matrix <tt>Q</tt> and an upper-right triangular matrix <tt>R</tt>.<br />
<br />
<itemize><br />
<item>@param <em>A</em> The matrix to decompose.</item><br />
<item>@return An orthogonal matrix <tt>Q</tt> and an upper-right triangular matrix <tt>R</tt> such that <tt>Q*R=A</tt>.</item><br />
</itemize><br />
<br />
<example><br />
Points:=Mat([[1,2,3],[2,3,4],[3,4,5]]);<br />
QR := Num.QR(Points);<br />
Dec(QR[1]*QR[2],3);<br />
<br />
-- CoCoAServer: computing Cpu Time = 0<br />
-------------------------------<br />
Mat([<br />
["0.999", "1.999", "2.999"],<br />
["1.999", "2.999", "3.999"],<br />
["2.999", "3.999", "4.999"]<br />
])<br />
-------------------------------<br />
</example><br />
</description><br />
<seealso><br />
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see><br />
<see>ApCoCoA-1:Num.SVD|Num.SVD</see><br />
<see>ApCoCoA-1:Num.EigenValues|Num.EigenValues</see><br />
<see>ApCoCoA-1:Num.EigenValuesAndVectors|Num.EigenValuesAndVectors</see><br />
<see>ApCoCoA-1:Num.EigenValuesAndAllVectors|Num.EigenValuesAndAllVectors</see><br />
</seealso><br />
<types><br />
<type>apcocoaserver</type><br />
<type>matrix</type><br />
</types><br />
<key>num.qr</key><br />
<key>qr</key><br />
<key>numerical.qr</key><br />
<wiki-category>ApCoCoA-1:Package_numerical</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:Num.ProjectAVI&diff=16174ApCoCoA-1:Num.ProjectAVI2020-10-29T13:47:57Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div> {{Version|1}}<br />
<command><br />
<title>Num.ProjectAVI</title><br />
<short_description>Computes the least squares solution of the general problem <tt>Ax=b</tt>, where <tt>x</tt> are coefficients of an order ideal.</short_description><br />
<syntax><br />
Num.ProjectAVI(Mat:MAT, Vec:MAT, OI:LIST):POLY<br />
</syntax><br />
<description><br />
<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.<br />
<par/><br />
This command computes the least squares solution of the general problem <tt>Ax=b</tt>, if there is no exact solution. The solution <tt>x</tt> has to be interpreted as the coefficients of the terms in the order ideal. <br />
<br />
<itemize><br />
<item>@param <em>Mat</em> Matrix <tt>A</tt></item><br />
<item>@param <em>Vec</em> Vector <tt>B</tt> as a matrix.</item><br />
<item>@param <em>OI</em> Order Ideal</item><br />
<item>@return The least squares solution of <tt>Ax=b</tt> interpreted as coefficients of <tt>OI</tt>.</item><br />
</itemize><br />
<br />
<br />
<example><br />
Dec(Num.ProjectAVI([[1,1],[0,1],[1,1]],[[0],[1],[0]],[x,y]),2);<br />
-- CoCoAServer: computing Cpu Time = 0<br />
-------------------------------<br />
["-0.99 x +1 y "]<br />
-------------------------------<br />
</example><br />
</description><br />
<seealso><br />
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see><br />
</seealso><br />
<types><br />
<type>apcocoaserver</type><br />
<type>matrix</type><br />
</types><br />
<key>Num.ProjectAVI</key><br />
<key>ProjectAVI</key><br />
<key>numerical.projectavi</key><br />
<wiki-category>ApCoCoA-1:Package_numerical</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:Num.LeastSquaresQR&diff=16173ApCoCoA-1:Num.LeastSquaresQR2020-10-29T13:47:47Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div> {{Version|1}}<br />
<command><br />
<title>Num.LeastSquaresQR</title><br />
<short_description>Computes the least squares solution of the linear system of equations <tt>Ax=b</tt>.</short_description><br />
<syntax><br />
Num.LeastSquaresQR(Mat:MAT, Vec:MAT):LIST<br />
</syntax><br />
<description><br />
<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.<br />
<par/><br />
This command computes the least squares solution of the linear system of equations <tt>Ax=b</tt>, if there is no exact solution. The matrix <tt>Mat</tt> must have the same number of rows as <tt>Vec</tt>.<br />
The QR decomposition of <tt>Mat</tt> is used to find the solution. <br />
<br />
<itemize><br />
<item>@param <em>Mat</em> Matrix <tt>A</tt> of the linear system of equations.</item><br />
<item>@param <em>Vec</em> Vector <tt>B</tt> as a matrix.</item><br />
<item>@return The least squares solution to <tt>Ax=b</tt>.</item><br />
</itemize><br />
<br />
<example><br />
Dec(Num.LeastSquaresQR([[1,1],[0,1],[1,1]],[[0],[1],[0]]),2);<br />
-- CoCoAServer: computing Cpu Time = 0<br />
-------------------------------<br />
["-0.99", "1"]<br />
-------------------------------<br />
</example><br />
</description><br />
<seealso><br />
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see><br />
</seealso><br />
<types><br />
<type>apcocoaserver</type><br />
<type>matrix</type><br />
</types><br />
<key>Num.LeastSquaresQR</key><br />
<key>LeastSquaresQR</key><br />
<key>numerical.leastsquaresqr</key><br />
<wiki-category>ApCoCoA-1:Package_numerical</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:Num.IsAVI&diff=16172ApCoCoA-1:Num.IsAVI2020-10-29T13:47:37Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div> {{Version|1}}<br />
<command><br />
<title>Num.IsAVI</title><br />
<short_description>Checks if a given set of polynomials vanishes at a given set of points.</short_description><br />
<syntax><br />
Num.IsAVI(Polys:LIST, Points:MAT, Epsilon:RAT):[A:INT or RAT,B:INT or RAT];<br />
</syntax><br />
<description><br />
<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.<br />
<par/><br />
This command checks if a set of polynomials vanishes at a set of points <tt>Epsilon</tt> approximately. The polynomials are preprocessed first to have norm 1.<br />
<itemize><br />
<item>@param <em>Polys</em> A list of polynomials.</item><br />
<item>@param <em>Points</em> A matrix containing the points to check.</item><br />
<item>@param <em>Epsilon</em> Rational number</item><br />
<item>@return A number <tt>A</tt> which specifies how well the points vanish on average and a number <tt>B</tt> which contains the maximal evaluation value</item><br />
</itemize><br />
<br />
<example><br />
Use P::=Q[x,y,z];<br />
Dec(Num.IsAVI([x+1,x^2],[[0]],0.1),3);<br />
-- CoCoAServer: computing Cpu Time = 0<br />
-------------------------------<br />
["0.353", "0.707"]<br />
-------------------------------<br />
</example><br />
</description><br />
<seealso><br />
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see><br />
</seealso><br />
<types><br />
<type>apcocoaserver</type><br />
<type>polynomial</type><br />
<type>points</type><br />
</types><br />
<key>Num.IsAvi</key><br />
<key>IsAvi</key><br />
<key>numerical.isavi</key><br />
<wiki-category>ApCoCoA-1:Package_numerical</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:Num.EigenValuesAndVectors&diff=16171ApCoCoA-1:Num.EigenValuesAndVectors2020-10-29T13:47:27Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div> {{Version|1}}<br />
<command><br />
<title>Num.EigenValuesAndVectors</title><br />
<short_description>Computes the eigenvalues and eigenvectors of a matrix.</short_description><br />
<syntax><br />
Num.EigenValuesAndVectors(A:MAT):[B:MAT, C:MAT, D:Matrix]<br />
</syntax><br />
<description><br />
<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.<br />
<par/><br />
This function returns a list of three matrices containing the numerical approximations of the complex eigenvalues and right eigenvectors of <tt>A</tt>. <br />
<br />
<itemize><br />
<item>@param <em>A</em> A quadratic matrix with rational entries.</item><br />
<item>@return The output is a list of three matrices <tt>[B:Matrix, C:Matrix, D:Matrix]</tt>. The first matrix <tt>B</tt> contains the complex eigenvalues of the matrix <tt>A</tt>, i.e. the first entry of a column is the real part and the second entry of the same column is the imaginary part of the eigenvalue. The matrices <tt>C</tt> and <tt>D</tt> represent the right eigenvectors of <tt>A</tt>, i.e. the <tt>j</tt>-th column of <tt>C</tt> contains the real part of the right eigenvector corresponding to eigenvalue <tt>j</tt> and the <tt>j</tt>-th column of <tt>D</tt> contains the imaginary part of the same right eigenvector corresponding to eigenvalue <tt>j</tt>.</item><br />
</itemize><br />
<br />
In order to compute the left hand eigenvectors of <tt>A</tt>, apply this command to the transposed matrix of <tt>A</tt> (see <ref>ApCoCoA-1:Transposed|Transposed</ref>).<br />
<br />
<example><br />
A:=Mat([[1,2,7,18],[2,4,9,12],[23,8,9,10],[7,5,3,2]]); <br />
Dec(Num.EigenValuesAndVectors(A),3); <br />
<br />
-- CoCoAServer: computing Cpu Time = 0.016<br />
-------------------------------<br />
[Mat([<br />
["28.970", "-13.677", "0.353", "0.353"],<br />
["0", "0", "3.051", "-3.051"]<br />
]), Mat([<br />
["0.394", "-0.581", "0.260", "0.260"],<br />
["0.435", "-0.442", "-0.547", "-0.547"],<br />
["0.763", "0.621", "0", "0"],<br />
["0.268", "0.281", "0.046", "0.046"]<br />
]), Mat([<br />
["0", "0", "-0.031", "0.031"],<br />
["0", "0", "-0.301", "0.301"],<br />
["0", "0", "0.680", "-0.680"],<br />
["0", "0", "-0.274", "0.274"]<br />
])]<br />
--------------------------------------------------------------<br />
</example><br />
</description><br />
<seealso><br />
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see><br />
<see>ApCoCoA-1:Num.QR|Num.QR</see><br />
<see>ApCoCoA-1:Num.SVD|Num.SVD</see><br />
<see>ApCoCoA-1:Num.EigenValues|Num.EigenValues</see><br />
<see>ApCoCoA-1:Num.EigenValuesAndAllVectors|Num.EigenValuesAndAllVectors</see><br />
</seealso><br />
<types><br />
<type>apcocoaserver</type><br />
<type>matrix</type><br />
</types><br />
<key>Num.EigenValuesAndVectors</key><br />
<key>EigenValuesAndVectors</key><br />
<key>numerical.eigenvaluesandvectors</key><br />
<wiki-category>ApCoCoA-1:Package_numerical</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:Num.EigenValuesAndAllVectors&diff=16170ApCoCoA-1:Num.EigenValuesAndAllVectors2020-10-29T13:47:17Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div> {{Version|1}}<br />
<command><br />
<title>Num.EigenValuesAndAllVectors</title><br />
<short_description>Computes eigenvalues and left and right eigenvectors of a matrix.</short_description><br />
<syntax><br />
Num.EigenValuesAndAllVectors(A:MAT):[B:MAT, C:MAT, D:MAT, E:MAT , F:MAT]<br />
</syntax><br />
<description><br />
<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.<br />
<par/><br />
This function returns a list of five matrices, containing numerical approximation of the eigenvalues of the matrix <tt>A</tt> and right and left eigenvectors. <br />
<br />
<itemize><br />
<item>@param <em>A</em> A quadratic matrix with rational entries.</item><br />
<item>@return The output is a list of five matrices <tt>[B:MAT, C:MAT, D:MAT, E:MAT, F:MAT]</tt>. The first matrix <tt>B</tt> contains the complex eigenvalues of the matrix <tt>A</tt>, i.e. the first entry of a column is the real part and the second entry of the same column is the imaginary part of the eigenvalue. The matrices <tt>C</tt> and <tt>D</tt> represent the right eigenvectors of <tt>A</tt>, i.e. the <tt>j</tt>-th column of <tt>C</tt> contains the real part of the right eigenvector corresponding to eigenvalue <tt>j</tt> and the <tt>j</tt>-th column of D contains the imaginary part of the same right eigenvector corresponding to eigenvalue <tt>j</tt>. The matrices <tt>E</tt> and <tt>F</tt> store the left eigenvectors analogue to <tt>C</tt> and <tt>D</tt>.</item><br />
</itemize><br />
<br />
<br />
<example><br />
A:=Mat([[1,2,7,18],[2,4,9,12],[23,8,9,10],[7,5,3,2]]); <br />
Dec(Num.EigenValuesAndAllVectors(A),3);<br />
-- CoCoAServer: computing Cpu Time = 0.016<br />
-------------------------------<br />
[Mat([<br />
["28.970", "-13.677", "0.353", "0.353"],<br />
["0", "0", "3.051", "-3.051"]<br />
]), Mat([<br />
["0.538", "-0.600", "0.389", "0.389"],<br />
["0.311", "-0.222", "-0.442", "-0.442"],<br />
["0.427", "0.174", "0.050", "0.050"],<br />
["0.656", "0.748", "0", "0"]<br />
]), Mat([<br />
["0", "0", "-0.174", "0.174"],<br />
["0", "0", "0.139", "-0.139"],<br />
["0", "0", "0.265", "-0.265"],<br />
["0", "0", "-0.727", "0.727"]<br />
]), Mat([<br />
["0.394", "-0.581", "0.260", "0.260"],<br />
["0.435", "-0.442", "-0.547", "-0.547"],<br />
["0.763", "0.621", "0", "0"],<br />
["0.268", "0.281", "0.046", "0.046"]<br />
]), Mat([<br />
["0", "0", "-0.031", "0.031"],<br />
["0", "0", "-0.301", "0.301"],<br />
["0", "0", "0.680", "-0.680"],<br />
["0", "0", "-0.274", "0.274"]<br />
])]<br />
-------------------------------<br />
</example><br />
</description><br />
<seealso><br />
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see><br />
<see>ApCoCoA-1:Num.QR|Num.QR</see><br />
<see>ApCoCoA-1:Num.SVD|Num.SVD</see><br />
<see>ApCoCoA-1:Num.EigenValues|Num.EigenValues</see><br />
<see>ApCoCoA-1:Num.EigenValuesAndVectors|Num.EigenValuesAndVectors</see><br />
</seealso><br />
<types><br />
<type>apcocoaserver</type><br />
<type>matrix</type><br />
</types><br />
<key>EigenValuesAndAllVectors</key><br />
<key>Num.EigenValuesAndAllVectors</key><br />
<key>numerical.eigenvaluesandallvectors</key><br />
<wiki-category>ApCoCoA-1:Package_numerical</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:Num.EigenValues&diff=16169ApCoCoA-1:Num.EigenValues2020-10-29T13:47:07Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div> {{Version|1}}<br />
<command><br />
<title>Num.EigenValues</title><br />
<short_description>Computes the eigenvalues of a matrix.</short_description><br />
<syntax><br />
Num.EigenValues(A:MAT):MAT<br />
</syntax><br />
<description><br />
<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.<br />
<par/><br />
This function computes the approximate complex eigenvalues of the matrix <tt>A</tt>.<br />
<br />
<itemize><br />
<item>@param <em>A</em> A quadratic matrix with rational entries.</item><br />
<item>@return The return value is a matrix with two rows. Each column of this matrix represents one approximate complex eigenvalue of <tt>A</tt>, i.e. the first entry of a column is the real part and the second entry of the same column is the imaginary part of one complex eigenvalue.</item><br />
</itemize><br />
<br />
<br />
<example><br />
Use P::=QQ[x,y,z];<br />
<br />
A:=Mat([[1,2,7,18],[2,4,9,12],[23,8,9,10],[7,5,3,2]]);<br />
Dec(Num.EigenValues(A),3);<br />
-- CoCoAServer: computing Cpu Time = 0.015<br />
-------------------------------<br />
Mat([<br />
["28.970", "-13.677", "0.353", "0.353"],<br />
["0", "0", "3.051", "-3.051"]<br />
])<br />
-------------------------------<br />
<br />
</example><br />
</description><br />
<seealso><br />
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see><br />
<see>ApCoCoA-1:Num.QR|Num.QR</see><br />
<see>ApCoCoA-1:Num.SVD|Num.SVD</see><br />
<see>ApCoCoA-1:Num.EigenValuesAndVectors|Num.EigenValuesAndVectors</see><br />
<see>ApCoCoA-1:Num.EigenValuesAndAllVectors|Num.EigenValuesAndAllVectors</see><br />
</seealso><br />
<types><br />
<type>apcocoaserver</type><br />
<type>matrix</type><br />
</types><br />
<key>Num.EigenValues</key><br />
<key>EigenValues</key><br />
<key>numerical.eigenvalues</key><br />
<wiki-category>ApCoCoA-1:Package_numerical</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:Num.EXTABM&diff=16168ApCoCoA-1:Num.EXTABM2020-10-29T13:46:57Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div>{{Version|1}}<br />
<command><br />
<title>Num.EXTABM</title><br />
<br />
<short_description>Computes the border basis of an almost vanishing ideal for a set of points.</short_description><br />
<syntax><br />
Num.EXTABM(Points:MAT, Val:MAT, Epsilon:RAT, Tau:RAT):Object<br />
Num.EXTABM(Points:MAT, Val:MAT, Epsilon:RAT, Tau:RAT, Delta:RAT, NormalizeType:INT):Object<br />
</syntax><br />
<br />
<description><br />
<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.<br />
<par/><br />
This command computes a border basis of an almost vanishing ideal for a set of points. A special property of the polynomials is, that when evaluated at the original set of points, one obtains approximately <tt>Val</tt>. To obtain an approximate ideal an additional indeterminate has to be added to each equation, which represents the coordinates of Val.<br />
<par/><br />
The current ring has to be a ring over the rational numbers with a standard-degree<br />
compatible term-ordering. The matrix <tt>Points</tt> contains the points: each<br />
point is a row in the matrix, so the number of columns must equal the<br />
number of indeterminates in the current ring. <br />
<br />
<itemize><br />
<item>@param <em>Points</em> The points for which a border basis is computed.</item><br />
<br />
<item>@param <em>Val</em> The time series we want to approximate using <em>Points</em>. </item><br />
<br />
<item>@param <em>Epsilon</em> A positive rational number describing the maximal admissible least squares error for a polynomial, which will be considered as almost vanishing.</item><br />
<br />
<item>@param <em>Tau</em> A positive rational number describing the maximal admissible least squares error of an approximately interpolating polynomial. (Bigger values for <tt>Tau</tt> lead to bigger errors of the polynomials evaluated at the point set). </item><br />
<br />
<item>@return A list of two results. First the border basis as a list of polynomials, second the vector space basis of <tt>P/I</tt> as a list of terms.</item><br />
</itemize><br />
<br />
The following parameters are optional:<br />
<itemize><br />
<item>@param <em>Delta</em> A positiv rational number. <tt>Delta</tt> describes the computing precision. In different steps, it is crucial, if a value is 0 or not. The algorithm assumes every value in <tt>[-Delta, Delta]</tt> to be 0. The default value for <tt>Delta</tt> is 0.00000000001.</item><br />
<br />
<item>@param <em>NormalizeType</em> A integer of the range 1..4. The default value is 2. This parameter describes, if/how the input points are normalized. If <tt>NormalizeType</tt> equals 1, each coordinate is divided by the maximal absolute value of the corresponding column of the matrix. This ensures that all coordinates of points are in [-1,1]. With <tt>NormalizeType=2</tt> no normalization is done at all. <tt>NormalizeType=3</tt> shifts each coordinate to [-1,1]. So it's minimum is mapped to -1 and the maximum to one, describing a unique affine mapping. The last option is <tt>NormalizeType=4</tt>. In this case, each coordinate is normalized, using the column's euclidian norm. </item><br />
</itemize><br />
<br />
<example><br />
Use P::=QQ[x,y,z];<br />
<br />
Points := Mat([[1,2,3],[4,5,6],[7,11,12]]);<br />
Val := Mat([[1],[0.1],[0.2]]);<br />
R:=Num.EXTABM(Points,Val, 0.1, 0.1);<br />
<br />
Dec(-Eval(R[1],Points[1]),3);<br />
Dec(-Eval(R[1],Points[2]),3);<br />
Dec(-Eval(R[1],Points[3]),3);<br />
<br />
<br />
-- CoCoAServer: computing Cpu Time = 0<br />
-------------------------------<br />
["1.000", "0.999", "0.999", "0.999"]<br />
-------------------------------<br />
["0.099", "0.099", "0.099", "0.099"]<br />
-------------------------------<br />
["0.199", "0.200", "0.199", "0.200"]<br />
-------------------------------<br />
</example><br />
</description><br />
<br />
<seealso><br />
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see><br />
<see>ApCoCoA-1:Num.SubEXTABM|Num.SubEXTABM</see><br />
</seealso><br />
<types><br />
<type>apcocoaserver</type><br />
<type>points</type><br />
</types><br />
<key>EXTABM</key><br />
<key>Num.EXTABM</key><br />
<key>numerical.EXTABM</key><br />
<wiki-category>ApCoCoA-1:Package_numerical</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:Num.DABM&diff=16167ApCoCoA-1:Num.DABM2020-10-29T13:46:47Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div>{{Version|1}}<br />
<command><br />
<title>Num.DABM</title><br />
<br />
<short_description>In a differential setting, computes the border basis of an almost vanishing ideal for a set of points using the ABM algorithm.</short_description><br />
<syntax><br />
DABM(Points:MAT, GoUpToOrder:INT, Epsilon:RAT, Nl:INT, Nr:INT, Deg:INT, CopyReplace:STRING, DoSavGol:INT)<br />
<br />
</syntax><br />
<br />
<description><br />
<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.<br />
<par/><br />
This command computes a differential border basis of an almost vanishing ideal for a set of points.<br />
<par/><br />
The current ring has to be a polynomial ring over the rational numbers with a standard-degree<br />
compatible term-ordering. The indeterminates have to be given as x[1..NumOfIndets,0..MaxOrd], where MaxOrd is the maximal order which should be considered by the algorithm, i.e., the order up to which derivative values are computed by the Savitzky-Golay filter involved.<br />
The matrix <tt>Points</tt> contains the data points: each<br />
point is a row in the matrix, so the number of columns must equal the<br />
number of indeterminates, namely NumOfIndets, in the current ring. The number of rows must be greater than <tt>Nl+Nr</tt> (again, because of the Savitzky-Golay filter).<br />
<br />
<itemize><br />
<item>@param <em>Points</em> The points for which a border basis is computed.</item><br />
<item>@param <em>GoUpToOrder</em> The order up to which derivatives are taken to construct the model polynomials. It must be between 0 and the maximal differential order MaxOrd in the definition of the current ring.</item><br />
<item>@param <em>Epsilon</em> A positive rational number describing the maximal admissible least squares error for a polynomial. (Bigger values for <tt>Epsilon</tt> lead to bigger errors of the polynomials evaluated at the point set). <tt>Epsilon</tt> should be in the interval (0,1). As a rule of thumb, <tt>Epsilon</tt> is the expected percentage of error on the input points. </item><br />
<item>@param <em>Nl</em> Number of left data points to be considered by the Savitzky-Golay filter.</item><br />
<item>@param <em>Nr</em> Number of right data points to be considered by the Savitzky-Golay filter.</item><br />
<item>@param <em>Deg</em> Maximum degree of the interpolation polynomial used by Savitzky-Golay filter. Must be greater or equal MaxOrd.<br />
</item><br />
<item>@param <em>CopyReplace</em> Only meaningful, if DoSavGol = 1. Is either <tt>c</tt> or <tt>r</tt>. Use <tt>c</tt> to include (copy) the original time series into the result. Use <tt>r</tt> to replace the original time series by the filtered results from Savitzky-Golay.</item><br />
<item>@param <em>DoSavGol</em> Either 0 or 1. Use 0 if the given Points already contain the numerical derivatives up to the required order. Use 1 if the Savitzky-Golay method should be applied to the given Points.</item><br />
<item>@return The border basis as a list of polynomials.</item><br />
</itemize><br />
<br />
<br />
<example><br />
Use Q[x[1..2,0..3]];<br />
Use Q[x[1..2,0..3]], Ord(DA.DiffTO("Ord"));<br />
<br />
<br />
Nl := 2;<br />
Nr := 2;<br />
Deg := 4;<br />
<br />
GoUpToOrder := 2;<br />
<br />
Epsilon:=0.1;<br />
<br />
CopyReplace := "c";<br />
DoSavGol := 1;<br />
<br />
-- Data is given by [[cos(I), sin(I)] | I In 1..35].<br />
Points := Mat([[0.540302, 0.841471], [-0.416147, 0.909297], [-0.989992, 0.14112], [-0.653644, -0.756802], [0.283662, -0.958924],<br />
[0.96017, -0.279415], [0.753902, 0.656987], [-0.1455, 0.989358], [-0.91113, 0.412118], [-0.839072, -0.544021],<br />
[0.0044257, -0.99999], [0.843854, -0.536573], [0.907447, 0.420167], [0.136737, 0.990607], [-0.759688, 0.650288],<br />
[-0.957659, -0.287903], [-0.275163, -0.961397], [0.660317, -0.750987], [0.988705, 0.149877], [0.408082, 0.912945],<br />
[-0.547729, 0.836656], [-0.999961, -0.00885131], [-0.532833, -0.84622], [0.424179, -0.905578], [0.991203, -0.132352],<br />
[0.646919, 0.762558], [-0.292139, 0.956376], [-0.962606, 0.270906], [-0.748058, -0.663634], [0.154251, -0.988032],<br />
[0.914742, -0.404038], [0.834223, 0.551427], [-0.0132767, 0.999912], [-0.84857, 0.529083], [-0.903692, -0.428183]<br />
]);<br />
<br />
<br />
Result:=Num.DABM(Points, GoUpToOrder, Epsilon, Nl, Nr, Deg, CopyReplace, DoSavGol);<br />
Foreach X In Result Do<br />
PrintLn Dec(X,2); <br />
EndForeach;<br />
<br />
-- (Result) --<br />
<br />
1 x[1,1] +0.99 x[2,0] -0.00 x[1,0] +0.00 <br />
1 x[2,1] +0.00 x[2,0] -0.99 x[1,0] +0.00 <br />
[...]<br />
<br />
</example><br />
</description><br />
<br />
<seealso><br />
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see><br />
<see>ApCoCoA-1:Num.ABM|Num.ABM</see><br />
<see>ApCoCoA-1:Num.CABM|Num.CABM</see><br />
<see>ApCoCoA-1:Num.BBABM|Num.BBABM</see><br />
</seealso><br />
<types><br />
<type>apcocoaserver</type><br />
<type>points</type><br />
</types><br />
<key>DABM</key><br />
<key>Num.DABM</key><br />
<key>numerical.DABM</key><br />
<wiki-category>ApCoCoA-1:Package_numerical</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:Num.CEXTABM&diff=16166ApCoCoA-1:Num.CEXTABM2020-10-29T13:46:37Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div>{{Version|1}}<br />
<command><br />
<title>Num.CEXTABM</title><br />
<br />
<short_description>Computes the border basis of an almost vanishing ideal for a set of points.</short_description><br />
<syntax><br />
Num.CEXTABM(PointsReal:MAT, PointsComp:MAT, ValReal:MAT, ValComp:MAT, Epsilon:RAT):Object<br />
Num.CEXTABM(PointsReal:MAT, PointsComp:MAT, ValReal:MAT, ValComp:MAT, Epsilon:RAT, Delta:RAT, NormalizeType:INT):Object<br />
</syntax><br />
<br />
<description><br />
<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.<br />
<par/><br />
This command computes a border basis of an almost vanishing ideal for a set of complex points. A special property of the polynomials is, that when evaluated at the original set of points, one obtains approximately <tt>Val</tt>. To obtain an approximate ideal an additional indeterminate has to be added to each equation, which represents the coordinates of Val.<br />
<par/><br />
The current ring has to be a ring over the rational numbers with a standard-degree<br />
compatible term-ordering. The matrix <tt>PointsReal</tt> contains the real part of the points, the matrix <tt>PointsComp</tt> the complex part: each point is a row in the matrix, so the number of columns must equal the<br />
number of indeterminates in the current ring. <br />
<br />
<itemize><br />
<item>@param <em>PointsReal</em> The real part of the points for which a border basis is computed.</item><br />
<br />
<item>@param <em>PointsComp</em> The complex part of the points for which a border basis is computed.</item><br />
<br />
<item>@param <em>ValReal</em> The real part of the time series we want to approximate using <em>Points</em>. </item><br />
<br />
<item>@param <em>ValComplex</em> The complex part of the time series we want to approximate using <em>Points</em>. </item><br />
<br />
<item>@param <em>Epsilon</em> A positive rational number describing the maximal admissible least squares error for a polynomial. (Bigger values for <tt>Epsilon</tt> lead to bigger errors of the polynomials evaluated at the point set). </item><br />
<br />
<item>@return A list of two results. First the border basis as a list of polynomials, second the vector space basis of <tt>P/I</tt> as a list of terms.</item><br />
</itemize><br />
<br />
The following parameters are optional:<br />
<itemize><br />
<item>@param <em>Delta</em> A positiv rational number. <tt>Delta</tt> describes the computing precision. In different steps, it is crucial, if a value is 0 or not. The algorithm assumes every value in <tt>[-Delta, Delta]</tt> to be 0. The default value for <tt>Delta</tt> is 0.00000000001.</item><br />
<br />
<item>@param <em>NormalizeType</em> A integer of the range 1..4. The default value is 2. This parameter describes, if/how the input points are normalized. If <tt>NormalizeType</tt> equals 1, each coordinate is divided by the maximal absolute value of the corresponding column of the matrix. This ensures that all coordinates of points are in [-1,1]. With <tt>NormalizeType=2</tt> no normalization is done at all. <tt>NormalizeType=3</tt> shifts each coordinate to [-1,1]. So it's minimum is mapped to -1 and the maximum to one, describing a unique affine mapping. The last option is <tt>NormalizeType=4</tt>. In this case, each coordinate is normalized, using the column's euclidian norm. Due to backward compatibility, the default is 1, although 3 is in most cases a better choice.</item><br />
</itemize><br />
<br />
<example><br />
Use P::=Q[x,y];<br />
PointsReal := Mat([[0,0],[1,1]]);<br />
PointsComplex := Mat([[1,-1],[-1,1]]);<br />
<br />
ValReal := Mat([[1],[1]]);<br />
ValComp := Mat([[0],[1]]);<br />
Res := Num.CEXTABM(PointsReal, PointsComplex, ValReal, ValComp, 0.1);<br />
Dec(Res,3);<br />
<br />
[[["-0.399 y -0.799 ", "-0.200 y -0.399 ", "0.400 x -1.199 ", "-0.199 x -0.399 "], [["1 "]]<br />
-------------------------------<br />
</example><br />
</description><br />
<br />
<seealso><br />
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see><br />
<see>ApCoCoA-1:Num.EXTABM|Num.EXTABM</see><br />
</seealso><br />
<types><br />
<type>apcocoaserver</type><br />
<type>points</type><br />
</types><br />
<key>CEXTABM</key><br />
<key>Num.CEXTABM</key><br />
<key>numerical.CEXTABM</key><br />
<wiki-category>ApCoCoA-1:Package_numerical</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:Num.CABM&diff=16165ApCoCoA-1:Num.CABM2020-10-29T13:46:27Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div>{{Version|1}}<br />
<command><br />
<title>Num.CABM</title><br />
<br />
<short_description>Computes the border basis of an almost vanishing ideal for a set of complex points.</short_description><br />
<syntax><br />
Num.CABM(PointsReal:MAT, PointsComp:MAT, Epsilon:RAT):Object<br />
Num.CABM(PointsReal:MAT, PointsComp:MAT, Epsilon:RAT, Delta:RAT, NormalizeType:INT):Object<br />
</syntax><br />
<br />
<description><br />
<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.<br />
<par/><br />
This command computes a border basis of an almost vanishing ideal for a set of complex points. <br />
<par/><br />
The current ring has to be a ring over the rational numbers with a standard-degree<br />
compatible term-ordering. The matrix <tt>PointsReal</tt> and <tt>PointsComp</tt> contain the points: each<br />
point is a row in the matrix, so the number of columns must equal the<br />
number of indeterminates in the current ring. <br />
<br />
<itemize><br />
<item>@param <em>PointsReal</em> The real part of the points for which a border basis is computed.</item><br />
<br />
<item>@param <em>PointsComp</em> The imaginary part of the points for which a border basis is computed.</item><br />
<br />
<item>@param <em>Epsilon</em> A positive rational number describing the maximal admissible least squares error for a polynomial. (Bigger values for <tt>Epsilon</tt> lead to bigger errors of the polynomials evaluated at the point set). <tt>Epsilon</tt> should be in the interval (0,1). As a rule of thumb, <tt>Epsilon</tt> is the expected percentage of error on the input points. </item><br />
<br />
<item>@return A list of two lists. First the border basis as a list of polynomials. Two polynomials always belong together containing the real and the complex part. Second the vector space basis of <tt>P/I</tt> as a list of terms.</item><br />
</itemize><br />
<br />
The following parameters are optional:<br />
<itemize><br />
<item>@param <em>Delta</em> A positiv rational number. <tt>Delta</tt> describes the computing precision. In different steps, it is crucial, if a value is 0 or not. The algorithm assumes every value in <tt>[-Delta, Delta]</tt> to be 0. The default value for <tt>Delta</tt> is 0.00000000001.</item><br />
<br />
<item>@param <em>NormalizeType</em> An integer of the range 1..4. The default value is 2. This parameter describes, if/how the input points are normalized. If <tt>NormalizeType</tt> equals 1, each coordinate is divided by the maximal absolute value of the corresponding column of the matrix. This ensures that all coordinates of points are in [-1,1]. With <tt>NormalizeType=2</tt> no normalization is done at all. <tt>NormalizeType=3</tt> shifts each coordinate to [-1,1]. So it's minimum is mapped to -1 and the maximum to one, describing a unique affine mapping. The last option is <tt>NormalizeType=4</tt>. In this case, each coordinate is normalized, using the euclidian norm of the column.</item><br />
</itemize><br />
<br />
<example><br />
Use P ::= Q[x];<br />
<br />
PointsReal := Mat([[0],[0]]);<br />
PointsComp := Mat([[1],[-1]]);<br />
<br />
Res := Num.CABM(PointsReal, PointsComp, 0.1);<br />
<br />
Dec(Res,3);<br />
-- CoCoAServer: computing Cpu Time = 0<br />
-------------------------------<br />
[["-0.707 x^2 -0.707 ", "0"], ["1", " x "]]<br />
-------------------------------<br />
</example><br />
</description><br />
<br />
<seealso><br />
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see><br />
<see>ApCoCoA-1:Num.SubABM|Num.SubABM</see><br />
<see>ApCoCoA-1:Num.ABM|Num.ABM</see><br />
<see>ApCoCoA-1:Num.BBABM|Num.BBABM</see><br />
<see>ApCoCoA-1:Num.DABM|Num.DABM</see><br />
</seealso><br />
<types><br />
<type>apcocoaserver</type><br />
<type>points</type><br />
</types><br />
<key>CABM</key><br />
<key>Num.CABM</key><br />
<key>numerical.CABM</key><br />
<wiki-category>ApCoCoA-1:Package_numerical</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:Num.BBABM&diff=16164ApCoCoA-1:Num.BBABM2020-10-29T13:46:17Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div>{{Version|1}}<br />
<command><br />
<title>Num.BBABM</title><br />
<br />
<short_description>Computes the border basis of an almost vanishing ideal for a set of points using the BB ABM algorithm.</short_description><br />
<syntax><br />
Num.BBABM(Points:MAT, Epsilon:RAT):Object<br />
Num.BBABM(Points:MAT, Epsilon:RAT, Delta:RAT, ForbiddenTerms:LIST, NormalizeType:INT):Object<br />
</syntax><br />
<br />
<description><br />
<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.<br />
<par/><br />
This command computes a border basis of an almost vanishing ideal for a set of points. In contrast to the ABM algorithm the border polynomials are computed in such a way, that the residual is calculated on polynomials that have leading borderterm coefficient one.<br />
<par/><br />
The current ring has to be a ring over the rational numbers with a standard-degree<br />
compatible term-ordering. The matrix <tt>Points</tt> contains the points: each<br />
point is a row in the matrix, so the number of columns must equal the<br />
number of indeterminates in the current ring. <br />
<br />
<itemize><br />
<item>@param <em>Points</em> The points for which a border basis is computed.</item><br />
<item>@param <em>Epsilon</em> A positive rational number describing the maximal admissible least squares error for a polynomial. (Bigger values for <tt>Epsilon</tt> lead to bigger errors of the polynomials evaluated at the point set). <tt>Epsilon</tt> should be in the interval (0,1). As a rule of thumb, <tt>Epsilon</tt> is the expected percentage of error on the input points. </item><br />
<item>@return A list of two results. First the border basis as a list of polynomials, second the vector space basis of <tt>P/I</tt> as a list of terms.</item><br />
</itemize><br />
<br />
The following parameters are optional:<br />
<itemize><br />
<item>@param <em>Delta</em> A positiv rational number. <tt>Delta</tt> describes the computing precision. In different steps, it is crucial, if a value is 0 or not. The algorithm assumes every value in <tt>[-Delta, Delta]</tt> to be 0. The default value for <tt>Delta</tt> is 0.00000000001.</item><br />
<br />
<item>@param <em>ForbiddenTerms</em> A list containing the terms which are not allowed to show up in the order ideal.</item><br />
<br />
<item>@param <em>NormalizeType</em> An integer of the range 1..4. The default value is 2. This parameter describes, if/how the input points are normalized. If <tt>NormalizeType</tt> equals 1, each coordinate is divided by the maximal absolute value of the corresponding column of the matrix. This ensures that all coordinates of points are in [-1,1]. With <tt>NormalizeType=2</tt> no normalization is done at all. <tt>NormalizeType=3</tt> shifts each coordinate to [-1,1]. So it's minimum is mapped to -1 and the maximum to one, describing a unique affine mapping. The last option is <tt>NormalizeType=4</tt>. In this case, each coordinate is normalized, using the column's euclidian norm. Due to backward compatibility, the default is 1, although 3 is in most cases a better choice.</item><br />
</itemize><br />
<br />
<example><br />
Use P::=QQ[x,y,z];<br />
<br />
Points := Mat([[1,0,0],[0,0,1],[0,0.99,0]]);<br />
Res := Num.BBABM(Points,0.1);<br />
<br />
Dec(Res[1],2);<br />
-- CoCoAServer: computing Cpu Time = 0.015<br />
-------------------------------<br />
["1 x +1.01 y +1 z -0.99 ", "1 z^2 -1 z ", "1 yz ", "1 xz ", "1 y^2 -0.98 y ", "1 xy "]<br />
--------------------------------------------------------------<br />
</example><br />
</description><br />
<br />
<seealso><br />
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see><br />
<see>ApCoCoA-1:Num.SubBBABM|Num.SubBBABM</see><br />
<see>ApCoCoA-1:Num.ABM|Num.ABM</see><br />
<see>ApCoCoA-1:Num.CABM|Num.CABM</see><br />
<see>ApCoCoA-1:Num.DABM|Num.DABM</see><br />
</seealso><br />
<types><br />
<type>apcocoaserver</type><br />
<type>points</type><br />
</types><br />
<key>BBABM</key><br />
<key>Num.BBABM</key><br />
<key>numerical.BBABM</key><br />
<wiki-category>ApCoCoA-1:Package_numerical</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:Num.AppKer&diff=16163ApCoCoA-1:Num.AppKer2020-10-29T13:46:07Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div>{{Version|1}}<br />
<command><br />
<title>Num.AppKer</title><br />
<short_description>Calculates the approximate kernel of a matrix.</short_description><br />
<br />
<syntax><br />
Num.AppKer(Matrix:MAT, Epsilon:RAT):MAT<br />
</syntax><br />
<br />
<description><br />
<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.<br />
<par/><br />
Calculates the approximate Kernel of a <tt>Matrix</tt> with respect to the residual error <tt>Epsilon</tt>.<br />
<br />
<itemize><br />
<item>@param <em>Matrix</em> A rational matrix.</item><br />
<item>@param <em>Epsilon</em> The target residual error.</item><br />
<item>@return The approximate kernel.</item><br />
</itemize><br />
<br />
<example><br />
<br />
M := Mat([[1,2,3],[4,5,6],[7,8,9]]);<br />
AppKer := Num.AppKer(M,0.01);<br />
Dec(AppKer,3);<br />
Dec(M * Transposed(AppKer),3);<br />
-- CoCoAServer: computing Cpu Time = 0.016<br />
-------------------------------<br />
Mat([<br />
["-0.408", "0.816", "-0.408"]<br />
])<br />
-------------------------------<br />
Mat([<br />
["-0.000"],<br />
["0.000"],<br />
["0.000"]<br />
])<br />
-------------------------------<br />
<br />
</example><br />
<br />
</description><br />
<br />
<types><br />
<type>matrix</type><br />
</types><br />
<br />
<seealso><br />
<see>ApCoCoA-1:Num.SVD|Num.SVD</see><br />
</seealso><br />
<br />
<key>AppKer</key><br />
<key>Num.AppKer</key><br />
<key>numerical.AppKer</key><br />
<br />
<wiki-category>ApCoCoA-1:Package_numerical</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:Num.AVI&diff=16162ApCoCoA-1:Num.AVI2020-10-29T13:45:57Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div> {{Version|1}}<br />
<command><br />
<title>Num.AVI</title><br />
<short_description>Computes a border basis of an almost vanishing ideal for a set of points.</short_description><br />
<syntax><br />
Num.AVI(Points:MAT, Epsilon:RAT):Object<br />
Num.AVI(Points:MAT, Epsilon:RAT, Delta:RAT, ForbiddenTerms:LIST, NormalizeType:INT):Object<br />
</syntax><br />
<br />
<description><br />
<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.<br />
<par/><br />
This function computes an approximate border basis of an almost vanishing ideal for a set of points using the AVI algorithm. AVI is an acronym of "Approximate Vanishing Ideal".<br />
<par/><br />
The current ring has to be a ring over the rational numbers with a standard-degree<br />
compatible term-ordering. The matrix <tt>Points</tt> contains the points: each<br />
point is a row in the matrix, so the number of columns must equal the<br />
number of indeterminates in the current ring. <br />
<br />
<itemize><br />
<item>@param <em>Points</em> The points for which a border basis is computed.</item><br />
<br />
<item>@param <em>Epsilon</em> A positive rational number describing which singular values should be treated as 0 (smaller values for <tt>Epsilon</tt> lead to bigger errors of the polynomials evaluated at the point set). <tt>Epsilon</tt> should be in the interval (0,1). As a rule of thumb, <tt>Epsilon</tt> is the expected percentage of error on the input points. </item><br />
<br />
<item>@return A list of two results. First the border basis as a list of polynomials, second the vector space basis of <tt>P/I</tt> as a list of terms.</item><br />
</itemize><br />
<br />
The following parameters are optional:<br />
<itemize><br />
<item>@param <em>Delta</em> A positive rational number. <tt>Delta</tt> describes the computing precision. In different steps, it is crucial, if a value is 0 or not. The algorithm assumes every value in <tt>[-Delta, Delta]</tt> to be 0. The default value for <tt>Delta</tt> is 0.00000000001.</item><br />
<br />
<item>@param <em>ForbiddenTerms</em> A list containing the terms which are not allowed to show up in the order ideal.</item><br />
<br />
<item>@param <em>NormalizeType</em> A integer of the range 1..4. The default value is 2. This parameter describes, if/how the input points are normalized. If <tt>NormalizeType</tt> equals 1, each coordinate is divided by the maximal absolute value of the corresponding column of the matrix. This ensures that all coordinates of points are in [-1,1]. With <tt>NormalizeType=2</tt> no normalization is done at all. <tt>NormalizeType=3</tt> shifts each coordinate to [-1,1]. So it's minimum is mapped to -1 and the maximum to one, describing a unique affine mapping. The last option is <tt>NormalizeType=4</tt>. In this case, each coordinate is normalized, using the column's euclidian norm.</item><br />
<br />
</itemize><br />
<br />
<example><br />
Use P::=QQ[x,y,z];<br />
<br />
Points := Mat([[1,0,0],[0,0,1],[0,1,0]]);<br />
Num.AVI(Points,0.001);<br />
-- CoCoAServer: computing Cpu Time = 0<br />
-------------------------------<br />
[[x + y + 4503599627370495/4503599627370496z - 4503599627370497/4503599627370496, xy, y^2 - y, xz, yz, z^2 - z], [1, z, y]]<br />
-------------------------------<br />
-------------------------------<br />
</example><br />
</description><br />
<seealso><br />
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see><br />
<see>ApCoCoA-1:Num.SubAVI|Num.SubAVI</see><br />
</seealso><br />
<types><br />
<type>apcocoaserver</type><br />
<type>points</type><br />
</types><br />
<key>numerical.AVI</key><br />
<key>AVI</key><br />
<key>num.avi</key><br />
<wiki-category>ApCoCoA-1:Package_numerical</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:Num.ABM&diff=16161ApCoCoA-1:Num.ABM2020-10-29T13:45:47Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div>{{Version|1}}<br />
<command><br />
<title>Num.ABM</title><br />
<br />
<short_description>Computes the border basis of an almost vanishing ideal for a set of points using the ABM algorithm.</short_description><br />
<syntax><br />
Num.ABM(Points:MAT, Epsilon:RAT):Object<br />
Num.ABM(Points:MAT, Epsilon:RAT, Delta:RAT, ForbiddenTerms:LIST, NormalizeType:INT):Object<br />
</syntax><br />
<br />
<description><br />
<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.<br />
<par/><br />
This command computes a border basis of an almost vanishing ideal for a set of points. <br />
<par/><br />
The current ring has to be a ring over the rational numbers with a standard-degree<br />
compatible term-ordering. The matrix <tt>Points</tt> contains the points: each<br />
point is a row in the matrix, so the number of columns must equal the<br />
number of indeterminates in the current ring. <br />
<br />
<itemize><br />
<item>@param <em>Points</em> The points for which a border basis is computed.</item><br />
<br />
<item>@param <em>Epsilon</em> A positive rational number describing the maximal admissible least squares error for a polynomial. (Bigger values for <tt>Epsilon</tt> lead to bigger errors of the polynomials evaluated at the point set). <tt>Epsilon</tt> should be in the interval (0,1). As a rule of thumb, <tt>Epsilon</tt> is the expected percentage of error on the input points. </item><br />
<br />
<item>@return A list of two results. First the border basis as a list of polynomials, second the vector space basis of <tt>P/I</tt> as a list of terms.</item><br />
</itemize><br />
<br />
The following parameters are optional:<br />
<itemize><br />
<item>@param <em>Delta</em> A positiv rational number. <tt>Delta</tt> describes the computing precision. In different steps, it is crucial, if a value is 0 or not. The algorithm assumes every value in <tt>[-Delta, Delta]</tt> to be 0. The default value for <tt>Delta</tt> is 0.00000000001.</item><br />
<item>@param <em>ForbiddenTerms</em> A list containing the terms which are not allowed to show up in the order ideal.</item><br />
<br />
<item>@param <em>NormalizeType</em> A integer of the range 1..4. The default value is 2. This parameter describes, if/how the input points are normalized. If <tt>NormalizeType</tt> equals 1, each coordinate is divided by the maximal absolute value of the corresponding column of the matrix. This ensures that all coordinates of points are in [-1,1]. With <tt>NormalizeType=2</tt> no normalization is done at all. <tt>NormalizeType=3</tt> shifts each coordinate to [-1,1]. So it's minimum is mapped to -1 and the maximum to one, describing a unique affine mapping. The last option is <tt>NormalizeType=4</tt>. In this case, each coordinate is normalized, using the column's euclidian norm.</item><br />
</itemize><br />
<br />
<example><br />
Use P::=QQ[x,y,z];<br />
<br />
Points := Mat([[1,0,0],[0,0,1],[0,0.99,0]]);<br />
Res := Num.ABM(Points,0.1);<br />
<br />
Dec(Res[1],2);<br />
<br />
-- CoCoAServer: computing Cpu Time = 0.016<br />
-------------------------------<br />
["1 x +1.01 y +0.99 z -0.99 ", "1 z^2 -0.99 z +0.00 ", "1 yz ", "1 xz ", "1 y^2 -0.98 y -0.00 ", "1 xy "]<br />
-------------------------------<br />
</example><br />
</description><br />
<br />
<seealso><br />
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see><br />
<see>ApCoCoA-1:Num.SubABM|Num.SubABM</see><br />
</seealso><br />
<types><br />
<type>apcocoaserver</type><br />
<type>points</type><br />
</types><br />
<key>ABM</key><br />
<key>Num.ABM</key><br />
<key>numerical.ABM</key><br />
<wiki-category>ApCoCoA-1:Package_numerical</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:NCo.UnsetRelations&diff=16160ApCoCoA-1:NCo.UnsetRelations2020-10-29T13:45:37Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div>{{Version|1}}<br />
<command><br />
<title>NCo.UnsetRelations</title><br />
<short_description><br />
Set relations to the empty set.<br />
</short_description><br />
<syntax><br />
NCo.UnsetRelations()<br />
</syntax><br />
<description><br />
<example><br />
NCo.SetX("xyz");<br />
NCo.SetRelations([["yx","xy"],["zx","xz"],["zy","yz"]]); -- yx=xy, zx=xz, zy=yz<br />
NCo.RingEnv();<br />
Coefficient ring : Q<br />
Alphabet : xyz<br />
Ordering : LLEX<br />
Relations : [["yx", "xy"], ["zx", "xz"], ["zy", "yz"]]<br />
-------------------------------<br />
NCo.UnsetRelations();<br />
NCo.RingEnv();<br />
Coefficient ring : Q<br />
Alphabet : xyz<br />
Ordering : LLEX<br />
-------------------------------<br />
</example><br />
</description><br />
<seealso><br />
<see>ApCoCoA-1:NCo.SetRelations|NCo.SetRelations</see><br />
</seealso><br />
<types><br />
<type>non_commutative</type><br />
</types><br />
<key>gbmr.UnsetRelations</key><br />
<key>NCo.UnsetRelations</key><br />
<key>UnsetRelations</key><br />
<wiki-category>ApCoCoA-1:Package_gbmr</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:NCo.TruncatedGB&diff=16159ApCoCoA-1:NCo.TruncatedGB2020-10-29T13:45:27Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div>{{Version|1}}<br />
<command><br />
<title>NCo.TruncatedGB</title><br />
<short_description><br />
Compute a truncated Groebner basis of a finitely generated homogeneous two-sided ideal in a free monoid ring.<br />
</short_description><br />
<syntax><br />
NCo.TruncatedGB(G:LIST, DB:INT):LIST<br />
</syntax><br />
<description><br />
Given a word ordering and a homogeneous two-sided ideal <tt>I</tt>, a set of non-zero polynomials <tt>G</tt> is called a Groebner basis of <tt>I</tt> if the leading word set <tt>LW{G}</tt> generates the leading word ideal <tt>LW(I)</tt>. Note that it may not exist finite Groebner basis of the ideal <tt>I</tt>. Moreover, let <tt>D</tt> be a positive integer. Then the set <tt>{g in G | Deg(g)&lt;=D}</tt> is a Groebner basis of the ideal <tt>&lt;f in I | Deg(f)&lt;=D&gt;</tt> and is called a <em>D-truncated</em> Groebner basis of <tt>I</tt>. <br />
<par/><br />
<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.<br />
<par/><br />
Please set ring environment <em>coefficient field</em> <tt> K</tt>, <em>alphabet</em> (or set of indeterminates) <tt>X</tt> and <em>ordering</em> via the functions <ref>ApCoCoA-1:NCo.SetFp|NCo.SetFp</ref>, <ref>ApCoCoA-1:NCo.SetX|NCo.SetX</ref> and <ref>ApCoCoA-1:NCo.SetOrdering|NCo.SetOrdering</ref>, respectively, before using this function. The default coefficient field is <tt>Q</tt>, and the default ordering is the length-lexicographic ordering ("LLEX"). For more information, please check the relevant functions.<br />
<itemize><br />
<item>@param <em>G</em>: a LIST of non-zero homogeneous polynomials generating a two-sided ideal in <tt>K&lt;X&gt;</tt>. Each polynomial is represented as a LIST of monomials, which are LISTs 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,""]].</item><br />
<br />
<item>@param <em>DB</em>: a positive INT, which gives a degree bound of S-polynomials (or obstructions) during the Buchberger enumerating procedure. The procedure will discard S-polynomials (or obstructions) whose degrees are larger than DB.</item><br />
<br />
<item>@return: a LIST of polynomials, which is a truncated Groebner basis at degree DB with respect to the current word ordering if the enumerating procedure doesn't terminate due to reaching the loop bound LB, and is a partial Groebner basis otherwise.</item><br />
</itemize><br />
<example><br />
NCo.SetX("xyz");<br />
F1:=[[1,"yxy"],[-1,"zyz"]];<br />
F2:=[[1,"xyx"],[-1,"zxy"]];<br />
F3:=[[1,"zxz"],[-1,"yzx"]];<br />
F4:=[[1,"xxx"],[1,"yyy"],[1,"zzz"],[1,"xyz"]];<br />
G:=[F1,F2,F3,F4];<br />
NCo.TruncatedGB(G,6);<br />
[[[1, "yzx"], [-1, "zxz"]], [[1, "yxy"], [-1, "zyz"]], [[1, "xyx"], [-1, "zxy"]], [[1, "xxx"], [1, "xyz"], [1, "yyy"], [1, "zzz"]], <br />
[[1, "zxzy"], [-1, "zzxz"]], [[1, "xzyz"], [-1, "zxyy"]], [[1, "xxyz"], [1, "xyyy"], [-1, "xzxz"], [1, "xzzz"], [-1, "yyyx"], <br />
[-1, "zzzx"]], [[1, "zzxyy"], [-1, "zzxzz"]], [[1, "yzzxz"], [-1, "zxzzy"]], [[1, "yzzxy"], [-1, "zzxzx"]], [[1, "yzyyy"], <br />
[1, "yzzzz"], [1, "zxzxx"], [1, "zzxzz"]], [[1, "yxzxz"], [-1, "zyzzx"]], [[1, "xzzxz"], [-1, "zxyyx"]], [[1, "xyyyy"], [1, "xyzzz"], <br />
[1, "zxyyz"], [1, "zzzxy"]], [[1, "xxzxz"], [1, "xyyyx"], [-1, "xzxzx"], [1, "xzzzx"], [-1, "yyyxx"], [-1, "zzzxx"]], [[1, "xxzxy"], <br />
[1, "xyzyx"], [1, "yyyyx"], [1, "zzzyx"]], [[1, "xxyyy"], [1, "xxzzz"], [-1, "xyzyz"], [-1, "xzxzx"], [-1, "yyyxx"], [-1, "yyyyz"], <br />
[-1, "zzzxx"], [-1, "zzzyz"]], [[1, "zxzzyz"], [-1, "zzxzxy"]], [[1, "yzzzxz"], [-1, "zxzzyy"]], [[1, "yzzzxy"], [-1, "zzxzxx"]], <br />
[[1, "xzzzxz"], [-1, "zxyzyz"]], [[1, "xyyzyz"], [1, "xzxyyx"], [-1, "xzxzxy"], [1, "xzzzxy"], [-1, "yyyxxy"], [-1, "zzzxxy"]], <br />
[[1, "xxzzzy"], [1, "xyyyzz"], [-1, "xyzyzy"], [-1, "xzxyyz"], [-1, "xzxzxy"], [-1, "xzxzzz"], [-1, "xzzzxy"], [1, "xzzzzz"], <br />
[-1, "yyyxxy"], [-1, "yyyxzz"], [-1, "yyyyzy"], [-1, "zzzxxy"], [-1, "zzzxzz"], [-1, "zzzyzy"]], [[1, "xxzzxy"], [1, "xyzyxx"], <br />
[1, "yyyyxx"], [1, "zzzyxx"]]]<br />
-------------------------------<br />
</example><br />
</description><br />
<seealso><br />
<see>ApCoCoA-1:NCo.GB|NCo.GB</see><br />
<see>ApCoCoA-1:NCo.IsGB|NCo.IsGB</see><br />
<see>ApCoCoA-1:NCo.LW|NCo.LW</see><br />
<see>ApCoCoA-1:NCo.ReducedGB|NCo.ReducedGB</see><br />
<see>ApCoCoA-1:NCo.SetFp|NCo.SetFp</see><br />
<see>ApCoCoA-1:NCo.SetOrdering|NCo.SetOrdering</see><br />
<see>ApCoCoA-1:NCo.SetX|NCo.SetX</see><br />
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see><br />
</seealso><br />
<types><br />
<type>apcocoaserver</type><br />
<type>ideal</type><br />
<type>groebner</type><br />
<type>non_commutative</type><br />
</types><br />
<key>gbmr.TruncatedGB</key><br />
<key>NCo.TruncatedGB</key><br />
<key>TruncatedGB</key><br />
<wiki-category>ApCoCoA-1:Package_gbmr</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:NCo.Subtract&diff=16158ApCoCoA-1:NCo.Subtract2020-10-29T13:45:17Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div>{{Version|1}}<br />
<command><br />
<title>NCo.Subtract</title><br />
<short_description><br />
Subtraction of two polynomials in a free monoid ring.<br />
</short_description><br />
<syntax><br />
NCo.Subtract(F1:LIST, F2:LIST):LIST<br />
</syntax><br />
<description><br />
<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.<br />
<par/><br />
Please set ring environment <em>coefficient field</em> <tt> K</tt>, <em>alphabet</em> (or set of indeterminates) <tt>X</tt> and <em>ordering</em> via the functions <ref>ApCoCoA-1:NCo.SetFp|NCo.SetFp</ref>, <ref>ApCoCoA-1:NCo.SetX|NCo.SetX</ref> and <ref>ApCoCoA-1:NCo.SetOrdering|NCo.SetOrdering</ref>, respectively, before using this function. The default coefficient field is <tt>Q</tt>, and the default ordering is the length-lexicographic ordering ("LLEX"). For more information, please check the relevant functions.<br />
<itemize><br />
<item>@param <em>F1, F2:</em> two polynomials in <tt>K&lt;X&gt;</tt>, which are left and right operands of subtraction respectively. Each polynomial is represented as a LIST of monomials, which are LISTs 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><br />
<item>@return: a LIST, which represents the polynomial equal to <tt>F1-F2</tt>.</item><br />
</itemize><br />
<example><br />
NCo.SetX("abc"); <br />
NCo.SetOrdering("ELIM"); <br />
F1 := [[1,"a"],[1,""]]; <br />
F2 := [[0,"b"],[1,"ba"]]; <br />
NCo.Subtract(F1,F2); -- over Q (default field)<br />
[[-1, "ba"], [1, "a"], [1, ""]]<br />
-------------------------------<br />
NCo.RingEnv();<br />
Coefficient ring : Q<br />
Alphabet : abc<br />
Ordering : ELIM<br />
-------------------------------<br />
NCo.SetFp(); -- set default Fp = F2<br />
NCo.RingEnv();<br />
Coefficient ring : Fp = Z/(2)<br />
Alphabet : abc<br />
Ordering : ELIM<br />
-------------------------------<br />
NCo.Subtract(F1,F2); -- over F2<br />
[[1, "ba"], [1, "a"], [1, ""]]<br />
-------------------------------<br />
NCo.Subtract(F1,F1);<br />
[ ]<br />
-------------------------------<br />
</example><br />
</description><br />
<seealso><br />
<see>ApCoCoA-1:NCo.SetFp|NCo.SetFp</see><br />
<see>ApCoCoA-1:NCo.SetOrdering|NCo.SetOrdering</see><br />
<see>ApCoCoA-1:NCo.SetX|NCo.SetX</see><br />
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see></seealso><br />
<types><br />
<type>apcocoaserver</type><br />
<type>polynomial</type><br />
<type>non_commutative</type><br />
</types><br />
<key>gbmr.Subtract</key><br />
<key>NCo.Subtract</key><br />
<key>Subtract</key><br />
<wiki-category>ApCoCoA-1:Package_gbmr</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:NCo.SetX&diff=16157ApCoCoA-1:NCo.SetX2020-10-29T13:45:07Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div>{{Version|1}}<br />
<command><br />
<title>NCo.SetX</title><br />
<short_description><br />
Set alphabet (set of indeterminates) for a free monoid ring.<br />
</short_description><br />
<syntax><br />
NCo.SetX(X:STRING)<br />
</syntax><br />
<description><br />
<itemize><br />
<item>@param <em>X</em>: a STRING which is the alphabet (set of indeterminates) of a free monoid ring. Every letter in <tt>X</tt> must have a unique occurrence. The order of letters in X is important since it will induce word orderings. For example, <br />
NCo.SetX("xyz"); <br />
NCo.SetOrdering("LLEX"); <br />
defines the length-lexicographic ordering induced by x&gt;y&gt;z.</item><br />
</itemize><br />
<example><br />
NCo.RingEnv();<br />
Coefficient ring : Q<br />
Ordering : LLEX<br />
-------------------------------<br />
NCo.SetX("xyz");<br />
NCo.RingEnv();<br />
Coefficient ring : Q<br />
Alphabet : xyz<br />
Ordering : LLEX<br />
-------------------------------<br />
</example><br />
</description><br />
<seealso><br />
<see>ApCoCoA-1:NCo.SetOrdering|NCo.SetOrdering</see><br />
</seealso><br />
<types><br />
<type>non_commutative</type><br />
</types><br />
<key>gbmr.SetX</key><br />
<key>NCo.SetX</key><br />
<key>SetX</key><br />
<wiki-category>ApCoCoA-1:Package_gbmr</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:NCo.SetRelations&diff=16156ApCoCoA-1:NCo.SetRelations2020-10-29T13:44:57Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div>{{Version|1}}<br />
<command><br />
<title>NCo.SetRelations</title><br />
<short_description><br />
Set relations for a finitely presented monoid ring.<br />
</short_description><br />
<syntax><br />
NCo.SetRelations(R:LIST)<br />
</syntax><br />
<description><br />
Before calling the function, please set ring environment alphabet (or set of indeterminates) <tt>X</tt> through the functions <ref>ApCoCoA-1:NCo.SetX|NCo.SetX</ref>. For more information, please check the relevant functions.<br />
<itemize><br />
<item>@param <em>R:</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><br />
</itemize><br />
<example><br />
NCo.RingEnv();<br />
Coefficient ring : Q<br />
Ordering : LLEX<br />
-------------------------------<br />
NCo.SetX("abc");<br />
R:=[["ba","ab"], ["ca","ac"], ["cb","bc"]]; --ba=ab, ca=ac, cb=bc<br />
NCo.SetRelations(R);<br />
NCo.RingEnv();<br />
Coefficient ring : Q<br />
Alphabet : abc<br />
Ordering : LLEX<br />
Relations : [["ba", "ab"], ["ca", "ac"], ["cb", "bc"]] -- relations generated by {ba=ab, ca=ac, cb=bc}<br />
-------------------------------<br />
</example><br />
</description><br />
<seealso><br />
<see>ApCoCoA-1:NCo.SetX|NCo.SetX</see><br />
<see>ApCoCoA-1:NCo.UnsetRelations|NCo.UnsetRelations</see><br />
</seealso><br />
<types><br />
<type>non_commutative</type><br />
</types><br />
<key>gbmr.SetRelations</key><br />
<key>NCo.SetRelations</key><br />
<key>SetRelations</key><br />
<wiki-category>ApCoCoA-1:Package_gbmr</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:NCo.SetOrdering&diff=16155ApCoCoA-1:NCo.SetOrdering2020-10-29T13:44:47Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div>{{Version|1}}<br />
<command><br />
<title>NCo.SetOrdering</title><br />
<short_description><br />
Set a word ordering on <tt>&lt;X&gt;</tt>.<br />
</short_description><br />
<syntax><br />
NCo.SetOrdering(Ordering:STRING)<br />
</syntax><br />
<description><br />
Note that a <em>word ordering</em> is a well-ordering which is compatible with multiplication. The default ordering is "LLEX" (the length-lexicographic ordering).<br />
<br />
Let <tt>X={x_{1}x_{2}...x_{n}}</tt>. We define the non-commutative (left-to-right) lexicographic ordering "LEX" on <tt>&lt;X&gt;</tt> as follows. For two words <tt>W1, W2</tt> in <tt>&lt;X&gt;</tt>, we say <tt>W1&gt;_{Lex}W2</tt> if we have <tt>W1=W2*W</tt> for some non-empty word <tt>W</tt> in <tt>&lt;X&gt;</tt>, or if we have <tt>W1=W*x_{i}*W3, W2=W*x_{j}*W4</tt> for some words <tt>W,W3,W4</tt> in <tt>&lt;X&gt;</tt> and some letters <tt>x_{i},x_{j}</tt> in <tt>X</tt> such that <tt>i&lt;j</tt>. Thus, we have <tt>x_{1}&gt;_{LEX}x_{2}&gt;_{LEX}...&gt;_{LEX}x_{n}</tt>. Note that "LEX" is not a word ordering on <tt>&lt;X&gt;</tt>. We define word orderings "LLEX", "ELIM" and "LRLEX" on <tt>&lt;X&gt;</tt> as follows.<br />
<itemize><br />
<item>"LLEX": for two words <tt>W1, W2</tt> in <tt>&lt;X&gt;</tt>, we say <tt>W1&gt;_{LLEX}W2</tt> if <tt>len(W1)&gt;len(W2)</tt>, or <tt>len(W1)=len(W2)</tt> and <tt>W1</tt> is lexicographically larger than <tt>W2</tt>.</item><br />
<br />
<item>"ELIM": it first compares the associated commutative terms lexicographically and then breaks ties using the non-commutative lexicographic ordering with respect to <tt>x_{1}&gt;_{LEX}...&gt;_{LEX}x_{n}</tt>. That is, for two words <tt>W1, W2</tt> in <tt>&lt;X&gt;</tt>, we say <tt>W1&gt;_{ELIM}W2</tt> if <tt>W1</tt> is lexicographically larger than <tt>W2</tt> by considering them as two terms in the commutative case, or <tt>W1=W2</tt> by considering them as two terms in the commutative case and <tt>W1&gt;_{Lex}W2</tt> where "LEX" is the non-commutative left-to-right lexicographic ordering. Thus, the elimination ordering "ELIM" first eliminates the letter <tt>x_{1}</tt>, and then <tt>x_{2}</tt>, and then <tt>x_{3}</tt>, and so on and so forth.</item><br />
<br />
<item>"LRLEX": we say <tt>W&gt;_{LRLEX}W'</tt> if <tt>len(W)&gt;len(W')</tt>, or <tt>len(W)=len(W')</tt> and <tt>W</tt> is larger than <tt>W'</tt> by the non-commutative right-to-left lexicographic ordering.</item><br />
</itemize><br />
A word ordering on is said to be <em>length compatible</em> if <tt>len(W1)>len(W2)</tt> implies <tt>W1</tt> is larger than <tt>W2</tt> for all <tt>W1, W2</tt> in <tt>&lt;X&gt;</tt>. For instance, "LLEX" and "LRLEX" are length compatible while "ELIM" is not.<br />
<par/><br />
Note that each word ordering is induced by the order of letters in X (see <ref>ApCoCoA-1:NCo.SetX|NCo.SetX</ref>). For instance, <br />
NCo.SetX("abcdef");<br />
NCo.SetOrdering("ELIM");<br />
defines an elimination ordering induced by a&gt;b&gt;b&gt;d&gt;e&gt;f.<br />
<itemize><br />
<item>@param <em>Ordering</em>: a STRING, which indicates a word ordering. For the time being, the package supports "LLEX" (the length-lexicographic ordering), "ELIM" (an elimination ordering), and "LRLEX" (the length-reverse-lexicographic ordering).</item><br />
</itemize><br />
<example><br />
NCo.RingEnv();<br />
Coefficient ring : Q<br />
Ordering : LLEX<br />
-------------------------------<br />
NCo.SetOrdering("ELIM");<br />
NCo.RingEnv();<br />
Coefficient ring : Q<br />
Ordering : ELIM<br />
-------------------------------<br />
</example><br />
</description><br />
<seealso><br />
<see>ApCoCoA-1:NCo.SetX|NCo.SetX</see><br />
</seealso><br />
<types><br />
<type>non_commutative</type><br />
</types><br />
<key>gbmr.SetOrdering</key><br />
<key>NCo.SetOrdering</key><br />
<key>SetOrdering</key><br />
<wiki-category>ApCoCoA-1:Package_gbmr</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:NCo.ReducedGB&diff=16154ApCoCoA-1:NCo.ReducedGB2020-10-29T13:44:37Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div>{{Version|1}}<br />
<command><br />
<title>NCo.ReducedGB</title><br />
<short_description><br />
Enumerate a reduced (partial) Groebner basis of a finitely generated two-sided ideal in a free monoid ring. <br />
</short_description><br />
<syntax><br />
NCo.ReducedGB(G:LIST[, DB:INT, LB:INT, OFlag:INT]):LIST<br />
</syntax><br />
<description><br />
Given a two-sided ideal <tt>I</tt> and a word ordering <tt>Ordering</tt>, a set of non-zero polynomials <tt>G</tt> is called a <em>Groebner basis</em> of <tt>I</tt> with respect to <tt>Ordering</tt> if the leading word set <tt>LW{G}</tt> generates the leading word ideal <tt>LW(I)</tt>. A Groebner basis <tt>G</tt> is called a <em> reduced Groebner basis</em> if <tt>G</tt> is interreduced (see <ref>ApCoCoA-1:NCo.Interreduction|NCo.Interreduction</ref>) and all polynomials in <tt>G</tt> are monic. Note that each ideal has a unique reduced Groebner basis. However, it is not necessarily finite.<br />
<par/><br />
<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.<br />
<par/><br />
Please set ring environment <em>coefficient field</em> <tt> K</tt>, <em>alphabet</em> (or set of indeterminates) <tt>X</tt> and <em>ordering</em> via the functions <ref>ApCoCoA-1:NCo.SetFp|NCo.SetFp</ref>, <ref>ApCoCoA-1:NCo.SetX|NCo.SetX</ref> and <ref>ApCoCoA-1:NCo.SetOrdering|NCo.SetOrdering</ref>, respectively, before using this function. The default coefficient field is <tt>Q</tt>, and the default ordering is the length-lexicographic ordering ("LLEX"). For more information, please check the relevant functions.<br />
<itemize><br />
<item>@param <em>G</em>: a LIST of non-zero polynomials generating a two-sided ideal in <tt>K&lt;X&gt;</tt>. Each polynomial is represented as a LIST of monomials, which are LISTs 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,""]].</item><br />
<br />
<item>@return: a LIST of polynomials, which is a reduced Groebner basis with respect to the current word ordering if there exists a finite Groebner basis and the enumerating procedure doesn't terminate due to reaching the degree bound <tt>DB</tt> or the loop bound LB, and is a reduced partial Groebner basis otherwise.</item><br />
</itemize><br />
About 3 optional parameters: for most cases we do not know whether or not there exists a finite Groebner basis beforehand. Thus, the function offers 3 optional parameters for the enumerating procedure. Note that at the moment <em>all</em> of the following 3 optional parameters must be used at the same time.<br />
<itemize><br />
<item>@param <em>DB:</em> a positive INT, which gives a degree bound of S-polynomials (or obstructions) during the enumerating procedure. When the degree bound is reached, the procedure will be interrupted and return a partial Groebner basis.</item><br />
<br />
<item>@param <em>LB:</em> a positive INT, which gives a loop bound of enumerating steps. When the LB-th enumerating step finishes, the procedure will be interrupted and return a partial Groebner basis.</item><br />
<br />
<item>@param <em>OFlag:</em> a non-negative INT, which is a multi-switch for the output of the ApCoCoAServer. If OFlag=0, the server displaces nothing on the screen. If OFlag=1, the server prints basic information on the enumerating procedure, such as the number of enumerating steps has been proceeded, the number of elements in partial Groebner basis, the number of unselected obstructions; the total number of obstructions, the number of selected obstructions, and the number of unnecessary obstructions. If OFlag=2, besides the information as OFlag=1, the server also displays explicitly the elements in partial Groebner basis and the current selected S-polynonial. Note that the initial idea of using OFlag is to trace and debug the enumerating procedure.</item><br />
</itemize><br />
<example><br />
NCo.SetX("xyzt"); <br />
F1 := [[1,"xx"], [-1,"yx"]];<br />
F2 := [[1,"xy"], [-1,"ty"]];<br />
F3 := [[1,"xt"], [-1, "tx"]];<br />
F4 := [[1,"yt"], [-1, "ty"]];<br />
G := [F1, F2,F3,F4]; <br />
NCo.ReducedGB(G); -- over Q (default field), LLEX ordering (default ordering)<br />
[[[1, "yt"], [-1, "ty"]], [[1, "xt"], [-1, "tx"]], [[1, "xy"], [-1, "ty"]], [[1, "xx"], [-1, "yx"]], <br />
[[1, "tyy"], [-1, "tty"]], [[1, "yyx"], [-1, "tyx"]]]<br />
-------------------------------<br />
NCo.SetFp(); -- set default Fp=F2<br />
NCo.ReducedGB(G); -- over F2, LLEX ordering<br />
[[[1, "yt"], [1, "ty"]], [[1, "xt"], [1, "tx"]], [[1, "xy"], [1, "ty"]], [[1, "xx"], [1, "yx"]], <br />
[[1, "tyy"], [1, "tty"]], [[1, "yyx"], [1, "tyx"]]]<br />
-------------------------------<br />
NCo.SetFp(3);<br />
NCo.ReducedGB(G); -- over F3, LLEX ordering<br />
[[[1, "yt"], [2, "ty"]], [[1, "xt"], [2, "tx"]], [[1, "xy"], [2, "ty"]], [[1, "xx"], [2, "yx"]], <br />
[[1, "tyy"], [2, "tty"]], [[1, "yyx"], [2, "tyx"]]]<br />
-------------------------------<br />
NCo.SetX("xyzt"); <br />
F1 := [[1,"xx"], [-1,"yx"]]; <br />
F2 := [[1,"xy"], [-1,"ty"]]; <br />
F3 := [[1,"xt"], [-1, "tx"]]; <br />
F4 := [[1,"yt"], [-1, "ty"]]; <br />
F:= [F1, F2,F3,F4]; <br />
G1:=NCo.ReducedGB(F);<br />
G1;<br />
NCo.IsGB(G1); -- G1 is a reduced Groebner basis<br />
Fa:=[[1,"ytx"],[-1,""]]; <br />
Append(G1,Fa); -- add one element to G1<br />
G1;<br />
NCo.IsGB(G1); -- G1 is not a Groebner basis any longer<br />
G2:=NCo.ReducedGB(G1); -- compute reduced Groebner basis G2 generated by G1<br />
G2;<br />
G3:=NCo.ReducedGB(G2); -- compute reduced Groebner basis G3 generated by G2<br />
G3;<br />
NCo.IsGB(G3);<br />
[[[1, "yt"], [-1, "ty"]], [[1, "xt"], [-1, "tx"]], [[1, "xy"], [-1, "ty"]], [[1, "xx"], [-1, "yx"]], [[1, "tyy"], [-1, "tty"]], [[1, "yyx"], [-1, "tyx"]]]<br />
-------------------------------<br />
True<br />
-------------------------------<br />
[[[1, "yt"], [-1, "ty"]], [[1, "xt"], [-1, "tx"]], [[1, "xy"], [-1, "ty"]], [[1, "xx"], [-1, "yx"]], [[1, "tyy"], [-1, "tty"]], [[1, "yyx"], [-1, "tyx"]], [[1, "ytx"], [-1, ""]]]<br />
-------------------------------<br />
False<br />
-------------------------------<br />
[[[1, "x"], [-1, "t"]], [[1, "ttt"], [-1, ""]], [[1, "y"], [-1, "t"]]]<br />
-------------------------------<br />
[[[1, "y"], [-1, "t"]], [[1, "x"], [-1, "t"]], [[1, "ttt"], [-1, ""]]]<br />
-------------------------------<br />
True<br />
-------------------------------<br />
</example><br />
</description><br />
<seealso><br />
<see>ApCoCoA-1:NCo.GB|NCo.GB</see><br />
<see>ApCoCoA-1:NCo.Interreduction|NCo.Interreduction</see><br />
<see>ApCoCoA-1:NCo.IsGB|NCo.IsGB</see><br />
<see>ApCoCoA-1:NCo.LW|NCo.LW</see><br />
<see>ApCoCoA-1:NCo.SetFp|NCo.SetFp</see><br />
<see>ApCoCoA-1:NCo.SetOrdering|NCo.SetOrdering</see><br />
<see>ApCoCoA-1:NCo.SetX|NCo.SetX</see><br />
<see>ApCoCoA-1:NCo.TruncatedGB|NCo.TruncatedGB</see><br />
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see><br />
</seealso><br />
<types><br />
<type>apcocoaserver</type><br />
<type>ideal</type><br />
<type>groebner</type><br />
<type>non_commutative</type><br />
</types><br />
<key>gbmr.ReducedGB</key><br />
<key>NCo.ReducedGB</key><br />
<key>ReducedGB</key><br />
<wiki-category>ApCoCoA-1:Package_gbmr</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:NCo.PrefixSaturation&diff=16153ApCoCoA-1:NCo.PrefixSaturation2020-10-29T13:44:27Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div>{{Version|1}}<br />
<command><br />
<title>NCo.PrefixSaturation</title><br />
<short_description><br />
Compute a prefix saturation of a polynomial in a finitely presented monoid ring.<br />
</short_description><br />
<syntax><br />
NCo.PrefixSaturation(F:LIST[, LB:INT, OFlag:INT]):LIST<br />
</syntax><br />
<description><br />
<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.<br />
<par/><br />
Please set ring environment coefficient field <tt> K</tt>, alphabet (or set of indeterminates) <tt>X</tt>, rewrite relations <tt>Relations</tt> and word ordering <tt>Ordering</tt> through the functions <ref>ApCoCoA-1:NCo.SetFp|NCo.SetFp</ref>, <ref>ApCoCoA-1:NCo.SetX|NCo.SetX</ref>, <ref>ApCoCoA-1:NCo.SetRelations|NCo.SetRelations</ref> and <ref>ApCoCoA-1:NCo.SetOrdering|NCo.SetOrdering</ref>, respectively, before using this function. The default coefficient field is the field of rational numbers, i.e. RAT in CoCoAL, and the default ordering is the length-lexicographic ordering "LLEX". For more information, please check the relevant functions.<br />
<itemize><br />
<item>@param <em>F:</em> a LIST represents a polynomial in the monoid ring. Each polynomial is represented as a LIST of LISTs, i.e. as <tt>[[C1,W1],...,[Cs,Ws]]</tt> where, for each i, Wi is a term represented as a STRING and Ci is the coefficient of Wi. For example, 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><br />
<br />
<item>@return: a LIST of polynomials, which is a prefix saturation of F. <em>Warn</em> that the procedure might not terminate!</item><br />
</itemize><br />
About 2 optional parameters: in general, we can not know whether a polynomial in a monoid ring has a finite saturation or not. The function offers 2 optional parameters for controlling computing precess. Note that at the moment <em>all</em> of the following 2 additional optional parameters must be used at the same time.<br />
<itemize><br />
<item>@param <em>LB:</em> a positive INT, which gives a bound for the main loop in saturation computation. When it runs through the main loop LB times, the function stops and returns a set of polynomials.</item><br />
<br />
<item>@param <em>OFlag:</em> a non-negative INT, which is a switch for the output of ApCoCoAServer. If OFlag=0, the server prints nothing on the screen. If OFlag=1, the server prints basic information about computing procedure. Note that the initial idea of OFlag is to use it as a tool for debugging and tracing the computing process.</item><br />
</itemize><br />
<example><br />
NCo.SetX("abc");<br />
NCo.SetOrdering("LLEX");<br />
NCo.SetRelations([["aa",""], ["bb",""], ["ab","c"], ["ac", "b"], ["cb", "a"]]);<br />
F := [[1,"a"],[1,"b"],[1,"c"]];<br />
NCo.PrefixSaturation(F);<br />
<br />
[[[1, "a"], [1, "c"], [1, ""]], [[1, "a"], [1, "b"], [1, "c"]], [[1, "cc"], [1, "b"], [1, "c"]], <br />
[[1, "ca"], [1, "a"], [1, ""]], [[1, "bc"], [1, "cc"], [1, "b"]], [[1, "ba"], [1, "ca"], [1, ""]]]<br />
-------------------------------<br />
</example><br />
</description><br />
<seealso><br />
<see>ApCoCoA-1:NCo.PrefixGB|NCo.PrefixGB</see><br />
<see>ApCoCoA-1:NCo.PrefixInterreduction|NCo.PrefixInterreduction</see><br />
<see>ApCoCoA-1:NCo.PrefixNR|NCo.PrefixNR</see><br />
<see>ApCoCoA-1:NCo.PrefixReducedGB|NCo.PrefixReducedGB</see><br />
<see>ApCoCoA-1:NCo.SetFp|NCo.SetFp</see><br />
<see>ApCoCoA-1:NCo.SetOrdering|NCo.SetOrdering</see><br />
<see>ApCoCoA-1:NCo.SetRelations|NCo.SetRelations</see><br />
<see>ApCoCoA-1:NCo.SetX|NCo.SetX</see><br />
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see><br />
</seealso><br />
<types><br />
<type>apcocoaserver</type><br />
<type>groebner</type><br />
<type>ideal</type><br />
<type>non_commutative</type><br />
</types><br />
<key>gbmr.PrefixSaturation</key><br />
<key>NCo.PrefixSaturation</key><br />
<key>PrefixSaturation</key><br />
<wiki-category>ApCoCoA-1:Package_gbmr</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:NCo.PrefixReducedGB&diff=16152ApCoCoA-1:NCo.PrefixReducedGB2020-10-29T13:44:17Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div>{{Version|1}}<br />
<command><br />
<title>NCo.PrefixReducedGB</title><br />
<short_description><br />
Compute a prefix reduced Groebner basis of a finitely generated right ideal in a finitely presented monoid ring.<br />
</short_description><br />
<syntax><br />
NCo.PrefixReducedGB(G:LIST):LIST<br />
</syntax><br />
<description><br />
Let <tt>P=K&lt;X|R&gt;</tt> be a finitely presented monoid ring, and let <tt>I</tt> be a right ideal of <tt>P</tt>. Given a word ordering <tt>Ordering</tt>, a set <tt>G</tt> of non-zero polynomials is called a <em>prefix Groebner basis</em> of <tt>I</tt> with respect to <tt>Ordering</tt> if, for each non-zero polynomial <tt>f</tt> in <tt>I</tt>, there exists a polynomial <tt>g</tt> such that the leading word of <tt>g</tt> is a prefix of the leading word of <tt>f</tt>. A prefix Groebner basis <tt>G</tt> is called a <em>prefix reduced Groebner basis</em> if <tt>G</tt> is interreduced (see <ref>ApCoCoA-1:NCo.PrefixInterreduction|NCo.PrefixInterreduction</ref>) and all polynomials in <tt>G</tt> are monic. Note that each ideal has a unique prefix reduced Groebner basis. However, it is not necessarily finite. Thus this function might not terminate.<br />
<par/><br />
<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.<br />
<par/><br />
Please set ring environment coefficient field <tt> K</tt>, alphabet (or set of indeterminates) <tt>X</tt>, rewrite relations <tt>Relations</tt> and word ordering <tt>Ordering</tt> through the functions <ref>ApCoCoA-1:NCo.SetFp|NCo.SetFp</ref>, <ref>ApCoCoA-1:NCo.SetX|NCo.SetX</ref>, <ref>ApCoCoA-1:NCo.SetRelations|NCo.SetRelations</ref> and <ref>ApCoCoA-1:NCo.SetOrdering|NCo.SetOrdering</ref>, respectively, before using this function. The default coefficient field is the field of rational numbers, i.e. RAT in CoCoAL, and the default ordering is the length-lexicographic ordering "LLEX". For more information, please check the relevant functions.<br />
<itemize><br />
<item>@param <em>G:</em> a LIST of non-zero polynomials generating a right ideal in the monoid ring. Each polynomial is represented as a LIST of LISTs, i.e. as <tt>[[C1,W1],...,[Cs,Ws]]</tt> where, for each i, Wi is a term represented as a STRING and Ci is the coefficient of Wi. For example, 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><br />
<br />
<item>@return: a LIST of polynomials, which is a prefix reduced Groebner basis of the right ideal generated by G.</item><br />
</itemize><br />
<example><br />
NCo.SetX("abc");<br />
NCo.SetOrdering("LLEX");<br />
NCo.SetRelations([["aa",""], ["bb",""], ["ab","c"], ["ac", "b"], ["cb", "a"]]);<br />
F := [[1,"a"],[1,"b"],[1,"c"]];<br />
NCo.PrefixReducedGB([F]);<br />
<br />
[[[1, "b"], [-1, ""]], [[1, "a"], [1, "c"], [1, ""]], [[1, "cc"], [1, "c"], [1, ""]], [[1, "ca"], [-1, "c"]]]<br />
--------------------------------<br />
</example><br />
</description><br />
<seealso><br />
<see>ApCoCoA-1:NCo.PrefixGB|NCo.PrefixGB</see><br />
<see>ApCoCoA-1:NCo.PrefixInterreduction|NCo.PrefixInterreduction</see><br />
<see>ApCoCoA-1:NCo.PrefixNR|NCo.PrefixNR</see><br />
<see>ApCoCoA-1:NCo.PrefixSaturation|NCo.PrefixSaturation</see><br />
<see>ApCoCoA-1:NCo.SetFp|NCo.SetFp</see><br />
<see>ApCoCoA-1:NCo.SetOrdering|NCo.SetOrdering</see><br />
<see>ApCoCoA-1:NCo.SetRelations|NCo.SetRelations</see><br />
<see>ApCoCoA-1:NCo.SetX|NCo.SetX</see><br />
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see><br />
</seealso><br />
<types><br />
<type>apcocoaserver</type><br />
<type>ideal</type><br />
<type>groebner</type><br />
<type>non_commutative</type><br />
</types><br />
<key>gbmr.PrefixReducedGB</key><br />
<key>NCo.PrefixReducedGB</key><br />
<key>PrefixReducedGB</key><br />
<wiki-category>ApCoCoA-1:Package_gbmr</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:NCo.PrefixNR&diff=16151ApCoCoA-1:NCo.PrefixNR2020-10-29T13:44:07Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div>{{Version|1}}<br />
<command><br />
<title>NCo.PrefixNR</title><br />
<short_description><br />
The prefix normal remainder of a polynomial with respect to a LIST of polynomials in a finitely presented monoid ring.<br />
</short_description><br />
<syntax><br />
NCo.PrefixNR(F:LIST, G:LIST):LIST<br />
</syntax><br />
<description><br />
<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.<br />
<par/><br />
Please set ring environment coefficient field <tt> K</tt>, alphabet (or set of indeterminates) <tt>X</tt>, rewrite relations <tt>Relations</tt> and word ordering <tt>Ordering</tt> through the functions <ref>ApCoCoA-1:NCo.SetFp|NCo.SetFp</ref>, <ref>ApCoCoA-1:NCo.SetX|NCo.SetX</ref>, <ref>ApCoCoA-1:NCo.SetRelations|NCo.SetRelations</ref> and <ref>ApCoCoA-1:NCo.SetOrdering|NCo.SetOrdering</ref>, respectively, before using this function. The default coefficient field is the field of rational numbers, i.e. RAT in CoCoAL, and the default ordering is the length-lexicographic ordering "LLEX". For more information, please check the relevant functions.<br />
<itemize><br />
<item>@param <em>F:</em> a LIST which represents a polynomial in the monoid ring. Each polynomial is represented as a LIST of LISTs, i.e. as <tt>[[C1,W1],...,[Cs,Ws]]</tt> where, for each i, Wi is a term represented as a STRING and Ci is the coefficient of Wi. For example, 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><br />
<br />
<item>@param <em>G</em>: a LIST of polynomials.</item><br />
<br />
<item>@return: a LIST which represents the prefix normal remainder of F with respect to G.</item><br />
</itemize><br />
<example><br />
NCo.SetX("abc");<br />
NCo.SetOrdering("LLEX");<br />
NCo.SetRelations([["aa",""], ["bb",""], ["ab","c"], ["ac", "b"], ["cb", "a"]]);<br />
F := [[1,"ba"]];<br />
G:=[[[1,"b"],[1,""]], [[1,"c"]]];<br />
NCo.PrefixNR(F, G);<br />
<br />
[[1, "a"]]<br />
-------------------------------<br />
</example><br />
</description><br />
<seealso><br />
<see>ApCoCoA-1:NCo.PrefixGB|NCo.PrefixGB</see><br />
<see>ApCoCoA-1:NCo.PrefixInterreduction|NCo.PrefixInterreduction</see><br />
<see>ApCoCoA-1:NCo.PrefixReducedGB|NCo.PrefixReducedGB</see><br />
<see>ApCoCoA-1:NCo.PrefixSaturation|NCo.PrefixSaturation</see><br />
<see>ApCoCoA-1:NCo.SetFp|NCo.SetFp</see><br />
<see>ApCoCoA-1:NCo.SetOrdering|NCo.SetOrdering</see><br />
<see>ApCoCoA-1:NCo.SetRelations|NCo.SetRelations</see><br />
<see>ApCoCoA-1:NCo.SetX|NCo.SetX</see><br />
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see><br />
</seealso><br />
<types><br />
<type>apcocoaserver</type><br />
<type>polynomial</type><br />
<type>non_commutative</type><br />
</types><br />
<key>gbmr.PrefixNR</key><br />
<key>NCo.PrefixNR</key><br />
<key>PrefixNR</key><br />
<wiki-category>ApCoCoA-1:Package_gbmr</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:NCo.PrefixInterreduction&diff=16150ApCoCoA-1:NCo.PrefixInterreduction2020-10-29T13:43:57Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div>{{Version|1}}<br />
<command><br />
<title>NCo.PrefixInterreduction</title><br />
<short_description><br />
Prefix interreduction of a LIST of polynomials in a finitely presented monoid ring.<br />
</short_description><br />
<syntax><br />
NCo.PrefixInterreduction(G:LIST):LIST<br />
</syntax><br />
<description><br />
Let <tt>P=K&lt;X|R&gt;</tt> be a finitely presented monoid ring. A subset set <tt>G</tt> of non-zero polynomials in <tt>P</tt> is said to be <em>prefix interreduced</em> if no element of Supp(g) is a multiply of the leading word of any element in <tt>R</tt>, and if no element of Supp(g) contains the leading word of any elements in <tt>{G\{g}}</tt> as a prefix.<br />
<par/><br />
<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.<br />
<par/><br />
Please set ring environment coefficient field <tt> K</tt>, alphabet (or set of indeterminates) <tt>X</tt>, rewrite relations <tt>Relations</tt> and word ordering <tt>Ordering</tt> through the functions <ref>ApCoCoA-1:NCo.SetFp|NCo.SetFp</ref>, <ref>ApCoCoA-1:NCo.SetX|NCo.SetX</ref>, <ref>ApCoCoA-1:NCo.SetRelations|NCo.SetRelations</ref> and <ref>ApCoCoA-1:NCo.SetOrdering|NCo.SetOrdering</ref>, respectively, before using this function. The default coefficient field is the field of rational numbers, i.e. RAT in CoCoAL, and the default ordering is the length-lexicographic ordering "LLEX". For more information, please check the relevant functions.<br />
<itemize><br />
<item>@param <em>G:</em> a LIST of non-zero polynomials in the monoid ring. Each polynomial is represented as a LIST of LISTs, i.e. as <tt>[[C1,W1],...,[Cs,Ws]]</tt> where, for each i, Wi is a term represented as a STRING and Ci is the coefficient of Wi. For example, 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><br />
<br />
<item>@return: a LIST of prefix interreduced polynomials.</item><br />
</itemize><br />
<example><br />
NCo.SetX("abc");<br />
NCo.SetOrdering("LLEX");<br />
NCo.SetRelations([["aa",""], ["bb",""], ["ab","c"], ["ac", "b"], ["cb", "a"]]);<br />
G:=[[[1,"b"],[1,""]], [[1,"c"]],[[1,"ba"]]];<br />
NCo.PrefixInterreduction(G);<br />
<br />
[[[1, "b"], [1, ""]], [[1, "c"]], [[1, "a"]]]<br />
-------------------------------<br />
</example><br />
</description><br />
<seealso><br />
<see>ApCoCoA-1:NCo.PrefixGB|NCo.PrefixGB</see><br />
<see>ApCoCoA-1:NCo.PrefixNR|NCo.PrefixNR</see><br />
<see>ApCoCoA-1:NCo.PrefixReducedGB|NCo.PrefixReducedGB</see><br />
<see>ApCoCoA-1:NCo.PrefixSaturation|NCo.PrefixSaturation</see><br />
<see>ApCoCoA-1:NCo.SetFp|NCo.SetFp</see><br />
<see>ApCoCoA-1:NCo.SetOrdering|NCo.SetOrdering</see><br />
<see>ApCoCoA-1:NCo.SetRelations|NCo.SetRelations</see><br />
<see>ApCoCoA-1:NCo.SetX|NCo.SetX</see><br />
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see><br />
</seealso><br />
<types><br />
<type>apcocoaserver</type><br />
<type>polynomial</type><br />
<type>non_commutative</type><br />
</types><br />
<key>gbmr.PrefixInterreduction</key><br />
<key>NCo.PrefixInterreduction</key><br />
<key>PrefixInterreduction</key><br />
<wiki-category>ApCoCoA-1:Package_gbmr</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:NCo.PrefixGB&diff=16149ApCoCoA-1:NCo.PrefixGB2020-10-29T13:43:47Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div>{{Version|1}}<br />
<command><br />
<title>NCo.PrefixGB</title><br />
<short_description><br />
Compute a prefix Groebner basis of a finitely generated right ideal in a finitely presented monoid ring.<br />
</short_description><br />
<syntax><br />
NCo.PrefixGB(G:LIST):LIST<br />
</syntax><br />
<description><br />
Let <tt>P=K&lt;X|R&gt;</tt> be a finitely presented monoid ring, and let <tt>I</tt> be a right ideal of <tt>P</tt>. Given a word ordering <tt>Ordering</tt>, a set <tt>G</tt> of non-zero polynomials is called a <em>prefix Groebner basis</em> of <tt>I</tt> with respect to <tt>Ordering</tt> if, for each non-zero polynomial <tt>f</tt> in <tt>I</tt>, there exists a polynomial <tt>g</tt> such that the leading word of <tt>g</tt> is a prefix of the leading word of <tt>f</tt>. Note that a right ideal in a finitely generated monoid may not have finite prefix Groebner bases. Thus, this function might not terminate.<br />
<par/><br />
<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.<br />
<par/><br />
Please set ring environment coefficient field <tt> K</tt>, alphabet (or set of indeterminates) <tt>X</tt>, rewrite relations <tt>Relations</tt> and word ordering <tt>Ordering</tt> through the functions <ref>ApCoCoA-1:NCo.SetFp|NCo.SetFp</ref>, <ref>ApCoCoA-1:NCo.SetX|NCo.SetX</ref>, <ref>ApCoCoA-1:NCo.SetRelations|NCo.SetRelations</ref> and <ref>ApCoCoA-1:NCo.SetOrdering|NCo.SetOrdering</ref>, respectively, before using this function. The default coefficient field is the field of rational numbers, i.e. RAT in CoCoAL, and the default ordering is the length-lexicographic ordering "LLEX". For more information, please check the relevant functions.<br />
<itemize><br />
<item>@param <em>G:</em> a LIST of non-zero polynomials generating a right ideal in the monoid ring. Each polynomial is represented as a LIST of LISTs, i.e. as <tt>[[C1,W1],...,[Cs,Ws]]</tt> where, for each i, Wi is a term represented as a STRING and Ci is the coefficient of Wi. For example, 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><br />
<br />
<item>@return: a LIST of polynomials, which is a prefix Groebner basis of the right ideal generated by G.</item><br />
</itemize><br />
<example><br />
NCo.SetX("abc");<br />
NCo.SetOrdering("LLEX");<br />
NCo.SetRelations([["aa",""], ["bb",""], ["ab","c"], ["ac", "b"], ["cb", "a"]]);<br />
F := [[1,"a"],[1,"b"],[1,"c"]];<br />
NCo.PrefixGB([F]);<br />
<br />
[[[1, "b"], [-1, ""]], [[1, "a"], [1, "c"], [1, ""]], [[1, "a"], [1, "b"], [1, "c"]], <br />
[[1, "cc"], [1, "b"], [1, "c"]], [[1, "ca"], [1, "a"], [1, ""]], [[1, "bc"], [1, "cc"], [1, "b"]], <br />
[[1, "ba"], [1, "ca"], [1, ""]]]<br />
-------------------------------<br />
</example><br />
</description><br />
<seealso><br />
<see>ApCoCoA-1:NCo.PrefixInterreduction|NCo.PrefixInterreduction</see><br />
<see>ApCoCoA-1:NCo.PrefixNR|NCo.PrefixNR</see><br />
<see>ApCoCoA-1:NCo.PrefixReducedGB|NCo.PrefixReducedGB</see><br />
<see>ApCoCoA-1:NCo.PrefixSaturation|NCo.PrefixSaturation</see><br />
<see>ApCoCoA-1:NCo.SetFp|NCo.SetFp</see><br />
<see>ApCoCoA-1:NCo.SetOrdering|NCo.SetOrdering</see><br />
<see>ApCoCoA-1:NCo.SetRelations|NCo.SetRelations</see><br />
<see>ApCoCoA-1:NCo.SetX|NCo.SetX</see><br />
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see><br />
</seealso><br />
<types><br />
<type>apcocoaserver</type><br />
<type>ideal</type><br />
<type>groebner</type><br />
<type>non_commutative</type><br />
</types><br />
<key>gbmr.PrefixGB</key><br />
<key>NCo.PrefixGB</key><br />
<key>PrefixGB</key><br />
<wiki-category>ApCoCoA-1:Package_gbmr</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:NCo.NR&diff=16148ApCoCoA-1:NCo.NR2020-10-29T13:43:37Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div>{{Version|1}}<br />
<command><br />
<title>NCo.NR</title><br />
<short_description><br />
The normal remainder of a polynomial with respect to a LIST of polynomials in a free monoid ring.<br />
</short_description><br />
<syntax><br />
NCo.NR(F:LIST, G:LIST):LIST<br />
</syntax><br />
<description><br />
<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.<br />
<par/><br />
Please set ring environment <em>coefficient field</em> <tt> K</tt>, <em>alphabet</em> (or set of indeterminates) <tt>X</tt> and <em>ordering</em> via the functions <ref>ApCoCoA-1:NCo.SetFp|NCo.SetFp</ref>, <ref>ApCoCoA-1:NCo.SetX|NCo.SetX</ref> and <ref>ApCoCoA-1:NCo.SetOrdering|NCo.SetOrdering</ref>, respectively, before using this function. The default coefficient field is <tt>Q</tt>, and the default ordering is the length-lexicographic ordering ("LLEX"). For more information, please check the relevant functions.<br />
<itemize><br />
<item></item><br />
<item>@param <em>F</em>: a polynomial in <tt>K&lt;X&gt;</tt>. Each polynomial is represented as a LIST of monomials, which are LISTs 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><br />
<item>@param <em>G</em>: a LIST of non-zero polynomials in <tt>K&lt;X&gt;</tt>.</item><br />
<item>@return: a LIST which represents the normal remainder of <tt>F</tt> with respect to <tt>G</tt>.</item><br />
</itemize><br />
<example><br />
NCo.SetX("abc");<br />
NCo.RingEnv();<br />
Coefficient ring : Q<br />
Alphabet : abc<br />
Ordering : LLEX<br />
-------------------------------<br />
F:=[[1,"ab"],[1,"aca"],[1,"bb"],[1,"bab"],[1,""]];<br />
F1 := [[1,"a"],[1,"c"]]; <br />
F2 := [[1,"b"],[1,"ba"]];<br />
G:=[F1,F2];<br />
NCo.NR(F,G);<br />
[[-1,"bcb"], [1,"ccc"], [1,"bb"], [-1,"cb"], [1,""]]<br />
-------------------------------<br />
NCo.SetOrdering("ELIM");<br />
NCo.NR(F,G);<br />
[[-1,"bcb"], [1,"bb"], [-1,"cb"], [1,"ccc"], [1,""]]<br />
-------------------------------<br />
</example><br />
</description><br />
<seealso><br />
<see>ApCoCoA-1:NCo.SetFp|NCo.SetFp</see><br />
<see>ApCoCoA-1:NCo.SetOrdering|NCo.SetOrdering</see><br />
<see>ApCoCoA-1:NCo.SetX|NCo.SetX</see><br />
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see><br />
</seealso><br />
<types><br />
<type>apcocoaserver</type><br />
<type>polynomial</type><br />
<type>non_commutative</type><br />
</types><br />
<key>gbmr.NR</key><br />
<key>NCo.NR</key><br />
<key>NR</key><br />
<wiki-category>ApCoCoA-1:Package_gbmr</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:NCo.Multiply&diff=16147ApCoCoA-1:NCo.Multiply2020-10-29T13:43:27Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div>{{Version|1}}<br />
<command><br />
<title>NCo.Multiply</title><br />
<short_description><br />
Multiplication of two polynomials in a free monoid ring.<br />
</short_description><br />
<syntax><br />
NCo.Multiply(F1:LIST, F2:LIST):LIST<br />
</syntax><br />
<description><br />
<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.<br />
<par/><br />
Please set ring environment <em>coefficient field</em> <tt> K</tt>, <em>alphabet</em> (or set of indeterminates) <tt>X</tt> and <em>ordering</em> via the functions <ref>ApCoCoA-1:NCo.SetFp|NCo.SetFp</ref>, <ref>ApCoCoA-1:NCo.SetX|NCo.SetX</ref> and <ref>ApCoCoA-1:NCo.SetOrdering|NCo.SetOrdering</ref>, respectively, before using this function. The default coefficient field is <tt>Q</tt>, and the default ordering is the length-lexicographic ordering ("LLEX"). For more information, please check the relevant functions.<br />
<itemize><br />
<item>@param <em>F1, F2:</em> two polynomials in <tt>K&lt;X&gt;</tt>, which are left and right operands of multiplication respectively. Each polynomial is represented as a LIST of monomials, which are LISTs 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><br />
<item>@return: a LIST which represents the polynomial equal to <tt>F1*F2</tt>.</item><br />
</itemize><br />
<example><br />
NCo.SetFp(3);<br />
NCo.SetX("abc");<br />
NCo.RingEnv();<br />
Coefficient ring : Fp = Z/(3)<br />
Alphabet : abc<br />
Ordering : LLEX<br />
-------------------------------<br />
F1 := [[2,"a"],[1,""]];<br />
F2 := [[2,"b"],[1,"ba"]];<br />
NCo.Multiply(F1,F2); -- over F3<br />
[[2, "aba"], [1, "ab"], [1, "ba"], [2, "b"]]<br />
-------------------------------<br />
NCo.Multiply(F2,F1);<br />
[[2, "baa"], [2, "ba"], [2, "b"]]<br />
-------------------------------<br />
NCo.Multiply(F1,[]);<br />
[ ]<br />
-------------------------------<br />
NCo.Multiply([],F1);<br />
[ ]<br />
-------------------------------<br />
NCo.Multiply([],[]);<br />
[ ]<br />
-------------------------------<br />
NCo.UnsetFp();<br />
NCo.RingEnv();<br />
Coefficient ring : Q<br />
Alphabet : abc<br />
Ordering : LLEX<br />
-------------------------------<br />
NCo.Multiply(F1,F2); -- over Q<br />
[[2, "aba"], [4, "ab"], [1, "ba"], [2, "b"]]<br />
-------------------------------<br />
NCo.Multiply(F2,F1);<br />
[[2, "baa"], [5, "ba"], [2, "b"]]<br />
-------------------------------<br />
</example><br />
</description><br />
<seealso><br />
<see>ApCoCoA-1:NCo.SetFp|NCo.SetFp</see><br />
<see>ApCoCoA-1:NCo.SetOrdering|NCo.SetOrdering</see><br />
<see>ApCoCoA-1:NCo.SetX|NCo.SetX</see><br />
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see><br />
</seealso><br />
<types><br />
<type>apcocoaserver</type><br />
<type>polynomial</type><br />
<type>non_commutative</type><br />
</types><br />
<key>gbmr.Multiply</key><br />
<key>NCo.Multiply</key><br />
<key>Multiply</key><br />
<wiki-category>ApCoCoA-1:Package_gbmr</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:NCo.MRSubtract&diff=16146ApCoCoA-1:NCo.MRSubtract2020-10-29T13:43:17Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div>{{Version|1}}<br />
<command><br />
<title>NCo.MRSubtract</title><br />
<short_description><br />
Subtraction of two polynomials in a finitely presented monoid ring.<br />
</short_description><br />
<syntax><br />
NCo.MRSubtract(X:STRING, Ordering:STRING, Relations:LIST, F1:LIST, F2:LIST):LIST<br />
</syntax><br />
<description><br />
<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.<br />
<par/><br />
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.<br />
<itemize><br />
<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><br />
<br />
<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><br />
<br />
<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><br />
<br />
<item>@param <em>F1, F2:</em> two polynomials, which are left and right operands of subtraction 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><br />
<item>@return: a LIST which represents the polynomial equal to F1-F2.</item><br />
</itemize><br />
<example><br />
X := "abc"; <br />
Ordering := "LLEX"; <br />
Relations := [["aa",""], ["bb",""], ["ab","c"], ["ac", "b"], ["cb", "a"]]; <br />
F1 := [[1,"a"],[1,"ac"]]; -- F1=a+ac=a+b<br />
F2 := [[1,"b"],[1,"ba"]]; -- F2=b+ba<br />
NCo.MRSubtract(X, Ordering, Relations, F1, F2);<br />
[[-1, "ba"], [1, "a"]]<br />
-------------------------------<br />
X := "abc"; <br />
Ordering := "LLEX"; <br />
Relations := [["aa",""], ["bb",""], ["ab","c"], ["ac", "b"], ["cb", "a"]]; <br />
F1 := [[1,"a"],[1,""]]; -- F1=a+1<br />
NCo.MRSubtract(X, Ordering, Relations, F1, F1); -- F1-F1<br />
[ ]<br />
-------------------------------<br />
X := "abc"; <br />
Ordering := "LLEX"; <br />
Relations := [["aa",""], ["bb",""], ["ab","c"], ["ac", "b"], ["cb", "a"]]; <br />
F1 := [[1,"a"],[1,""]]; -- F1=a+1<br />
NCo.MRSubtract(X, Ordering, Relations, [], F1); -- 0-F1<br />
[[-1, "a"], [-1, ""]]<br />
-------------------------------<br />
</example><br />
</description><br />
<seealso><br />
<see>ApCoCoA-1:NCo.SetFp|NCo.SetFp</see><br />
<see>ApCoCoA-1:NCo.SetOrdering|NCo.SetOrdering</see><br />
<see>ApCoCoA-1:NCo.UnsetFp|NCo.UnsetFp</see><br />
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see><br />
</seealso><br />
<types><br />
<type>apcocoaserver</type><br />
<type>polynomial</type><br />
<type>non_commutative</type><br />
</types><br />
<key>gbmr.MRSubtract</key><br />
<key>NCo.MRSubtract</key><br />
<key>MRSubtract</key><br />
<wiki-category>ApCoCoA-1:Package_gbmr</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:NCo.MRReducedGB&diff=16145ApCoCoA-1:NCo.MRReducedGB2020-10-29T13:43:07Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div>{{Version|1}}<br />
<command><br />
<title>NCo.MRReducedGB</title><br />
<short_description><br />
Enumerate a reduced (partial) Groebner basis of a finitely generated two-sided ideal in a finitely presented monoid ring via the Buchberger procedure. <br />
</short_description><br />
<syntax><br />
NCo.MRReducedGB(X:STRING, Ordering:STRING, Relations:LIST, G:LIST[, DB:INT, LB:INT, OFlag:INT]):LIST<br />
</syntax><br />
<description><br />
Note that, given a word ordering <tt>Ordering</tt>, a set <tt>G</tt> of non-zero polynomials is called a <em>Groebner basis</em> with respect to <tt>Ordering</tt> if, for every non-zero polynomial <tt>f</tt> in the ideal <tt>&lt;G&gt;</tt>, there exists a polynomial <tt>g</tt> in <tt>G</tt> such that <tt>MRLW(f)</tt> is a multiple of <tt>MRLW(g)</tt>. Note that a two-sided ideal can not have finite Groebner bases. A Groebner basis <tt>G</tt> is called a <em>reduced Groebner basis</em> if <tt>G</tt> is interreduced (see <ref>ApCoCoA-1:NCo.MRInterreduction|NCo.MRInterreduction</ref>) and all polynomials in <tt>G</tt> are monic. Note that each ideal has a unique reduced Groebner basis. However, it is not necessarily finite. <br />
<par/><br />
<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.<br />
<par/><br />
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.<br />
<itemize><br />
<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><br />
<br />
<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><br />
<br />
<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><br />
<br />
<item>@param <em>G:</em> a LIST of non-zero polynomials generating a two-sided ideal. 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,""]].</item><br />
<br />
<item>@return: a LIST of polynomials, which is a reduced Groebner basis with respect to the word ordering Ordering if there exists a finite Groebner basis and the enumerating procedure doesn't terminate due to reaching the degree bound DB or the loop bound LB, and is a reduced partial Groebner basis otherwise.</item><br />
</itemize><br />
About 3 optional parameters: for most cases we do not know whether or not there exists a finite Groebner basis beforehand. Thus, the function offers 3 optional parameters for the enumerating procedure. Note that at the moment <em>all</em> of the following 3 optional parameters must be used at the same time.<br />
<itemize><br />
<item>@param <em>DB:</em> a positive INT, which gives a degree bound of S-polynomials (or obstructions) during the enumerating procedure. When the degree bound is reached, the procedure will be interrupted and return a partial Groebner basis.</item><br />
<br />
<item>@param <em>LB:</em> a positive INT, which gives a loop bound of enumerating steps. When the LB-th enumerating step finishes, the procedure will be interrupted and return a partial Groebner basis.</item><br />
<br />
<item>@param <em>OFlag:</em> a non-negative INT, which is a multi-switch for the output of the ApCoCoAServer. If OFlag=0, the server displaces nothing on the screen. If OFlag=1, the server prints basic information on the enumerating procedure, such as the number of enumerating steps has been proceeded, the number of elements in partial Groebner basis, the number of unselected obstructions; the total number of obstructions, the number of selected obstructions, and the number of unnecessary obstructions. If OFlag=2, besides the information as OFlag=1, the server also displays explicitly the elements in partial Groebner basis and the current selected S-polynonial. Note that the initial idea of using OFlag is to trace and debug the enumerating procedure.</item><br />
</itemize><br />
<example><br />
X := "xyzt"; <br />
Ordering := "LLEX"; <br />
Relations:=[]; <br />
F1 := [[1,"xx"], [-1,"yx"]]; <br />
F2 := [[1,"xy"], [-1,"ty"]]; <br />
F3 := [[1,"xt"], [-1, "tx"]]; <br />
F4 := [[1,"yt"], [-1, "ty"]]; <br />
G := [F1, F2,F3,F4]; <br />
NCo.MRReducedGB(X, Ordering, Relations, G);<br />
<br />
[[[1, "yt"], [-1, "ty"]], [[1, "xt"], [-1, "tx"]], [[1, "xy"], [-1, "ty"]], [[1, "xx"], [-1, "yx"]], <br />
[[1, "tyy"], [-1, "tty"]], [[1, "yyx"], [-1, "tyx"]]]<br />
-------------------------------<br />
X := "abc"; <br />
Ordering := "LLEX"; <br />
Relations := [["aa",""], ["bb",""], ["ab","c"], ["ac", "b"], ["cb", "a"]]; <br />
F1 := [[1,"a"], [1,"b"], [1,"c"]]; <br />
F2 := [[1,"b"]]; <br />
G := [F1, F2];<br />
NCo.MRReducedGB(X, Ordering, Relations, G);<br />
<br />
[[[1, "b"]], [[1, "a"], [1, "c"]]]<br />
-------------------------------<br />
</example><br />
</description><br />
<seealso><br />
<see>ApCoCoA-1:NCo.MRGB|NCo.MRGB</see><br />
<see>ApCoCoA-1:NCo.MRInterreduction|NCo.MRInterreduction</see><br />
<see>ApCoCoA-1:NCo.MRIsGB|NCo.MRIsGB</see><br />
<see>ApCoCoA-1:NCo.MRLW|NCo.MRLW</see><br />
<see>ApCoCoA-1:NCo.SetFp|NCo.SetFp</see><br />
<see>ApCoCoA-1:NCo.SetOrdering|NCo.SetOrdering</see><br />
<see>ApCoCoA-1:NCo.UnsetFp|NCo.UnsetFp</see><br />
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see><br />
</seealso><br />
<types><br />
<type>apcocoaserver</type><br />
<type>ideal</type><br />
<type>groebner</type><br />
<type>non_commutative</type><br />
</types><br />
<key>gbmr.MRReducedGB</key><br />
<key>NCo.MRReducedGB</key><br />
<key>MRReducedGB</key><br />
<wiki-category>ApCoCoA-1:Package_gbmr</wiki-category><br />
</command></div>AndraschkoBothttp://apcocoa.uni-passau.de/wiki/index.php?title=ApCoCoA-1:NCo.MRNR&diff=16144ApCoCoA-1:NCo.MRNR2020-10-29T13:42:57Z<p>AndraschkoBot: replaced <quotes> tag by real quotes</p>
<hr />
<div>{{Version|1}}<br />
<command><br />
<title>NCo.MRNR</title><br />
<short_description><br />
The normal remainder of a polynomial with respect to a LIST of polynomials in a finitely presented monoid ring.<br />
</short_description><br />
<syntax><br />
NCo.MRNR(X:STRING, Ordering:STRING, Relations:LIST, F:LIST, G:LIST):LIST<br />
</syntax><br />
<description><br />
<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.<br />
<par/><br />
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.<br />
<itemize><br />
<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><br />
<br />
<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><br />
<br />
<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><br />
<br />
<item>@param <em>F:</em> a polynomial over a finitely presented monoid ring. 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><br />
<br />
<item>@param <em>G:</em> a LIST of polynomials in a finitely presented monoid ring.</item><br />
<br />
<item>@return: a LIST which represents the normal remainder of F with respect to G.</item><br />
</itemize><br />
<example><br />
X := "abc"; <br />
Ordering := "LLEX"; <br />
Relations := [["aa",""], ["bb",""], ["ab","c"], ["ac", "b"], ["cb", "a"]]; <br />
F := [[1,"ba"]]; <br />
G := [[[1,"b"],[1,""]], [[1,"c"]]]; <br />
NCo.MRNR(X, Ordering, Relations, F, G);<br />
[[1, "a"]]<br />
-------------------------------<br />
</example><br />
</description><br />
<seealso><br />
<see>ApCoCoA-1:NCo.SetFp|NCo.SetFp</see><br />
<see>ApCoCoA-1:NCo.SetOrdering|NCo.SetOrdering</see><br />
<see>ApCoCoA-1:NCo.UnsetFp|NCo.UnsetFp</see><br />
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see><br />
</seealso><br />
<types><br />
<type>apcocoaserver</type><br />
<type>polynomial</type><br />
<type>non_commutative</type><br />
</types><br />
<key>gbmr.MRNR</key><br />
<key>NCo.MRNR</key><br />
<key>MRNR</key><br />
<wiki-category>ApCoCoA-1:Package_gbmr</wiki-category><br />
</command></div>AndraschkoBot