Difference between revisions of "ApCoCoA-1:BB.BorderDivAlg"

From ApCoCoAWiki
(Created the page)
 
m (insert version info)
 
(20 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 +
{{Version|1}}
 
<command>
 
<command>
    <title>BB.BorderDivAlg</title>
+
  <title>BB.BorderDivAlg</title>
    <short_description>border division algorithm</short_description>
+
  <short_description>Applies the border division algorithm.</short_description>
 +
 
 
<syntax>
 
<syntax>
 
BB.BorderDivAlg(F:POLY,OO:LIST of POLY,Prebasis:LIST of POLY):RECORD
 
BB.BorderDivAlg(F:POLY,OO:LIST of POLY,Prebasis:LIST of POLY):RECORD
 
BB.BorderDivAlg(F:POLY,OO:LIST of POLY,Prebasis:LIST of LIST of POLY):RECORD
 
BB.BorderDivAlg(F:POLY,OO:LIST of POLY,Prebasis:LIST of LIST of POLY):RECORD
 
</syntax>
 
</syntax>
    <description>
+
  <description>
 +
<em>Please note:</em> The function(s) explained on this page is/are using the <em>ApCoCoAServer</em>. You will have to start the ApCoCoAServer in order to use it/them.
 +
<par/>
 
Applies the Border Division Algorithm w.r.t. the order ideal <tt>OO</tt> and the border prebasis
 
Applies the Border Division Algorithm w.r.t. the order ideal <tt>OO</tt> and the border prebasis
 
<tt>Prebasis</tt> to the polynomial <tt>F</tt> and returns a record with fields <tt>Quotients</tt>
 
<tt>Prebasis</tt> to the polynomial <tt>F</tt> and returns a record with fields <tt>Quotients</tt>
 
and <tt>Remainder</tt> sucht that <tt>Remainder</tt> is the normal <tt>OO</tt>-remainder.
 
and <tt>Remainder</tt> sucht that <tt>Remainder</tt> is the normal <tt>OO</tt>-remainder.
 
+
<par/>
 
As it is not immediately clear which term in the support of a given prebasis polynomial of
 
As it is not immediately clear which term in the support of a given prebasis polynomial of
<tt>Prebasis</tt> is contained in the border of <tt>OO</tt>, the prebasis needs to be parsed
+
<tt>Prebasis</tt> is contained in the border of <tt>OO</tt> (remember that a term ordering is
 +
used automatically), the prebasis needs to be parsed
 
internally and a more detailed prebasis representation is computed. The internal expansion will
 
internally and a more detailed prebasis representation is computed. The internal expansion will
 
be skipped if you already pass a more detailed prebasis description to the function which is
 
be skipped if you already pass a more detailed prebasis description to the function which is
 
possible by using the second function call (see example below).
 
possible by using the second function call (see example below).
 +
<itemize>
 +
  <item>@param <em>F</em> The Border Division Algorithm will be applied to this polynomial.</item>
 +
  <item>@param <em>OO</em> A list of terms representing an order ideal.</item>
 +
  <item>@param <em>Prebasis</em> A list of polynomials representing a <tt>OO</tt>-border prebasis. Please see examples below for a detailed explanation of the format of this parameter.</item>
 +
  <item>@return The result of the Border Division Algorithm will be stored in a record containing two fields <tt>Quotients</tt> and <tt>Remainder</tt>, both of type POLY.</item>
 +
</itemize>
  
 
<example>
 
<example>
Use Q[x,y];
+
Use QQ[x,y];
 
OO := [1, x, y];
 
OO := [1, x, y];
 
Prebasis := [ x^2 + x + 1, xy + y, y^2 + x + 1 ];
 
Prebasis := [ x^2 + x + 1, xy + y, y^2 + x + 1 ];
Line 27: Line 38:
 
Record[Quotients = [xy^2 - y^2 + 1, -y, 2], Remainder = -3x - 1]
 
Record[Quotients = [xy^2 - y^2 + 1, -y, 2], Remainder = -3x - 1]
 
-------------------------------
 
-------------------------------
 
+
</example>
 +
<example>
 
-- The paramter Prebasis is internally expanded to
 
-- The paramter Prebasis is internally expanded to
 
-- [ [ x^2 + x + 1, x^2 ], [ xy + y, xy ], [ y^2 + x + 1, y^2] ].
 
-- [ [ x^2 + x + 1, x^2 ], [ xy + y, xy ], [ y^2 + x + 1, y^2] ].
Line 39: Line 51:
 
-------------------------------
 
-------------------------------
 
</example>
 
</example>
     </description>
+
  </description>
     <see>DivAlg</see>
+
  <types>
    <key>kaspar</key>
+
    <type>polynomial</type>
    <key>bb.borderdivalg</key>
+
     <type>borderbasis</type>
    <key>borderbasis.borderdivalg</key>
+
     <type>apcocoaserver</type>
    <wiki-category>Package_borderbasis</wiki-category>
+
  </types>
 +
  <see>CoCoA:DivAlg</see>
 +
 
 +
  <key>BorderDivAlg</key>
 +
  <key>BB.BorderDivAlg</key>
 +
  <key>borderbasis.BorderDivAlg</key>
 +
  <wiki-category>ApCoCoA-1:Package_borderbasis</wiki-category>
 
</command>
 
</command>

Latest revision as of 09:39, 7 October 2020

This article is about a function from ApCoCoA-1.

BB.BorderDivAlg

Applies the border division algorithm.

Syntax

BB.BorderDivAlg(F:POLY,OO:LIST of POLY,Prebasis:LIST of POLY):RECORD
BB.BorderDivAlg(F:POLY,OO:LIST of POLY,Prebasis:LIST of LIST of POLY):RECORD

Description

Please note: The function(s) explained on this page is/are using the ApCoCoAServer. You will have to start the ApCoCoAServer in order to use it/them.

Applies the Border Division Algorithm w.r.t. the order ideal OO and the border prebasis

Prebasis to the polynomial F and returns a record with fields Quotients

and Remainder sucht that Remainder is the normal OO-remainder.

As it is not immediately clear which term in the support of a given prebasis polynomial of

Prebasis is contained in the border of OO (remember that a term ordering is

used automatically), the prebasis needs to be parsed internally and a more detailed prebasis representation is computed. The internal expansion will be skipped if you already pass a more detailed prebasis description to the function which is possible by using the second function call (see example below).

  • @param F The Border Division Algorithm will be applied to this polynomial.

  • @param OO A list of terms representing an order ideal.

  • @param Prebasis A list of polynomials representing a OO-border prebasis. Please see examples below for a detailed explanation of the format of this parameter.

  • @return The result of the Border Division Algorithm will be stored in a record containing two fields Quotients and Remainder, both of type POLY.

Example

Use QQ[x,y];
OO := [1, x, y];
Prebasis := [ x^2 + x + 1, xy + y, y^2 + x + 1 ];
F := x^3y^2 - xy^2 + x^2 + 2;
BB.BorderDivAlg(F, OO, Prebasis);

-------------------------------
Record[Quotients = [xy^2 - y^2 + 1, -y, 2], Remainder = -3x - 1]
-------------------------------

Example

-- The paramter Prebasis is internally expanded to
-- [ [ x^2 + x + 1, x^2 ], [ xy + y, xy ], [ y^2 + x + 1, y^2] ].
-- Thus, the following call of BB.BorderDivAlg is
-- equivalent to the one above
DetailedPrebasis := [ [ x^2 + x + 1, x^2 ], [ xy + y, xy ], [ y^2 + x + 1, y^2] ];
BB.BorderDivAlg(F, OO, DetailedPrebasis);

-------------------------------
Record[Quotients = [xy^2 - y^2 + 1, -y, 2], Remainder = -3x - 1]
-------------------------------

CoCoA:DivAlg