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

(Updated description) |
m (insert version info) |
||

(19 intermediate revisions by 5 users not shown) | |||

Line 1: | Line 1: | ||

+ | {{Version|1}} | ||

<command> | <command> | ||

− | + | <title>BB.BorderDivAlg</title> | |

− | + | <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> | |

+ | <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 | + | 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 28: | 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 40: | Line 51: | ||

------------------------------- | ------------------------------- | ||

</example> | </example> | ||

− | </ | + | </description> |

− | <see>DivAlg</see> | + | <types> |

− | + | <type>polynomial</type> | |

− | + | <type>borderbasis</type> | |

− | + | <type>apcocoaserver</type> | |

− | + | </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] -------------------------------