[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.6 and 1.13

version 1.6, 2003/04/20 09:55:18 version 1.13, 2004/09/13 09:23:30
Line 1 
Line 1 
 @comment $OpenXM: OpenXM/src/asir-doc/parts/groebner.texi,v 1.5 2003/04/20 08:01:25 noro Exp $  @comment $OpenXM: OpenXM/src/asir-doc/parts/groebner.texi,v 1.12 2003/12/27 11:52:07 takayama 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 15 
Line 15 
 * $B4pK\E*$JH!?t(B::  * $B4pK\E*$JH!?t(B::
 * $B7W;;$*$h$SI=<($N@)8f(B::  * $B7W;;$*$h$SI=<($N@)8f(B::
 * $B9`=g=x$N@_Dj(B::  * $B9`=g=x$N@_Dj(B::
   * Weight::
 * $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::
Line 26 
Line 27 
 * Fundamental functions::  * Fundamental functions::
 * Controlling Groebner basis computations::  * Controlling Groebner basis computations::
 * Setting term orderings::  * Setting term orderings::
   * Weight::
 * Groebner basis computation with rational function coefficients::  * Groebner basis computation with rational function coefficients::
 * Change of ordering::  * Change of ordering::
 * Weyl algebra::  * Weyl algebra::
Line 449  If `on', various informations during a Groebner basis 
Line 451  If `on', various informations during a Groebner basis 
 displayed.  displayed.
 \E  \E
   
   @item PrintShort
   \JP on $B$G!"(BPrint $B$,(B off $B$N>l9g(B, $B%0%l%V%J4pDl7W;;$NESCf$N>pJs$rC;=L7A$GI=<($9$k(B.
   \BEG
   If `on' and Print is `off', short information during a Groebner basis computation is
   displayed.
   \E
   
 @item Stat  @item Stat
 \BJP  \BJP
 on $B$G(B @code{Print} $B$,(B off $B$J$i$P(B, @code{Print} $B$,(B on $B$N$H$-I=<($5(B  on $B$G(B @code{Print} $B$,(B off $B$J$i$P(B, @code{Print} $B$,(B on $B$N$H$-I=<($5(B
Line 471  is shown after every normal computation.  After comlet
Line 480  is shown after every normal computation.  After comlet
 computation the maximal value among the sums is shown.  computation the maximal value among the sums is shown.
 \E  \E
   
 @item Multiple  @item Content
   @itemx Multiple
 \BJP  \BJP
 0 $B$G$J$$@0?t$N;~(B, $BM-M}?t>e$N@55,7A7W;;$K$*$$$F(B, $B78?t$N%S%C%HD9$NOB$,(B  0 $B$G$J$$M-M}?t$N;~(B, $BM-M}?t>e$N@55,7A7W;;$K$*$$$F(B, $B78?t$N%S%C%HD9$NOB$,(B
 @code{Multiple} $BG\$K$J$k$4$H$K78?tA4BN$N(B GCD $B$,7W;;$5$l(B, $B$=$N(B GCD $B$G(B  @code{Content} $BG\$K$J$k$4$H$K78?tA4BN$N(B GCD $B$,7W;;$5$l(B, $B$=$N(B GCD $B$G(B
 $B3d$C$?B?9`<0$r4JLs$9$k(B. @code{Multiple} $B$,(B 1 $B$J$i$P(B, $B4JLs$9$k$4$H$K(B  $B3d$C$?B?9`<0$r4JLs$9$k(B. @code{Content} $B$,(B 1 $B$J$i$P(B, $B4JLs$9$k$4$H$K(B
 GCD $B7W;;$,9T$o$l0lHL$K$O8zN($,0-$/$J$k$,(B, @code{Multiple} $B$r(B 2 $BDxEY(B  GCD $B7W;;$,9T$o$l0lHL$K$O8zN($,0-$/$J$k$,(B, @code{Content} $B$r(B 2 $BDxEY(B
 $B$H$9$k$H(B, $B5pBg$J@0?t$,78?t$K8=$l$k>l9g(B, $B8zN($,NI$/$J$k>l9g$,$"$k(B.  $B$H$9$k$H(B, $B5pBg$J@0?t$,78?t$K8=$l$k>l9g(B, $B8zN($,NI$/$J$k>l9g$,$"$k(B.
   backward compatibility $B$N$?$a!"(B@code{Multiple} $B$G@0?tCM$r;XDj$G$-$k(B.
 \E  \E
 \BEG  \BEG
 If a non-zero integer, in a normal form computation  If a non-zero rational number, in a normal form computation
 over the rationals, the integer content of the polynomial being  over the rationals, the integer content of the polynomial being
 reduced is removed when its magnitude becomes @code{Multiple} times  reduced is removed when its magnitude becomes @code{Content} times
 larger than a registered value, which is set to the magnitude of the  larger than a registered value, which is set to the magnitude of the
 input polynomial. After each content removal the registered value is  input polynomial. After each content removal the registered value is
 set to the magnitude of the resulting polynomial. @code{Multiple} is  set to the magnitude of the resulting polynomial. @code{Content} is
 equal to 1, the simiplification is done after every normal form computation.  equal to 1, the simiplification is done after every normal form computation.
 It is empirically known that it is often efficient to set @code{Multiple} to 2  It is empirically known that it is often efficient to set @code{Content} to 2
 for the case where large integers appear during the computation.  for the case where large integers appear during the computation.
   An integer value can be set by the keyword @code{Multiple} for
   backward compatibility.
 \E  \E
   
 @item Demand  @item Demand
Line 1044  beforehand, and some heuristic trial may be inevitable
Line 1057  beforehand, and some heuristic trial may be inevitable
 \E  \E
   
 \BJP  \BJP
   @node Weight ,,, $B%0%l%V%J4pDl$N7W;;(B
   @section Weight
   \E
   \BEG
   @node Weight,,, Groebner basis computation
   @section Weight
   \E
   \BJP
   $BA0@a$G>R2p$7$?9`=g=x$O(B, $B3FJQ?t$K(B weight ($B=E$_(B) $B$r@_Dj$9$k$3$H$G(B
   $B$h$j0lHLE*$J$b$N$H$J$k(B.
   \E
   \BEG
   Term orders introduced in the previous section can be generalized
   by setting a weight for each variable.
   \E
   @example
   [0] dp_td(<<1,1,1>>);
   3
   [1] dp_set_weight([1,2,3])$
   [2] dp_td(<<1,1,1>>);
   6
   @end example
   \BJP
   $BC19`<0$NA4<!?t$r7W;;$9$k:](B, $B%G%U%)%k%H$G$O(B
   $B3FJQ?t$N;X?t$NOB$rA4<!?t$H$9$k(B. $B$3$l$O3FJQ?t$N(B weight $B$r(B 1 $B$H(B
   $B9M$($F$$$k$3$H$KAjEv$9$k(B. $B$3$NNc$G$O(B, $BBh0l(B, $BBhFs(B, $BBh;0JQ?t$N(B
   weight $B$r$=$l$>$l(B 1,2,3 $B$H;XDj$7$F$$$k(B. $B$3$N$?$a(B, @code{<<1,1,1>>}
   $B$NA4<!?t(B ($B0J2<$G$O$3$l$rC19`<0$N(B weight $B$H8F$V(B) $B$,(B @code{1*1+1*2+1*3=6} $B$H$J$k(B.
   weight $B$r@_Dj$9$k$3$H$G(B, $BF1$89`=g=x7?$N$b$H$G0[$J$k9`=g=x$,Dj5A$G$-$k(B.
   $BNc$($P(B, weight $B$r$&$^$/@_Dj$9$k$3$H$G(B, $BB?9`<0$r(B weighted homogeneous
   $B$K$9$k$3$H$,$G$-$k>l9g$,$"$k(B.
   \E
   \BEG
   By default, the total degree of a monomial is equal to
   the sum of all exponents. This means that the weight for each variable
   is set to 1.
   In this example, the weights for the first, the second and the third
   variable are set to 1, 2 and 3 respectively.
   Therefore the total degree of @code{<<1,1,1>>} under this weight,
   which is called the weight of the monomial, is @code{1*1+1*2+1*3=6}.
   By setting weights, different term orders can be set under a term
   order type. For example, a polynomial can be made weighted homogeneous
   by setting an appropriate weight.
   \E
   
   \BJP
   $B3FJQ?t$KBP$9$k(B weight $B$r$^$H$a$?$b$N$r(B weight vector $B$H8F$V(B.
   $B$9$Y$F$N@.J,$,@5$G$"$j(B, $B%0%l%V%J4pDl7W;;$K$*$$$F(B, $BA4<!?t$N(B
   $BBe$o$j$KMQ$$$i$l$k$b$N$rFC$K(B sugar weight $B$H8F$V$3$H$K$9$k(B.
   sugar strategy $B$K$*$$$F(B, $BA4<!?t$NBe$o$j$K;H$o$l$k$+$i$G$"$k(B.
   $B0lJ}$G(B, $B3F@.J,$,I,$:$7$b@5$H$O8B$i$J$$(B weight vector $B$O(B,
   sugar weight $B$H$7$F@_Dj$9$k$3$H$O$G$-$J$$$,(B, $B9`=g=x$N0lHL2=$K$O(B
   $BM-MQ$G$"$k(B. $B$3$l$i$O(B, $B9TNs$K$h$k9`=g=x$N@_Dj$K$9$G$K8=$l$F(B
   $B$$$k(B. $B$9$J$o$A(B, $B9`=g=x$rDj5A$9$k9TNs$N3F9T$,(B, $B0l$D$N(B weight vector
   $B$H8+$J$5$l$k(B. $B$^$?(B, $B%V%m%C%/=g=x$O(B, $B3F%V%m%C%/$N(B
   $BJQ?t$KBP1~$9$k@.J,$N$_(B 1 $B$GB>$O(B 0 $B$N(B weight vector $B$K$h$kHf3S$r(B
   $B:G=i$K9T$C$F$+$i(B, $B3F%V%m%C%/Kh$N(B tie breaking $B$r9T$&$3$H$KAjEv$9$k(B.
   \E
   
   \BEG
   A list of weights for all variables is called a weight vector.
   A weight vector is called a sugar weight vector if
   its elements are all positive and it is used for computing
   a weighted total degree of a monomial, because such a weight
   is used instead of total degree in sugar strategy.
   On the other hand, a weight vector whose elements are not necessarily
   positive cannot be set as a sugar weight, but it is useful for
   generalizing term order. In fact, such a weight vector already
   appeared in a matrix order. That is, each row of a matrix defining
   a term order is regarded as a weight vector. A block order
   is also considered as a refinement of comparison by weight vectors.
   It compares two terms by using a weight vector whose elements
   corresponding to variables in a block is 1 and 0 otherwise,
   then it applies a tie breaker.
   
   \E
   
   \BJP
 @node $BM-M}<0$r78?t$H$9$k%0%l%V%J4pDl7W;;(B,,, $B%0%l%V%J4pDl$N7W;;(B  @node $BM-M}<0$r78?t$H$9$k%0%l%V%J4pDl7W;;(B,,, $B%0%l%V%J4pDl$N7W;;(B
 @section $BM-M}<0$r78?t$H$9$k%0%l%V%J4pDl7W;;(B  @section $BM-M}<0$r78?t$H$9$k%0%l%V%J4pDl7W;;(B
 \E  \E
Line 1343  Computation of the global b function is implemented as
Line 1434  Computation of the global b function is implemented as
 * lex_hensel_gsl tolex_gsl tolex_gsl_d::  * lex_hensel_gsl tolex_gsl tolex_gsl_d::
 * primadec primedec::  * primadec primedec::
 * primedec_mod::  * primedec_mod::
 * bfunction generic_bfct::  * bfunction bfct generic_bfct ann ann0::
 @end menu  @end menu
   
 \JP @node gr hgr gr_mod,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B  \JP @node gr hgr gr_mod,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
Line 1401  strategy $B$K$h$k7W;;(B, @code{hgr()} $B$O(B trace
Line 1492  strategy $B$K$h$k7W;;(B, @code{hgr()} $B$O(B trace
 @item  @item
 @code{dgr()} $B$GI=<($5$l$k;~4V$O(B, $B$3$NH!?t$,<B9T$5$l$F$$$k%W%m%;%9$G$N(B  @code{dgr()} $B$GI=<($5$l$k;~4V$O(B, $B$3$NH!?t$,<B9T$5$l$F$$$k%W%m%;%9$G$N(B
 CPU $B;~4V$G$"$j(B, $B$3$NH!?t$N>l9g$O$[$H$s$IDL?.$N$?$a$N;~4V$G$"$k(B.  CPU $B;~4V$G$"$j(B, $B$3$NH!?t$N>l9g$O$[$H$s$IDL?.$N$?$a$N;~4V$G$"$k(B.
   @item
   $BB?9`<0%j%9%H(B @var{plist} $B$NMWAG$,J,;6I=8=B?9`<0$N>l9g$O(B
   $B7k2L$bJ,;6I=8=B?9`<0$N%j%9%H$G$"$k(B.
   $B$3$N>l9g(B, $B0z?t$NJ,;6B?9`<0$OM?$($i$l$?=g=x$K=>$$(B @code{dp_sort} $B$G(B
   $B%=!<%H$5$l$F$+$i7W;;$5$l$k(B.
   $BB?9`<0%j%9%H$NMWAG$,J,;6I=8=B?9`<0$N>l9g$b(B
   $BJQ?t$N?tJ,$NITDj85$N%j%9%H$r(B @var{vlist} $B0z?t$H$7$FM?$($J$$$H$$$1$J$$(B
   ($B%@%_!<(B).
 \E  \E
 \BEG  \BEG
 @item  @item
Line 1429  Therefore this function is useful to reduce the actual
Line 1528  Therefore this function is useful to reduce the actual
 The CPU time shown after an exection of @code{dgr()} indicates  The CPU time shown after an exection of @code{dgr()} indicates
 that of the master process, and most of the time corresponds to the time  that of the master process, and most of the time corresponds to the time
 for communication.  for communication.
   @item
   When the elements of @var{plist} are distributed polynomials,
   the result is also a list of distributed polynomials.
   In this case, firstly  the elements of @var{plist} is sorted by @code{dp_sort}
   and the Grobner basis computation is started.
   Variables must be given in @var{vlist} even in this case
   (these variables are dummy).
 \E  \E
 @end itemize  @end itemize
   
Line 1679  processes.
Line 1785  processes.
 @item lex_hensel_gsl(@var{plist},@var{vlist1},@var{order},@var{vlist2},@var{homo})  @item lex_hensel_gsl(@var{plist},@var{vlist1},@var{order},@var{vlist2},@var{homo})
 \JP :: GSL $B7A<0$N%$%G%"%k4pDl$N7W;;(B  \JP :: GSL $B7A<0$N%$%G%"%k4pDl$N7W;;(B
 \EG ::Computation of an GSL form ideal basis  \EG ::Computation of an GSL form ideal basis
 @item tolex_gsl(@var{plist},@var{vlist1},@var{order},@var{vlist2},@var{homo})  @item tolex_gsl(@var{plist},@var{vlist1},@var{order},@var{vlist2})
 @itemx tolex_gsl_d(@var{plist},@var{vlist1},@var{order},@var{vlist2},@var{homo},@var{procs})  @itemx tolex_gsl_d(@var{plist},@var{vlist1},@var{order},@var{vlist2},@var{procs})
 \JP :: $B%0%l%V%J4pDl$rF~NO$H$9$k(B, GSL $B7A<0$N%$%G%"%k4pDl$N7W;;(B  \JP :: $B%0%l%V%J4pDl$rF~NO$H$9$k(B, GSL $B7A<0$N%$%G%"%k4pDl$N7W;;(B
 \EG :: Computation of an GSL form ideal basis stating from a Groebner basis  \EG :: Computation of an GSL form ideal basis stating from a Groebner basis
 @end table  @end table
Line 2150  except for lack of the argument for controlling homoge
Line 2256  except for lack of the argument for controlling homoge
   
 @table @t  @table @t
 @item dp_gr_flags([@var{list}])  @item dp_gr_flags([@var{list}])
 @itemx dp_gr_print([@var{0|1}])  @itemx dp_gr_print([@var{i}])
 \JP :: $B7W;;$*$h$SI=<(MQ%Q%i%a%?$N@_Dj(B, $B;2>H(B  \JP :: $B7W;;$*$h$SI=<(MQ%Q%i%a%?$N@_Dj(B, $B;2>H(B
 \BEG :: Set and show various parameters for cotrolling computations  \BEG :: Set and show various parameters for cotrolling computations
 and showing informations.  and showing informations.
Line 2164  and showing informations.
Line 2270  and showing informations.
 @item list  @item list
 \JP $B%j%9%H(B  \JP $B%j%9%H(B
 \EG list  \EG list
   @item i
   \JP $B@0?t(B
   \EG integer
 @end table  @end table
   
 @itemize @bullet  @itemize @bullet
Line 2177  and showing informations.
Line 2286  and showing informations.
 $B0z?t$O(B, @code{["Print",1,"NoSugar",1,...]} $B$J$k7A$N%j%9%H$G(B, $B:8$+$i=g$K(B  $B0z?t$O(B, @code{["Print",1,"NoSugar",1,...]} $B$J$k7A$N%j%9%H$G(B, $B:8$+$i=g$K(B
 $B@_Dj$5$l$k(B. $B%Q%i%a%?L>$OJ8;zNs$GM?$($kI,MW$,$"$k(B.  $B@_Dj$5$l$k(B. $B%Q%i%a%?L>$OJ8;zNs$GM?$($kI,MW$,$"$k(B.
 @item  @item
 @code{dp_gr_print()} $B$O(B, $BFC$K%Q%i%a%?(B @code{Print} $B$NCM$rD>@\@_Dj(B, $B;2>H(B  @code{dp_gr_print()} $B$O(B, $BFC$K%Q%i%a%?(B @code{Print}, @code{PrintShort} $B$NCM$rD>@\@_Dj(B, $B;2>H(B
 $B$G$-$k(B. $B$3$l$O(B, @code{dp_gr_main()} $B$J$I$r%5%V%k!<%A%s$H$7$FMQ$$$k%f!<%6(B  $B$G$-$k(B. $B@_Dj$5$l$kCM$O<!$NDL$j$G$"$k!#(B
 $BH!?t$K$*$$$F(B, @code{Print} $B$NCM$r8+$F(B, $B$=$N%5%V%k!<%A%s$,Cf4V>pJs$NI=<((B  @table @var
   @item i=0
   @code{Print=0}, @code{PrintShort=0}
   @item i=1
   @code{Print=1}, @code{PrintShort=0}
   @item i=2
   @code{Print=0}, @code{PrintShort=1}
   @end table
   $B$3$l$O(B, @code{dp_gr_main()} $B$J$I$r%5%V%k!<%A%s$H$7$FMQ$$$k%f!<%6(B
   $BH!?t$K$*$$$F(B, $B$=$N%5%V%k!<%A%s$,Cf4V>pJs$NI=<((B
 $B$r9T$&:]$K(B, $B?WB.$K%U%i%0$r8+$k$3$H$,$G$-$k$h$&$KMQ0U$5$l$F$$$k(B.  $B$r9T$&:]$K(B, $B?WB.$K%U%i%0$r8+$k$3$H$,$G$-$k$h$&$KMQ0U$5$l$F$$$k(B.
 \E  \E
 \BEG  \BEG
Line 2194  Arguments must be specified as a list such as
Line 2312  Arguments must be specified as a list such as
 strings.  strings.
 @item  @item
 @code{dp_gr_print()} is used to set and show the value of a parameter  @code{dp_gr_print()} is used to set and show the value of a parameter
 @code{Print}. This functions is prepared to get quickly the value of  @code{Print} and @code{PrintShort}.
 @code{Print} when a user defined function calling @code{dp_gr_main()} etc.  @table @var
   @item i=0
   @code{Print=0}, @code{PrintShort=0}
   @item i=1
   @code{Print=1}, @code{PrintShort=0}
   @item i=2
   @code{Print=0}, @code{PrintShort=1}
   @end table
   This functions is prepared to get quickly the value
   when a user defined function calling @code{dp_gr_main()} etc.
 uses the value as a flag for showing intermediate informations.  uses the value as a flag for showing intermediate informations.
 \E  \E
 @end itemize  @end itemize
Line 3831  if an input ideal is not radical.
Line 3958  if an input ideal is not radical.
 $BItJ,$r7W;;$9$k$3$H$K$h$k(B early termination $B$r9T$&(B. $B0lHL$K(B,  $BItJ,$r7W;;$9$k$3$H$K$h$k(B early termination $B$r9T$&(B. $B0lHL$K(B,
 $B%$%G%"%k$N<!85$,9b$$>l9g$KM-8z$@$,(B, 0 $B<!85$N>l9g$J$I(B, $B<!85$,>.$5$$(B  $B%$%G%"%k$N<!85$,9b$$>l9g$KM-8z$@$,(B, 0 $B<!85$N>l9g$J$I(B, $B<!85$,>.$5$$(B
 $B>l9g$K$O(B overhead $B$,Bg$-$$>l9g$,$"$k(B.  $B>l9g$K$O(B overhead $B$,Bg$-$$>l9g$,$"$k(B.
   @item
   $B7W;;ESCf$GFbIt>pJs$r8+$?$$>l9g$K$O!"(B
   $BA0$b$C$F(B @code{dp_gr_print(2)} $B$r<B9T$7$F$*$1$P$h$$(B.
 \E  \E
 \BEG  \BEG
 @item  @item
Line 3855  is tried by computing the intersection of obtained com
Line 3985  is tried by computing the intersection of obtained com
 incrementally. In general, this strategy is useful when the krull  incrementally. In general, this strategy is useful when the krull
 dimension of the ideal is high, but it may add some overhead  dimension of the ideal is high, but it may add some overhead
 if the dimension is small.  if the dimension is small.
   @item
   If you want to see internal information during the computation,
   execute @code{dp_gr_print(2)} in advance.
 \E  \E
 @end itemize  @end itemize
   
Line 3876  if the dimension is small.
Line 4009  if the dimension is small.
 @fref{modfctr},  @fref{modfctr},
 @fref{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},  @fref{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},
 \JP @fref{$B9`=g=x$N@_Dj(B}.  \JP @fref{$B9`=g=x$N@_Dj(B}.
 \EG @fref{Setting term orderings}.  \EG @fref{Setting term orderings},
   @fref{dp_gr_flags dp_gr_print}.
 @end table  @end table
   
 \JP @node bfunction generic_bfct,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B  \JP @node bfunction bfct generic_bfct ann ann0,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
 \EG @node bfunction generic_bfct,,, Functions for Groebner basis computation  \EG @node bfunction bfct generic_bfct ann ann0,,, Functions for Groebner basis computation
 @subsection @code{bfunction}, @code{generic_bfct}  @subsection @code{bfunction}, @code{bfct}, @code{generic_bfct}, @code{ann}, @code{ann0}
 @findex bfunction  @findex bfunction
   @findex bfct
 @findex generic_bfct  @findex generic_bfct
   @findex ann
   @findex ann0
   
 @table @t  @table @t
 @item bfunction(@var{f})  @item bfunction(@var{f})
 @item generic_bfct(@var{plist},@var{vlist},@var{dvlist},@var{weight})  @itemx bfct(@var{f})
 \JP :: b $B4X?t$N7W;;(B  @itemx generic_bfct(@var{plist},@var{vlist},@var{dvlist},@var{weight})
 \EG :: Computes the global b function of a polynomial or an ideal  \JP :: @var{b} $B4X?t$N7W;;(B
   \EG :: Computes the global @var{b} function of a polynomial or an ideal
   @item ann(@var{f})
   @itemx ann0(@var{f})
   \JP :: $BB?9`<0$N%Y%-$N(B annihilator $B$N7W;;(B
   \EG :: Computes the annihilator of a power of polynomial
 @end table  @end table
   
 @table @var  @table @var
 @item return  @item return
 @itemx f  \JP $BB?9`<0$^$?$O%j%9%H(B
   \EG polynomial or list
   @item f
 \JP $BB?9`<0(B  \JP $BB?9`<0(B
 \EG polynomial  \EG polynomial
 @item plist  @item plist
Line 3907  if the dimension is small.
Line 4052  if the dimension is small.
 @itemize @bullet  @itemize @bullet
 \BJP  \BJP
 @item @samp{bfct} $B$GDj5A$5$l$F$$$k(B.  @item @samp{bfct} $B$GDj5A$5$l$F$$$k(B.
 @item @code{bfunction(@var{f})} $B$OB?9`<0(B @var{f} $B$N(B global b $B4X?t(B @code{b(s)} $B$r(B  @item @code{bfunction(@var{f})}, @code{bfct(@var{f})} $B$OB?9`<0(B @var{f} $B$N(B global @var{b} $B4X?t(B @code{b(s)} $B$r(B
 $B7W;;$9$k(B. @code{b(s)} $B$O(B, Weyl $BBe?t(B @code{D} $B>e$N0lJQ?tB?9`<04D(B @code{D[s]}  $B7W;;$9$k(B. @code{b(s)} $B$O(B, Weyl $BBe?t(B @code{D} $B>e$N0lJQ?tB?9`<04D(B @code{D[s]}
 $B$N85(B @code{P(x,s)} $B$,B8:_$7$F(B, @code{P(x,s)f^(s+1)=b(s)f^s} $B$rK~$?$9$h$&$J(B  $B$N85(B @code{P(x,s)} $B$,B8:_$7$F(B, @code{P(x,s)f^(s+1)=b(s)f^s} $B$rK~$?$9$h$&$J(B
 $BB?9`<0(B @code{b(s)} $B$NCf$G(B, $B<!?t$,:G$bDc$$$b$N$G$"$k(B.  $BB?9`<0(B @code{b(s)} $B$NCf$G(B, $B<!?t$,:G$bDc$$$b$N$G$"$k(B.
 @item @code{generic_bfct(@var{f},@var{vlist},@var{dvlist},@var{weight})}  @item @code{generic_bfct(@var{f},@var{vlist},@var{dvlist},@var{weight})}
 $B$O(B, @var{plist} $B$G@8@.$5$l$k(B @code{D} $B$N:8%$%G%"%k(B @code{I} $B$N(B,  $B$O(B, @var{plist} $B$G@8@.$5$l$k(B @code{D} $B$N:8%$%G%"%k(B @code{I} $B$N(B,
 $B%&%'%$%H(B @var{weight} $B$K4X$9$k(B global b $B4X?t$r7W;;$9$k(B.  $B%&%'%$%H(B @var{weight} $B$K4X$9$k(B global @var{b} $B4X?t$r7W;;$9$k(B.
 @var{vlist} $B$O(B @code{x}-$BJQ?t(B, @var{vlist} $B$OBP1~$9$k(B @code{D}-$BJQ?t(B  @var{vlist} $B$O(B @code{x}-$BJQ?t(B, @var{vlist} $B$OBP1~$9$k(B @code{D}-$BJQ?t(B
 $B$r=g$KJB$Y$k(B.  $B$r=g$KJB$Y$k(B.
 @item $B>\:Y$K$D$$$F$O(B, [SST] $B$r8+$h(B.  @item @code{bfunction} $B$H(B @code{bfct} $B$G$OMQ$$$F$$$k%"%k%4%j%:%`$,(B
   $B0[$J$k(B. $B$I$A$i$,9bB.$+$OF~NO$K$h$k(B.
   @item @code{ann(@var{f})} $B$O(B, @code{@var{f}^s} $B$N(B annihilator ideal
   $B$N@8@.7O$rJV$9(B. @code{ann(@var{f})} $B$O(B, @code{[@var{a},@var{list}]}
   $B$J$k%j%9%H$rJV$9(B. $B$3$3$G(B, @var{a} $B$O(B @var{f} $B$N(B @var{b} $B4X?t$N:G>.@0?t:,(B,
   @var{list} $B$O(B @code{ann(@var{f})} $B$N7k2L$N(B @code{s}$ $B$K(B, @var{a} $B$r(B
   $BBeF~$7$?$b$N$G$"$k(B.
   @item $B>\:Y$K$D$$$F$O(B, [Saito,Sturmfels,Takayama] $B$r8+$h(B.
 \E  \E
 \BEG  \BEG
 @item These functions are defined in @samp{bfct}.  @item These functions are defined in @samp{bfct}.
 @item @code{bfunction(@var{f})} computes the global b-function @code{b(s)} of  @item @code{bfunction(@var{f})} and @code{bfct(@var{f})} compute the global @var{b}-function @code{b(s)} of
 a polynomial @var{f}.  a polynomial @var{f}.
 @code{b(s)} is a polynomial of the minimal degree  @code{b(s)} is a polynomial of the minimal degree
 such that there exists @code{P(x,s)} in D[s], which is a polynomial  such that there exists @code{P(x,s)} in D[s], which is a polynomial
 ring over Weyl algebra @code{D}, and @code{P(x,s)f^(s+1)=b(s)f^s} holds.  ring over Weyl algebra @code{D}, and @code{P(x,s)f^(s+1)=b(s)f^s} holds.
 @item @code{generic_bfct(@var{f},@var{vlist},@var{dvlist},@var{weight})}  @item @code{generic_bfct(@var{f},@var{vlist},@var{dvlist},@var{weight})}
 computes the global b-function of a left ideal @code{I} in @code{D}  computes the global @var{b}-function of a left ideal @code{I} in @code{D}
 generated by @var{plist}, with respect to @var{weight}.  generated by @var{plist}, with respect to @var{weight}.
 @var{vlist} is the list of @code{x}-variables,  @var{vlist} is the list of @code{x}-variables,
 @var{vlist} is the list of corresponding @code{D}-variables.  @var{vlist} is the list of corresponding @code{D}-variables.
 @item See [SST] for the details.  @item @code{bfunction(@var{f})} and @code{bfct(@var{f})} implement
   different algorithms and the efficiency depends on inputs.
   @item @code{ann(@var{f})} returns the generator set of the annihilator
   ideal of @code{@var{f}^s}.
   @code{ann(@var{f})} returns a list @code{[@var{a},@var{list}]},
   where @var{a} is the minimal integral root of the global @var{b}-function
   of @var{f}, and @var{list} is a list of polynomials obtained by
   substituting @code{s} in @code{ann(@var{f})} with @var{a}.
   @item See [Saito,Sturmfels,Takayama] for the details.
 \E  \E
 @end itemize  @end itemize
   
Line 3945  x*y*dt+5*z^4*dt+dz,-x^4-z*y*x-y^4-z^5+t]$
Line 4105  x*y*dt+5*z^4*dt+dz,-x^4-z*y*x-y^4-z^5+t]$
 [219] generic_bfct(F,[t,z,y,x],[dt,dz,dy,dx],[1,0,0,0]);  [219] generic_bfct(F,[t,z,y,x],[dt,dz,dy,dx],[1,0,0,0]);
 20000*s^10-70000*s^9+101750*s^8-79375*s^7+35768*s^6-9277*s^5  20000*s^10-70000*s^9+101750*s^8-79375*s^7+35768*s^6-9277*s^5
 +1278*s^4-72*s^3  +1278*s^4-72*s^3
   [220] P=x^3-y^2$
   [221] ann(P);
   [2*dy*x+3*dx*y^2,-3*dx*x-2*dy*y+6*s]
   [222] ann0(P);
   [-1,[2*dy*x+3*dx*y^2,-3*dx*x-2*dy*y-6]]
 @end example  @end example
   
 @table @t  @table @t

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.13

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