Difference between revisions of "ApCoCoA-1:SB.NFS"
Andraschko (talk | contribs) (added version info) |
|||
(4 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
+ | {{Version|1|[[Package sagbi/SB.SDA]]}} | ||
<command> | <command> | ||
<title>SB.NFS</title> | <title>SB.NFS</title> | ||
Line 10: | Line 11: | ||
</syntax> | </syntax> | ||
<description> | <description> | ||
− | This function computes the subalgebra normal form of the polynomial <tt>F</tt> with respect to the polynomials in the list <tt>Polys</tt> which generate a subalgebra <tt>S</tt> of the current algebra. The optional parameter <tt>ReprType</tt> gives the possibility to choose between different ways of getting a term representation (see <ref>SB.TermRepr</ref>). With the optional parameter <tt>SubAlgRepr</tt> it is possible to control the form of the output. If <tt>SubAlgRepr=FALSE</tt> (which is also the default value) only the normal form will be returned, otherwise a list with the normal form <tt>NFS(F)</tt> of <tt>F</tt> and a subalgebra representation of <tt>F - NFS(F)</tt> will be returned. Example: Let <tt>G = [g_1, g_2, g_3]</tt> and let <tt>[[1,0,3,-1],[4,2,1,2]]</tt> be the returned representation of <tt>F - NFS(F)</tt>. Then it follows | + | This function computes the subalgebra normal form of the polynomial <tt>F</tt> with respect to the polynomials in the list <tt>Polys</tt> which generate a subalgebra <tt>S</tt> of the current algebra. The optional parameter <tt>ReprType</tt> gives the possibility to choose between different ways of getting a term representation (see <ref>ApCoCoA-1:SB.TermRepr|SB.TermRepr</ref>). With the optional parameter <tt>SubAlgRepr</tt> it is possible to control the form of the output. If <tt>SubAlgRepr=FALSE</tt> (which is also the default value) only the normal form will be returned, otherwise a list with the normal form <tt>NFS(F)</tt> of <tt>F</tt> and a subalgebra representation of <tt>F - NFS(F)</tt> will be returned. Example: Let <tt>G = [g_1, g_2, g_3]</tt> and let <tt>[[1,0,3,-1],[4,2,1,2]]</tt> be the returned representation of <tt>F - NFS(F)</tt>. Then it follows |
<par/> | <par/> | ||
<tt>F-NFS(F) = -1*(g_1)^1(g_2)^0(g_3)^3 + 2*(g_1)^4(g_2)^2(g_3)^1</tt> | <tt>F-NFS(F) = -1*(g_1)^1(g_2)^0(g_3)^3 + 2*(g_1)^4(g_2)^2(g_3)^1</tt> | ||
Line 71: | Line 72: | ||
</example> | </example> | ||
</description> | </description> | ||
− | <see>SB.TermRepr</see> | + | <seealso> |
− | <see>SB.Sagbi</see> | + | <see>ApCoCoA-1:SB.TermRepr|SB.TermRepr</see> |
+ | <see>ApCoCoA-1:SB.Sagbi|SB.Sagbi</see> | ||
+ | </seealso> | ||
<types> | <types> | ||
<type>sagbi</type> | <type>sagbi</type> | ||
Line 80: | Line 83: | ||
<key>sb.nfs</key> | <key>sb.nfs</key> | ||
<key>sagbi.nfs</key> | <key>sagbi.nfs</key> | ||
− | <wiki-category>Package_sagbi</wiki-category> | + | <wiki-category>ApCoCoA-1:Package_sagbi</wiki-category> |
</command> | </command> |
Latest revision as of 17:49, 27 October 2020
This article is about a function from ApCoCoA-1. If you are looking for the ApCoCoA-2 version of it, see Package sagbi/SB.SDA. |
SB.NFS
Computes the subalgebra normal form of a polynomial with respect to subalgebra generators.
Syntax
SB.NFS(Polys:LIST of POLY, F:POLY):POLY SB.NFS(Polys:LIST of POLY, F:POLY, ReprType:INT):POLY SB.NFS(Polys:LIST of POLY, F:POLY, SubAlgRepr:BOOL):POLY or LIST SB.NFS(Polys:LIST of POLY, F:POLY, ReprType:INT, SubAlgRepr:BOOL):POLY or LIST
Description
This function computes the subalgebra normal form of the polynomial F with respect to the polynomials in the list Polys which generate a subalgebra S of the current algebra. The optional parameter ReprType gives the possibility to choose between different ways of getting a term representation (see SB.TermRepr). With the optional parameter SubAlgRepr it is possible to control the form of the output. If SubAlgRepr=FALSE (which is also the default value) only the normal form will be returned, otherwise a list with the normal form NFS(F) of F and a subalgebra representation of F - NFS(F) will be returned. Example: Let G = [g_1, g_2, g_3] and let [[1,0,3,-1],[4,2,1,2]] be the returned representation of F - NFS(F). Then it follows
F-NFS(F) = -1*(g_1)^1(g_2)^0(g_3)^3 + 2*(g_1)^4(g_2)^2(g_3)^1
That means that the last entry of every list in the representation gives the coefficients and the other entries the exponents.
@param Polys A list of polynomials, which are the generators of the current subalgebra.
@param F A polynomial.
@return Depending on the optional parameter SubAlgRepr either a polynomial or a list including a polynomial and a list of integers.
The following parameters are optional:
@param ReprType Either 0,1 or 2. With this parameter it is possible to choose between different ways of getting the representation: By ReprType=0 a toric ideal is used to compute the representation. This is also the default value. By ReprType=1 algebra homomorphisms are used, by ReprType=2 a system of diophantine equations is used to compute the representation.
@param SubAlgRepr A boolean value. The default value is FALSE. If SubAlgRepr=FALSE only the normal form will be returned, otherwise a list with two entries will be returned: The first one is the normal form NFS(F) of F, the second one is the subalgebra representation of the polynomial F - NFS(F) which always lies in the given subalgebra.
Example
Use R::=QQ[x,y]; G:=[x-y,x+y]; SB.NFS(G,x^2-y^2); SB.NFS(G,x^2-y^2,TRUE); ------------------------------------------------------- -- output: -- Interpretation: -- x^2-y^2 - (-2xy-2y^2) = x^2+2xy+y^2 = 1*(x+y)^2 is in K[G] -2xy - 2y^2 ------------------------------- [-2xy - 2y^2, [[0, 2, 1]]] ------------------------------- -- Done. -------------------------------
Example
Use R::=QQ[x,y], DegLex; F:=x^4y^2+x^2y^4; G:=[x^2-1,y^2-1]; SB.NFS(G,F); SB.NFS(G,F,TRUE); ------------------------------------------------------- -- output: -- Interpretation: -- F is in K[G] with -- F = 1*G[1]^2G[2] + 1*G[1]G[2]^2 + 1*G[1]^2 + 4*G[1]G[2] + 1*G[2]^2 -- + 3*G[1] + 3*G[2] + 2. 0 ------------------------------- [0, [[2, 1, 1], [1, 2, 1], [2, 0, 1], [1, 1, 4], [0, 2, 1], [1, 0, 3], [0, 1, 3], [0, 0, 2]]] ------------------------------- -- Done. -------------------------------
See also