[BACK]Return to groebner.texi CVS log [TXT][DIR] Up to [local] / OpenXM / src / asir-doc / parts

Diff for /OpenXM/src/asir-doc/parts/groebner.texi between version 1.21 and 1.23

version 1.21, 2018/09/06 05:42:43 version 1.23, 2019/09/13 09:31:00
Line 1 
Line 1 
 @comment $OpenXM: OpenXM/src/asir-doc/parts/groebner.texi,v 1.20 2017/08/31 04:54:36 takayama Exp $  @comment $OpenXM: OpenXM/src/asir-doc/parts/groebner.texi,v 1.22 2019/03/29 04:54:25 noro Exp $
 \BJP  \BJP
 @node $B%0%l%V%J4pDl$N7W;;(B,,, Top  @node $B%0%l%V%J4pDl$N7W;;(B,,, Top
 @chapter $B%0%l%V%J4pDl$N7W;;(B  @chapter $B%0%l%V%J4pDl$N7W;;(B
Line 19 
Line 19 
 * $BM-M}<0$r78?t$H$9$k%0%l%V%J4pDl7W;;(B::  * $BM-M}<0$r78?t$H$9$k%0%l%V%J4pDl7W;;(B::
 * $B4pDlJQ49(B::  * $B4pDlJQ49(B::
 * Weyl $BBe?t(B::  * Weyl $BBe?t(B::
   * $BB?9`<04D>e$N2C72(B::
 * $B%0%l%V%J4pDl$K4X$9$kH!?t(B::  * $B%0%l%V%J4pDl$K4X$9$kH!?t(B::
 \E  \E
 \BEG  \BEG
Line 31 
Line 32 
 * Groebner basis computation with rational function coefficients::  * Groebner basis computation with rational function coefficients::
 * Change of ordering::  * Change of ordering::
 * Weyl algebra::  * Weyl algebra::
   * Module over a polynomial ring::
 * Functions for Groebner basis computation::  * Functions for Groebner basis computation::
 \E  \E
 @end menu  @end menu
Line 1486  Computation of the global b function is implemented as
Line 1488  Computation of the global b function is implemented as
 \E  \E
   
 \BJP  \BJP
   @node $BB?9`<04D>e$N2C72(B,,, $B%0%l%V%J4pDl$N7W;;(B
   @section $BB?9`<04D>e$N2C72(B
   \E
   \BEG
   @node Module over a polynomial ring,,, Groebner basis computation
   @section Module over a polynomial ring
   \E
   
   @noindent
   
   \BJP
   $BB?9`<04D>e$N<+M32C72$N85$O(B, $B2C72C19`<0(B te_i $B$N@~7?OB$H$7$FFbItI=8=$5$l$k(B.
   $B$3$3$G(B t $B$OB?9`<04D$NC19`<0(B, e_i $B$O<+M32C72$NI8=`4pDl$G$"$k(B. $B2C72C19`<0$O(B, $BB?9`<04D$NC19`<0(B
   $B$K0LCV(B i $B$rDI2C$7$?(B @code{<<a,b,...,c:i>>} $B$GI=$9(B. $B2C72B?9`<0(B, $B$9$J$o$A2C72C19`<0$N@~7?OB$O(B,
   $B@_Dj$5$l$F$$$k2C729`=g=x$K$7$?$,$C$F9_=g$K@0Ns$5$l$k(B. $B2C729`=g=x$K$O0J2<$N(B3$B<oN`$,$"$k(B.
   
   @table @code
   @item TOP $B=g=x(B
   
   $B$3$l$O(B, te_i > se_j $B$H$J$k$N$O(B t>s $B$^$?$O(B (t=s $B$+$D(B i<j) $B$H$J$k$h$&$J9`=g=x$G$"$k(B. $B$3$3$G(B,
   t, s $B$NHf3S$OB?9`<04D$K@_Dj$5$l$F$$$k=g=x$G9T$&(B.
   $B$3$N7?$N=g=x$O(B, @code{dp_ord([0,Ord])} $B$K(B
   $B$h$j@_Dj$9$k(B. $B$3$3$G(B, @code{Ord} $B$OB?9`<04D$N=g=x7?$G$"$k(B.
   
   @item POT $B=g=x(B
   
   $B$3$l$O(B, te_i > se_j $B$H$J$k$N$O(B i<j $B$^$?$O(B (i=j $B$+$D(B t>s) $B$H$J$k$h$&$J9`=g=x$G$"$k(B. $B$3$3$G(B,
   t, s $B$NHf3S$OB?9`<04D$K@_Dj$5$l$F$$$k=g=x$G9T$&(B.
   $B$3$N7?$N=g=x$O(B, @code{dp_ord([1,Ord])} $B$K(B
   $B$h$j@_Dj$9$k(B. $B$3$3$G(B, @code{Ord} $B$OB?9`<04D$N=g=x7?$G$"$k(B.
   
   @item Schreyer $B7?=g=x(B
   
   $B3FI8=`4pDl(B e_i $B$KBP$7(B, $BJL$N<+M32C72$N2C72C19`<0(B T_i $B$,M?$($i$l$F$$$F(B, te_i > se_j $B$H$J$k$N$O(B
   tT_i > sT_j $B$^$?$O(B (tT_i=sT_j $B$+$D(B i<j) $B$H$J$k$h$&$J9`=g=x$G$"$k(B. $B$3$3$G(B tT_i, sT_j $B$N(B
   $BHf3S$O(B, $B$3$l$i$,=jB0$9$k<+M32C72$K@_Dj$5$l$F$$$k=g=x$G9T$&(B.
   $B$3$N7?$N=g=x$O(B, $BDL>o:F5"E*$K@_Dj$5$l$k(B. $B$9$J$o$A(B, T_i $B$,=jB0$9$k<+M32C72$N=g=x$b(B Schreyer $B7?(B
   $B$G$"$k$+(B, $B$^$?$O%\%H%`$H$J$k(B TOP, POT $B$J$I$N9`=g=x$H$J$k(B.
   $B$3$N7?$N=g=x$O(B @code{dpm_set_schreyer([H_1,H_2,...])} $B$K$h$j;XDj$9$k(B. $B$3$3$G(B,
   @code{H_i=[T_1,T_2,...]} $B$O2C72C19`<0$N%j%9%H$G(B, @code{[H_2,...]} $B$GDj5A$5$l$k(B Schreyer $B7?9`=g=x$r(B
   @code{tT_i} $B$i$KE,MQ$9$k$H$$$&0UL#$G$"$k(B.
   @end table
   
   $B2C72B?9`<0$rF~NO$9$kJ}K!$H$7$F$O(B, @code{<<a,b,...:i>>} $B$J$k7A<0$GD>@\F~NO$9$kB>$K(B,
   $BB?9`<0%j%9%H$r:n$j(B, @code{dpm_ltod()} $B$K$h$jJQ49$9$kJ}K!$b$"$k(B.
   \E
   \BEG
   not yet
   \E
   
   \BJP
 @node $B%0%l%V%J4pDl$K4X$9$kH!?t(B,,, $B%0%l%V%J4pDl$N7W;;(B  @node $B%0%l%V%J4pDl$K4X$9$kH!?t(B,,, $B%0%l%V%J4pDl$N7W;;(B
 @section $B%0%l%V%J4pDl$K4X$9$kH!?t(B  @section $B%0%l%V%J4pDl$K4X$9$kH!?t(B
 \E  \E
Line 1503  Computation of the global b function is implemented as
Line 1556  Computation of the global b function is implemented as
 * dp_gr_main dp_gr_mod_main dp_gr_f_main dp_weyl_gr_main dp_weyl_gr_mod_main dp_weyl_gr_f_main::  * dp_gr_main dp_gr_mod_main dp_gr_f_main dp_weyl_gr_main dp_weyl_gr_mod_main dp_weyl_gr_f_main::
 * dp_f4_main dp_f4_mod_main dp_weyl_f4_main dp_weyl_f4_mod_main::  * dp_f4_main dp_f4_mod_main dp_weyl_f4_main dp_weyl_f4_mod_main::
 * nd_gr nd_gr_trace nd_f4 nd_f4_trace nd_weyl_gr nd_weyl_gr_trace::  * nd_gr nd_gr_trace nd_f4 nd_f4_trace nd_weyl_gr nd_weyl_gr_trace::
   * nd_gr_postproc nd_weyl_gr_postproc::
 * dp_gr_flags dp_gr_print::  * dp_gr_flags dp_gr_print::
 * dp_ord::  * dp_ord::
 * dp_set_weight dp_set_top_weight dp_weyl_set_weight::  * dp_set_weight dp_set_top_weight dp_weyl_set_weight::
Line 1513  Computation of the global b function is implemented as
Line 1567  Computation of the global b function is implemented as
 * dp_ptozp dp_prim::  * dp_ptozp dp_prim::
 * dp_nf dp_nf_mod dp_true_nf dp_true_nf_mod dp_weyl_nf dp_weyl_nf_mod::  * dp_nf dp_nf_mod dp_true_nf dp_true_nf_mod dp_weyl_nf dp_weyl_nf_mod::
 * dp_hm dp_ht dp_hc dp_rest::  * dp_hm dp_ht dp_hc dp_rest::
   * dpm_hm dpm_ht dpm_hc dpm_hp dpm_rest::
 * dp_td dp_sugar::  * dp_td dp_sugar::
 * dp_lcm::  * dp_lcm::
 * dp_redble::  * dp_redble::
Line 2359  except for lack of the argument for controlling homoge
Line 2414  except for lack of the argument for controlling homoge
 @findex nd_weyl_gr_trace  @findex nd_weyl_gr_trace
   
 @table @t  @table @t
 @item nd_gr(@var{plist},@var{vlist},@var{p},@var{order})  @item nd_gr(@var{plist},@var{vlist},@var{p},@var{order}[|@var{option=value,...}])
 @itemx nd_gr_trace(@var{plist},@var{vlist},@var{homo},@var{p},@var{order})  @itemx nd_gr_trace(@var{plist},@var{vlist},@var{homo},@var{p},@var{order}[|@var{option=value,...}])
 @itemx nd_f4(@var{plist},@var{vlist},@var{modular},@var{order})  @itemx nd_f4(@var{plist},@var{vlist},@var{modular},@var{order}[|@var{option=value,...}])
 @itemx nd_f4_trace(@var{plist},@var{vlist},@var{homo},@var{p},@var{order})  @itemx nd_f4_trace(@var{plist},@var{vlist},@var{homo},@var{p},@var{order}[|@var{option=value,...}])
 @itemx nd_weyl_gr(@var{plist},@var{vlist},@var{p},@var{order})  @itemx nd_weyl_gr(@var{plist},@var{vlist},@var{p},@var{order}[|@var{option=value,...}])
 @itemx nd_weyl_gr_trace(@var{plist},@var{vlist},@var{homo},@var{p},@var{order})  @itemx nd_weyl_gr_trace(@var{plist},@var{vlist},@var{homo},@var{p},@var{order}[|@var{option=value,...}])
 \JP :: $B%0%l%V%J4pDl$N7W;;(B ($BAH$_9~$_H!?t(B)  \JP :: $B%0%l%V%J4pDl$N7W;;(B ($BAH$_9~$_H!?t(B)
 \EG :: Groebner basis computation (built-in functions)  \EG :: Groebner basis computation (built-in functions)
 @end table  @end table
Line 2423  Buchberger $B%"%k%4%j%:%`$r<B9T$9$k(B.
Line 2478  Buchberger $B%"%k%4%j%:%`$r<B9T$9$k(B.
 @item  @item
 $B0lHL$K(B @code{dp_gr_main}, @code{dp_gr_mod_main} $B$h$j9bB.$G$"$k$,(B,  $B0lHL$K(B @code{dp_gr_main}, @code{dp_gr_mod_main} $B$h$j9bB.$G$"$k$,(B,
 $BFC$KM-8BBN>e$N>l9g82Cx$G$"$k(B.  $BFC$KM-8BBN>e$N>l9g82Cx$G$"$k(B.
   @item
   $B0J2<$N%*%W%7%g%s$,;XDj$G$-$k(B.
   @table @code
   @item homo
   1 $B$N$H$-(B, $B@F<!2=$r7PM3$7$F7W;;$9$k(B. (@code{nd_gr}, @code{nd_f4} $B$N$_(B)
   @item dp
   1 $B$N$H$-(B, $BJ,;6I=8=B?9`<0(B ($B2C72$N>l9g$K$O2C72B?9`<0(B) $B$r7k2L$H$7$FJV$9(B.
   @item nora
   1 $B$N$H$-(B, $B7k2L$NAj8_4JLs$r9T$o$J$$(B.
   @end table
 @end itemize  @end itemize
 \E  \E
   
Line 2466  Functions except for F4 related ones can handle ration
Line 2531  Functions except for F4 related ones can handle ration
 @item  @item
 In general these functions are more efficient than  In general these functions are more efficient than
 @code{dp_gr_main}, @code{dp_gr_mod_main}, especially over finite fields.  @code{dp_gr_main}, @code{dp_gr_mod_main}, especially over finite fields.
   @item
   The fallowing options can be specified.
   @table @code
   @item homo
   If set to 1, the computation is done via homogenization. (only for @code{nd_gr} and @code{nd_f4})
   @item dp
   If set to 1, the functions return a list of distributed polynomials (a list of
   module polynomials when the input is a sub-module).
   @item nora
   If set to 1, the inter-reduction is not performed.
   @end table
 @end itemize  @end itemize
 \E  \E
   
Line 2494  ndv_alloc=1477188
Line 2570  ndv_alloc=1477188
 \EG @fref{Controlling Groebner basis computations}  \EG @fref{Controlling Groebner basis computations}
 @end table  @end table
   
   \JP @node nd_gr_postproc nd_weyl_gr_postproc,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
   \EG @node nd_gr_postproc nd_weyl_gr_postproc,,, Functions for Groebner basis computation
   @subsection @code{nd_gr_postproc}, @code{nd_weyl_gr_postproc}
   @findex nd_gr_postproc
   @findex nd_weyl_gr_postproc
   
   @table @t
   @item nd_gr_postproc(@var{plist},@var{vlist},@var{p},@var{order},@var{check})
   @itemx nd_weyl_gr_postproc(@var{plist},@var{vlist},@var{p},@var{order},@var{check})
   \JP :: $B%0%l%V%J4pDl8uJd$N%A%'%C%/$*$h$SAj8_4JLs(B
   \EG :: Check of Groebner basis candidate and inter-reduction
   @end table
   
   @table @var
   @item return
   \JP $B%j%9%H(B $B$^$?$O(B 0
   \EG list or 0
   @item plist  vlist
   \JP $B%j%9%H(B
   \EG list
   @item p
   \JP $BAG?t$^$?$O(B 0
   \EG prime or 0
   @item order
   \JP $B?t(B, $B%j%9%H$^$?$O9TNs(B
   \EG number, list or matrix
   @item check
   \JP 0 $B$^$?$O(B 1
   \EG 0 or 1
   @end table
   
   @itemize @bullet
   \BJP
   @item
   $B%0%l%V%J4pDl(B($B8uJd(B)$B$NAj8_4JLs$r9T$&(B.
   @item
   @code{nd_weyl_gr_postproc} $B$O(B Weyl $BBe?tMQ$G$"$k(B.
   @item
   @var{check=1} $B$N>l9g(B, @var{plist} $B$,(B, @var{vlist}, @var{p}, @var{order} $B$G;XDj$5$l$kB?9`<04D(B, $B9`=g=x$G%0%l%V%J!<4pDl$K$J$C$F$$$k$+(B
   $B$N%A%'%C%/$b9T$&(B.
   @item
   $B@F<!2=$7$F7W;;$7$?%0%l%V%J!<4pDl$rHs@F<!2=$7$?$b$N$rAj8_4JLs$r9T$&(B, CRT $B$G7W;;$7$?%0%l%V%J!<4pDl8uJd$N%A%'%C%/$r9T$&$J$I$N>l9g$KMQ$$$k(B.
   \E
   \BEG
   @item
   Perform the inter-reduction for a Groebner basis (candidate).
   @item
   @code{nd_weyl_gr_postproc} is for Weyl algebra.
   @item
   If @var{check=1} then the check whether @var{plist} is a Groebner basis with respect to a term order in a polynomial ring
   or Weyl algebra specified by @var{vlist}, @var{p} and @var{order}.
   @item
   This function is used for inter-reduction of a non-reduced Groebner basis that is obtained by dehomogenizing a Groebner basis
   computed via homogenization, or Groebner basis check of a Groebner basis candidate computed by CRT.
   \E
   @end itemize
   
   @example
   afo
   @end example
   
 \JP @node dp_gr_flags dp_gr_print,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B  \JP @node dp_gr_flags dp_gr_print,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
 \EG @node dp_gr_flags dp_gr_print,,, Functions for Groebner basis computation  \EG @node dp_gr_flags dp_gr_print,,, Functions for Groebner basis computation
 @subsection @code{dp_gr_flags}, @code{dp_gr_print}  @subsection @code{dp_gr_flags}, @code{dp_gr_print}
Line 2624  uses the value as a flag for showing intermediate info
Line 2761  uses the value as a flag for showing intermediate info
 @item  @item
 $B%H%C%W%l%Y%kH!?t0J30$NH!?t$rD>@\8F$S=P$9>l9g$K$O(B, $B$3$NH!?t$K$h$j(B  $B%H%C%W%l%Y%kH!?t0J30$NH!?t$rD>@\8F$S=P$9>l9g$K$O(B, $B$3$NH!?t$K$h$j(B
 $BJQ?t=g=x7?$r@5$7$/@_Dj$7$J$1$l$P$J$i$J$$(B.  $BJQ?t=g=x7?$r@5$7$/@_Dj$7$J$1$l$P$J$i$J$$(B.
   
   @item
   $B0z?t$,%j%9%H$N>l9g(B, $B<+M32C72$K$*$1$k9`=g=x7?$r@_Dj$9$k(B. $B0z?t$,(B@code{[0,Ord]} $B$N>l9g(B,
   $BB?9`<04D>e$G(B @code{Ord} $B$G;XDj$5$l$k9`=g=x$K4p$E$/(B TOP $B=g=x(B, $B0z?t$,(B @code{[1,Ord]} $B$N>l9g(B
   OPT $B=g=x$r@_Dj$9$k(B.
   
 \E  \E
 \BEG  \BEG
 @item  @item
Line 2651  that such polynomials were generated under the same or
Line 2794  that such polynomials were generated under the same or
 @item  @item
 Type of term ordering must be correctly set by this function  Type of term ordering must be correctly set by this function
 when functions other than top level functions are called directly.  when functions other than top level functions are called directly.
   
   @item
   If the argument is a list, then an ordering type in a free module is set.
   If the argument is @code{[0,Ord]} then a TOP ordering based on the ordering type specified
   by @code{Ord} is set.
   If the argument is @code{[1,Ord]} then a POT ordering is set.
 \E  \E
 @end itemize  @end itemize
   
Line 2802  the coefficient field.
Line 2951  the coefficient field.
 @fref{dp_ord}.  @fref{dp_ord}.
 @end table  @end table
   
   \JP @node dpm_dptodpm,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
   \EG @node dpm_dptodpm,,, Functions for Groebner basis computation
   @subsection @code{dpm_dptodpm}
   @findex dpm_dptodpm
   
   @table @t
   @item dpm_dptodpm(@var{dpoly},@var{pos})
   \JP :: $BJ,;6I=8=B?9`<0$r2C72B?9`<0$KJQ49$9$k(B.
   \EG :: Converts a distributed polynomial into a module polynomial.
   @end table
   
   @table @var
   @item return
   \JP $B2C72B?9`<0(B
   \EG module polynomial
   @item dpoly
   \JP $BJ,;6I=8=B?9`<0(B
   \EG distributed polynomial
   @item pos
   \JP $B@5@0?t(B
   \EG positive integer
   @end table
   
   @itemize @bullet
   \BJP
   @item
   $BJ,;6I=8=B?9`<0$r2C72B?9`<0$KJQ49$9$k(B.
   @item
   $B=PNO$O2C72B?9`<0(B @code{dpoly e_pos} $B$G$"$k(B.
   \E
   \BEG
   @item
   This function converts a distributed polynomial into a module polynomial.
   @item
   The output is @code{dpoly e_pos}.
   \E
   @end itemize
   
   @example
   [50] dp_ord([0,0])$
   [51] D=dp_ptod((x+y+z)^2,[x,y,z]);
   (1)*<<2,0,0>>+(2)*<<1,1,0>>+(1)*<<0,2,0>>+(2)*<<1,0,1>>+(2)*<<0,1,1>>
   +(1)*<<0,0,2>>
   [52] dp_dptodpm(D,2);
   (1)*<<2,0,0:2>>+(2)*<<1,1,0:2>>+(1)*<<0,2,0:2>>+(2)*<<1,0,1:2>>
   +(2)*<<0,1,1:2>>+(1)*<<0,0,2:2>>
   @end example
   
   @table @t
   \JP @item $B;2>H(B
   \EG @item References
   @fref{dp_ptod},
   @fref{dp_ord}.
   @end table
   
   \JP @node dpm_ltod,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
   \EG @node dpm_ltod,,, Functions for Groebner basis computation
   @subsection @code{dpm_ltod}
   @findex dpm_ltod
   
   @table @t
   @item dpm_dptodpm(@var{plist},@var{vlist})
   \JP :: $BB?9`<0%j%9%H$r2C72B?9`<0$KJQ49$9$k(B.
   \EG :: Converts a list of polynomials into a module polynomial.
   @end table
   
   @table @var
   @item return
   \JP $B2C72B?9`<0(B
   \EG module polynomial
   @item plist
   \JP $BB?9`<0%j%9%H(B
   \EG list of polynomials
   @item vlist
   \JP $BJQ?t%j%9%H(B
   \EG list of variables
   @end table
   
   @itemize @bullet
   \BJP
   @item
   $BB?9`<0%j%9%H$r2C72B?9`<0$KJQ49$9$k(B.
   @item
   @code{[p1,...,pm]} $B$O(B @code{p1 e1+...+pm em} $B$KJQ49$5$l$k(B.
   \E
   \BEG
   @item
   This function converts a list of polynomials into a module polynomial.
   @item
   @code{[p1,...,pm]} is converted into @code{p1 e1+...+pm em}.
   \E
   @end itemize
   
   @example
   [2126] dp_ord([0,0])$
   [2127] dpm_ltod([x^2+y^2,x,y-z],[x,y,z]);
   (1)*<<2,0,0:1>>+(1)*<<0,2,0:1>>+(1)*<<1,0,0:2>>+(1)*<<0,1,0:3>>
   +(-1)*<<0,0,1:3>>
   @end example
   
   @table @t
   \JP @item $B;2>H(B
   \EG @item References
   @fref{dpm_dtol},
   @fref{dp_ord}.
   @end table
   
   \JP @node dpm_dtol,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
   \EG @node dpm_dtol,,, Functions for Groebner basis computation
   @subsection @code{dpm_dtol}
   @findex dpm_dtol
   
   @table @t
   @item dpm_dptodpm(@var{poly},@var{vlist})
   \JP :: $B2C72B?9`<0$rB?9`<0%j%9%H$KJQ49$9$k(B.
   \EG :: Converts a module polynomial into a list of polynomials.
   @end table
   
   @table @var
   @item return
   \JP $BB?9`<0%j%9%H(B
   \EG list of polynomials
   @item poly
   \JP $B2C72B?9`<0(B
   \EG module polynomial
   @item vlist
   \JP $BJQ?t%j%9%H(B
   \EG list of variables
   @end table
   
   @itemize @bullet
   \BJP
   @item
   $B2C72B?9`<0$rB?9`<0%j%9%H$KJQ49$9$k(B.
   @item
   @code{p1 e1+...+pm em} $B$O(B @code{[p1,...,pm]} $B$KJQ49$5$l$k(B.
   @item
   $B=PNO%j%9%H$ND9$5$O(B, @code{poly} $B$K4^$^$l$kI8=`4pDl$N:GBg%$%s%G%C%/%9$H$J$k(B.
   \E
   \BEG
   @item
   This function converts a module polynomial into a list of polynomials.
   @item
   @code{p1 e1+...+pm em} is converted into @code{[p1,...,pm]}.
   @item
   The length of the output list is equal to the largest index among those of the standard bases
   containd in @code{poly}.
   \E
   @end itemize
   
   @example
   [2126] dp_ord([0,0])$
   [2127] D=(1)*<<2,0,0:1>>+(1)*<<0,2,0:1>>+(1)*<<1,0,0:2>>+(1)*<<0,1,0:3>>
   +(-1)*<<0,0,1:3>>$
   [2128] dpm_dtol(D,[x,y,z]);
   [x^2+y^2,x,y-z]
   @end example
   
   @table @t
   \JP @item $B;2>H(B
   \EG @item References
   @fref{dpm_ltod},
   @fref{dp_ord}.
   @end table
   
 \JP @node dp_dtop,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B  \JP @node dp_dtop,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
 \EG @node dp_dtop,,, Functions for Groebner basis computation  \EG @node dp_dtop,,, Functions for Groebner basis computation
 @subsection @code{dp_dtop}  @subsection @code{dp_dtop}
Line 3232  u4^2+(6*u3+2*u2+6*u1-2)*u4+9*u3^2+(6*u2+18*u1-6)*u3+u2
Line 3546  u4^2+(6*u3+2*u2+6*u1-2)*u4+9*u3^2+(6*u2+18*u1-6)*u3+u2
 @fref{p_nf p_nf_mod p_true_nf p_true_nf_mod}.  @fref{p_nf p_nf_mod p_true_nf p_true_nf_mod}.
 @end table  @end table
   
   \JP @node dpm_nf dpm_nf_and_quotient,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
   \EG @node dpm_nf dpm_nf_and_quotient,,, Functions for Groebner basis computation
   @subsection @code{dpm_nf}, @code{dpm_nf_and_quotient}
   @findex dpm_nf
   @findex dpm_nf_and_quotient
   
   @table @t
   @item dpm_nf([@var{indexlist},]@var{dpoly},@var{dpolyarray},@var{fullreduce})
   \JP :: $B2C72B?9`<0$N@55,7A$r5a$a$k(B. ($B7k2L$ODj?tG\$5$l$F$$$k2DG=@-$"$j(B)
   
   \BEG
   :: Computes the normal form of a module polynomial.
   (The result may be multiplied by a constant in the ground field.)
   \E
   @item dpm_nf_and_quotient([@var{indexlist},]@var{dpoly},@var{dpolyarray})
   \JP :: $B2C72B?9`<0$N@55,7A$H>&$r5a$a$k(B.
   \BEG
   :: Computes the normal form of a module polynomial and the quotient.
   \E
   @end table
   
   @table @var
   @item return
   \JP @code{dpm_nf()} : $B2C72B?9`<0(B, @code{dpm_nf_and_quotient()} : $B%j%9%H(B
   \EG @code{dpm_nf()} : module polynomial, @code{dpm_nf_and_quotient()} : list
   @item indexlist
   \JP $B%j%9%H(B
   \EG list
   @item dpoly
   \JP $B2C72B?9`<0(B
   \EG module polynomial
   @item dpolyarray
   \JP $BG[Ns(B
   \EG array of module polynomial
   @end table
   
   @itemize @bullet
   \BJP
   @item
   $B2C72B?9`<0(B @var{dpoly} $B$N@55,7A$r5a$a$k(B.
   @item
   $B7k2L$KM-M}?t(B, $BM-M}<0$,4^$^$l$k$N$rHr$1$k$?$a(B, @code{dpm_nf()} $B$O(B
   $B??$NCM$NDj?tG\$NCM$rJV$9(B.
   @item
   @var{dpolyarray} $B$O2C72B?9`<0$rMWAG$H$9$k%Y%/%H%k(B,
   @var{indexlist} $B$O@55,2=7W;;$KMQ$$$k(B @var{dpolyarray} $B$NMWAG$N%$%s%G%C%/%9(B
   @item
   @var{indexlist} $B$,M?$($i$l$F$$$k>l9g(B, @var{dpolyarray} $B$NCf$G(B, @var{indexlist} $B$G;XDj$5$l$?$b$N$N$_$,(B, $BA0$NJ}$+$iM%@hE*$K;H$o$l$k(B.
   @var{indexlist} $B$,M?$($i$l$F$$$J$$>l9g$K$O(B, @var{dpolyarray} $B$NCf$NA4$F$NB?9`<0$,A0$NJ}$+$iM%@hE*$K;H$o$l$k(B.
   @item
   @code{dpm_nf_and_quotient()} $B$O(B,
   @code{[@var{nm},@var{dn},@var{quo}]} $B$J$k7A$N%j%9%H$rJV$9(B.
   $B$?$@$7(B, @var{nm} $B$O78?t$KJ,?t$r4^$^$J$$2C72B?9`<0(B, @var{dn} $B$O(B
   $B?t$^$?$OB?9`<0$G(B @var{nm}/@var{dn} $B$,??$NCM$H$J$k(B.
   @var{quo} $B$O=|;;$N>&$rI=$9G[Ns$G(B, @var{dn}@var{dpoly}=@var{nm}+@var{quo[0]dpolyarray[0]+...} $B$,@.$jN)$D(B.
   $B$N%j%9%H(B.
   @item
   @var{fullreduce} $B$,(B 0 $B$G$J$$$H$-A4$F$N9`$KBP$7$F4JLs$r9T$&(B. @var{fullreduce}
   $B$,(B 0 $B$N$H$-F,9`$N$_$KBP$7$F4JLs$r9T$&(B.
   \E
   \BEG
   @item
   Computes the normal form of a module polynomial.
   @item
   The result of @code{dpm_nf()} may be multiplied by a constant in the
   ground field in order to make the result integral.
   @item
   @var{dpolyarray} is a vector whose components are module polynomials
   and @var{indexlist} is a list of indices which is used for the normal form
   computation.
   @item
   If @var{indexlist} is given, only the polynomials in @var{dpolyarray} specified in @var{indexlist}
   is used in the division. An index placed at the preceding position has priority to be selected.
   If @var{indexlist} is not given, all the polynomials in @var{dpolyarray} are used.
   @item
   @code{dpm_nf_and_quotient()} returns
   such a list as @code{[@var{nm},@var{dn},@var{quo}]}.
   Here @var{nm} is a module polynomial whose coefficients are integral
   in the ground field, @var{dn} is an integral element in the ground
   field and @var{nm}/@var{dn} is the true normal form.
   @var{quo} is an array containing the quotients of the division satisfying
   @var{dn}@var{dpoly}=@var{nm}+@var{quo[0]dpolyarray[0]+...}.
   @item
   When argument @var{fullreduce} has non-zero value,
   all terms are reduced. When it has value 0,
   only the head term is reduced.
   \E
   @end itemize
   
   @example
   [2126] dp_ord([1,0])$
   [2127] S=ltov([(1)*<<0,0,2,0:1>>+(1)*<<0,0,1,1:1>>+(1)*<<0,0,0,2:1>>
   +(-1)*<<3,0,0,0:2>>+(-1)*<<0,0,2,1:2>>+(-1)*<<0,0,1,2:2>>
   +(1)*<<3,0,1,0:3>>+(1)*<<3,0,0,1:3>>+(1)*<<0,0,2,2:3>>,
   (-1)*<<0,1,0,0:1>>+(-1)*<<0,0,1,0:1>>+(-1)*<<0,0,0,1:1>>
   +(-1)*<<3,0,0,0:3>>+(1)*<<0,1,1,1:3>>,(1)*<<0,1,0,0:2>>
   +(1)*<<0,0,1,0:2>>+(1)*<<0,0,0,1:2>>+(-1)*<<0,1,1,0:3>>
   +(-1)*<<0,1,0,1:3>>+(-1)*<<0,0,1,1:3>>])$
   [2128] U=dpm_sp(S[0],S[1]);
   (1)*<<0,0,3,0:1>>+(-1)*<<0,1,1,1:1>>+(1)*<<0,0,2,1:1>>
   +(-1)*<<0,1,0,2:1>>+(1)*<<3,1,0,0:2>>+(1)*<<0,1,2,1:2>>
   +(1)*<<0,1,1,2:2>>+(-1)*<<3,1,1,0:3>>+(1)*<<3,0,2,0:3>>
   +(-1)*<<3,1,0,1:3>>+(-1)*<<0,1,3,1:3>>+(-1)*<<0,1,2,2:3>>
   [2129] dpm_nf(U,S,1);
   0
   [2130] L=dpm_nf_and_quotient(U,S)$
   [2131] Q=L[2]$
   [2132] D=L[1]$
   [2133] D*U-(Q[1]*S[1]+Q[2]*S[2]);
   0
   @end example
   
   @table @t
   \JP @item $B;2>H(B
   \EG @item References
   @fref{dpm_sp},
   @fref{dp_ord}.
   @end table
   
   
 \JP @node dp_hm dp_ht dp_hc dp_rest,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B  \JP @node dp_hm dp_ht dp_hc dp_rest,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
 \EG @node dp_hm dp_ht dp_hc dp_rest,,, Functions for Groebner basis computation  \EG @node dp_hm dp_ht dp_hc dp_rest,,, Functions for Groebner basis computation
 @subsection @code{dp_hm}, @code{dp_ht}, @code{dp_hc}, @code{dp_rest}  @subsection @code{dp_hm}, @code{dp_ht}, @code{dp_hc}, @code{dp_rest}
Line 3306  The next equations hold for a distributed polynomial @
Line 3740  The next equations hold for a distributed polynomial @
 +(-490)*<<0,0,0>>  +(-490)*<<0,0,0>>
 @end example  @end example
   
   \JP @node dpm_hm dpm_ht dpm_hc dpm_hp dpm_rest,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
   \EG @node dpm_hm dpm_ht dpm_hc dpm_hp dpm_rest,,, Functions for Groebner basis computation
   @subsection @code{dpm_hm}, @code{dpm_ht}, @code{dpm_hc}, @code{dpm_hp}, @code{dpm_rest}
   @findex dpm_hm
   @findex dpm_ht
   @findex dpm_hc
   @findex dpm_hp
   @findex dpm_rest
   
   @table @t
   @item dpm_hm(@var{dpoly})
   \JP :: $B2C72B?9`<0$NF,C19`<0$r<h$j=P$9(B.
   \EG :: Gets the head monomial of a module polynomial.
   @item dpm_ht(@var{dpoly})
   \JP :: $B2C72B?9`<0$NF,9`$r<h$j=P$9(B.
   \EG :: Gets the head term of a module polynomial.
   @item dpm_hc(@var{dpoly})
   \JP :: $B2C72B?9`<0$NF,78?t$r<h$j=P$9(B.
   \EG :: Gets the head coefficient of a module polynomial.
   @item dpm_hp(@var{dpoly})
   \JP :: $B2C72B?9`<0$NF,0LCV$r<h$j=P$9(B.
   \EG :: Gets the head position of a module polynomial.
   @item dpm_rest(@var{dpoly})
   \JP :: $B2C72B?9`<0$NF,C19`<0$r<h$j=|$$$?;D$j$rJV$9(B.
   \EG :: Gets the remainder of a module polynomial where the head monomial is removed.
   @end table
   
   @table @var
   \BJP
   @item return
   @code{dp_hm()}, @code{dp_ht()}, @code{dp_rest()} : $B2C72B?9`<0(B,
   @code{dp_hc()} : $B?t$^$?$OB?9`<0(B
   @item dpoly
   $B2C72B?9`<0(B
   \E
   \BEG
   @item return
   @code{dpm_hm()}, @code{dpm_ht()}, @code{dpm_rest()} : module polynomial
   @code{dpm_hc()} : monomial
   @item dpoly
   distributed polynomial
   \E
   @end table
   
   @itemize @bullet
   \BJP
   @item
   $B$3$l$i$O(B, $B2C72B?9`<0$N3FItJ,$r<h$j=P$9$?$a$NH!?t$G$"$k(B.
   @item
   @code{dpm_hc()} $B$O(B, @code{dpm_hm()} $B$N(B, $BI8=`4pDl$K4X$9$k78?t$G$"$kC19`<0$rJV$9(B.
   $B%9%+%i!<78?t$r<h$j=P$9$K$O(B, $B$5$i$K(B @code{dp_hc()} $B$r<B9T$9$k(B.
   @item
   @code{dpm_hp()} $B$O(B, $BF,2C72C19`<0$K4^$^$l$kI8=`4pDl$N%$%s%G%C%/%9$rJV$9(B.
   \E
   \BEG
   @item
   These are used to get various parts of a module polynomial.
   @item
   @code{dpm_hc()} returns the monomial that is the coefficient of @code{dpm_hm()} with respect to the
   standard base.
   For getting its scalar coefficient apply @code{dp_hc()}.
   @item
   @code{dpm_hp()} returns the index of the standard base conteind in the head module monomial.
   \E
   @end itemize
   
   @example
   [2126] dp_ord([1,0]);
   [1,0]
   [2127] F=2*<<1,2,0:2>>-3*<<1,0,2:3>>+<<2,1,0:2>>;
   (1)*<<2,1,0:2>>+(2)*<<1,2,0:2>>+(-3)*<<1,0,2:3>>
   [2128] M=dpm_hm(F);
   (1)*<<2,1,0:2>>
   [2129] C=dpm_hc(F);
   (1)*<<2,1,0>>
   [2130] R=dpm_rest(F);
   (2)*<<1,2,0:2>>+(-3)*<<1,0,2:3>>
   [2131] dpm_hp(F);
   2
   @end example
   
   
 \JP @node dp_td dp_sugar,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B  \JP @node dp_td dp_sugar,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
 \EG @node dp_td dp_sugar,,, Functions for Groebner basis computation  \EG @node dp_td dp_sugar,,, Functions for Groebner basis computation
 @subsection @code{dp_td}, @code{dp_sugar}  @subsection @code{dp_td}, @code{dp_sugar}
Line 3467  Used for finding candidate terms at reduction of polyn
Line 3983  Used for finding candidate terms at reduction of polyn
 @fref{dp_red dp_red_mod}.  @fref{dp_red dp_red_mod}.
 @end table  @end table
   
   \JP @node dpm_redble,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
   \EG @node dpm_redble,,, Functions for Groebner basis computation
   @subsection @code{dpm_redble}
   @findex dpm_redble
   
   @table @t
   @item dpm_redble(@var{dpoly1},@var{dpoly2})
   \JP :: $BF,9`$I$&$7$,@0=|2DG=$+$I$&$+D4$Y$k(B.
   \EG :: Checks whether one head term is divisible by the other head term.
   @end table
   
   @table @var
   @item return
   \JP $B@0?t(B
   \EG integer
   @item dpoly1  dpoly2
   \JP $B2C72B?9`<0(B
   \EG module polynomial
   @end table
   
   @itemize @bullet
   \BJP
   @item
   @var{dpoly1} $B$NF,9`$,(B @var{dpoly2} $B$NF,9`$G3d$j@Z$l$l$P(B 1, $B3d$j@Z$l$J$1$l$P(B
   0 $B$rJV$9(B.
   @item
   $BB?9`<0$N4JLs$r9T$&:](B, $B$I$N9`$r4JLs$G$-$k$+$rC5$9$N$KMQ$$$k(B.
   \E
   \BEG
   @item
   Returns 1 if the head term of @var{dpoly2} divides the head term of
   @var{dpoly1}; otherwise 0.
   @item
   Used for finding candidate terms at reduction of polynomials.
   \E
   @end itemize
   
 \JP @node dp_subd,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B  \JP @node dp_subd,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
 \EG @node dp_subd,,, Functions for Groebner basis computation  \EG @node dp_subd,,, Functions for Groebner basis computation
 @subsection @code{dp_subd}  @subsection @code{dp_subd}
Line 3834  make the result integral.
Line 4387  make the result integral.
 \EG @item References  \EG @item References
 @fref{dp_mod dp_rat}.  @fref{dp_mod dp_rat}.
 @end table  @end table
   
   \JP @node dpm_sp,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
   \EG @node dmp_sp,,, Functions for Groebner basis computation
   @subsection @code{dpm_sp}
   @findex dpm_sp
   
   @table @t
   @item dpm_sp(@var{dpoly1},@var{dpoly2}[|coef=1])
   \JP :: S-$BB?9`<0$N7W;;(B
   \EG :: Computation of an S-polynomial
   @end table
   
   @table @var
   @item return
   \JP $B2C72B?9`<0$^$?$O%j%9%H(B
   \EG module polynomial or list
   @item dpoly1  dpoly2
   \JP $B2C72B?9`<0(B
   \EG module polynomial
   \JP $BJ,;6I=8=B?9`<0(B
   @end table
   
   @itemize @bullet
   \BJP
   @item
   @var{dpoly1}, @var{dpoly2} $B$N(B S-$BB?9`<0$r7W;;$9$k(B.
   @item
   $B%*%W%7%g%s(B @var{coef=1} $B$,;XDj$5$l$F$$$k>l9g(B, @code{[S,t1,t2]} $B$J$k%j%9%H$rJV$9(B.
   $B$3$3$G(B, @code{t1}, @code{t2} $B$O(BS-$BB?9`<0$r:n$k:]$N78?tC19`<0$G(B @code{S=t1 dpoly1-t2 dpoly2}
   $B$rK~$?$9(B.
   \E
   \BEG
   @item
   This function computes the S-polynomial of @var{dpoly1} and @var{dpoly2}.
   @item
   If an option @var{coef=1} is specified, it returns a list @code{[S,t1,t2]},
   where @code{S} is the S-polynmial and @code{t1}, @code{t2} are monomials satisfying @code{S=t1 dpoly1-t2 dpoly2}.
   \E
   @end itemize
   
 \JP @node p_nf p_nf_mod p_true_nf p_true_nf_mod,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B  \JP @node p_nf p_nf_mod p_true_nf p_true_nf_mod,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
 \EG @node p_nf p_nf_mod p_true_nf p_true_nf_mod,,, Functions for Groebner basis computation  \EG @node p_nf p_nf_mod p_true_nf p_true_nf_mod,,, Functions for Groebner basis computation
 @subsection @code{p_nf}, @code{p_nf_mod}, @code{p_true_nf}, @code{p_true_nf_mod}  @subsection @code{p_nf}, @code{p_nf_mod}, @code{p_true_nf}, @code{p_true_nf_mod}

Legend:
Removed from v.1.21  
changed lines
  Added in v.1.23

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>