=================================================================== RCS file: /home/cvs/OpenXM/src/asir-doc/parts/groebner.texi,v retrieving revision 1.6 retrieving revision 1.12 diff -u -p -r1.6 -r1.12 --- OpenXM/src/asir-doc/parts/groebner.texi 2003/04/20 09:55:18 1.6 +++ OpenXM/src/asir-doc/parts/groebner.texi 2003/12/27 11:52:07 1.12 @@ -1,4 +1,4 @@ -@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.11 2003/04/28 06:43:10 noro Exp $ \BJP @node グレブナ基底の計算,,, Top @chapter グレブナ基底の計算 @@ -449,6 +449,13 @@ If `on', various informations during a Groebner basis displayed. \E +@item PrintShort +\JP on で、Print が off の場合, グレブナ基底計算の途中の情報を短縮形で表示する. +\BEG +If `on' and Print is `off', short information during a Groebner basis computation is +displayed. +\E + @item Stat \BJP on で @code{Print} が off ならば, @code{Print} が on のとき表示さ @@ -471,24 +478,28 @@ is shown after every normal computation. After comlet computation the maximal value among the sums is shown. \E -@item Multiple +@item Content +@itemx Multiple \BJP -0 でない整数の時, 有理数上の正規形計算において, 係数のビット長の和が -@code{Multiple} 倍になるごとに係数全体の GCD が計算され, その GCD で -割った多項式を簡約する. @code{Multiple} が 1 ならば, 簡約するごとに -GCD 計算が行われ一般には効率が悪くなるが, @code{Multiple} を 2 程度 +0 でない有理数の時, 有理数上の正規形計算において, 係数のビット長の和が +@code{Content} 倍になるごとに係数全体の GCD が計算され, その GCD で +割った多項式を簡約する. @code{Content} が 1 ならば, 簡約するごとに +GCD 計算が行われ一般には効率が悪くなるが, @code{Content} を 2 程度 とすると, 巨大な整数が係数に現れる場合, 効率が良くなる場合がある. +backward compatibility のため、@code{Multiple} で整数値を指定できる. \E \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 -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 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. -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. +An integer value can be set by the keyword @code{Multiple} for +backward compatibility. \E @item Demand @@ -1343,7 +1354,7 @@ Computation of the global b function is implemented as * lex_hensel_gsl tolex_gsl tolex_gsl_d:: * primadec primedec:: * primedec_mod:: -* bfunction generic_bfct:: +* bfunction bfct generic_bfct ann ann0:: @end menu \JP @node gr hgr gr_mod,,, グレブナ基底に関する函数 @@ -1401,6 +1412,14 @@ strategy による計算, @code{hgr()} は trace @item @code{dgr()} で表示される時間は, この函数が実行されているプロセスでの CPU 時間であり, この函数の場合はほとんど通信のための時間である. +@item +多項式リスト @var{plist} の要素が分散表現多項式の場合は +結果も分散表現多項式のリストである. +この場合, 引数の分散多項式は与えられた順序に従い @code{dp_sort} で +ソートされてから計算される. +多項式リストの要素が分散表現多項式の場合も +変数の数分の不定元のリストを @var{vlist} 引数として与えないといけない +(ダミー). \E \BEG @item @@ -1429,6 +1448,13 @@ Therefore this function is useful to reduce the actual 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 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 @end itemize @@ -1679,8 +1705,8 @@ processes. @item lex_hensel_gsl(@var{plist},@var{vlist1},@var{order},@var{vlist2},@var{homo}) \JP :: GSL 形式のイデアル基底の計算 \EG ::Computation of an GSL form ideal basis -@item tolex_gsl(@var{plist},@var{vlist1},@var{order},@var{vlist2},@var{homo}) -@itemx tolex_gsl_d(@var{plist},@var{vlist1},@var{order},@var{vlist2},@var{homo},@var{procs}) +@item tolex_gsl(@var{plist},@var{vlist1},@var{order},@var{vlist2}) +@itemx tolex_gsl_d(@var{plist},@var{vlist1},@var{order},@var{vlist2},@var{procs}) \JP :: グレブナ基底を入力とする, GSL 形式のイデアル基底の計算 \EG :: Computation of an GSL form ideal basis stating from a Groebner basis @end table @@ -2150,7 +2176,7 @@ except for lack of the argument for controlling homoge @table @t @item dp_gr_flags([@var{list}]) -@itemx dp_gr_print([@var{0|1}]) +@itemx dp_gr_print([@var{i}]) \JP :: 計算および表示用パラメタの設定, 参照 \BEG :: Set and show various parameters for cotrolling computations and showing informations. @@ -2164,6 +2190,9 @@ and showing informations. @item list \JP リスト \EG list +@item i +\JP 整数 +\EG integer @end table @itemize @bullet @@ -2177,9 +2206,18 @@ and showing informations. 引数は, @code{["Print",1,"NoSugar",1,...]} なる形のリストで, 左から順に 設定される. パラメタ名は文字列で与える必要がある. @item -@code{dp_gr_print()} は, 特にパラメタ @code{Print} の値を直接設定, 参照 -できる. これは, @code{dp_gr_main()} などをサブルーチンとして用いるユーザ -函数において, @code{Print} の値を見て, そのサブルーチンが中間情報の表示 +@code{dp_gr_print()} は, 特にパラメタ @code{Print}, @code{PrintShort} の値を直接設定, 参照 +できる. 設定される値は次の通りである。 +@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 +これは, @code{dp_gr_main()} などをサブルーチンとして用いるユーザ +函数において, そのサブルーチンが中間情報の表示 を行う際に, 迅速にフラグを見ることができるように用意されている. \E \BEG @@ -2194,8 +2232,17 @@ Arguments must be specified as a list such as strings. @item @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} when a user defined function calling @code{dp_gr_main()} etc. +@code{Print} and @code{PrintShort}. +@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. \E @end itemize @@ -3831,6 +3878,9 @@ if an input ideal is not radical. 部分を計算することによる early termination を行う. 一般に, イデアルの次元が高い場合に有効だが, 0 次元の場合など, 次元が小さい 場合には overhead が大きい場合がある. +@item +計算途中で内部情報を見たい場合には、 +前もって @code{dp_gr_print(2)} を実行しておけばよい. \E \BEG @item @@ -3855,6 +3905,9 @@ is tried by computing the intersection of obtained com incrementally. In general, this strategy is useful when the krull dimension of the ideal is high, but it may add some overhead 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 @end itemize @@ -3876,24 +3929,36 @@ if the dimension is small. @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}, \JP @fref{項順序の設定}. -\EG @fref{Setting term orderings}. +\EG @fref{Setting term orderings}, +@fref{dp_gr_flags dp_gr_print}. @end table -\JP @node bfunction generic_bfct,,, グレブナ基底に関する函数 -\EG @node bfunction generic_bfct,,, Functions for Groebner basis computation -@subsection @code{bfunction}, @code{generic_bfct} +\JP @node bfunction bfct generic_bfct ann ann0,,, グレブナ基底に関する函数 +\EG @node bfunction bfct generic_bfct ann ann0,,, Functions for Groebner basis computation +@subsection @code{bfunction}, @code{bfct}, @code{generic_bfct}, @code{ann}, @code{ann0} @findex bfunction +@findex bfct @findex generic_bfct +@findex ann +@findex ann0 @table @t @item bfunction(@var{f}) -@item generic_bfct(@var{plist},@var{vlist},@var{dvlist},@var{weight}) -\JP :: b 関数の計算 -\EG :: Computes the global b function of a polynomial or an ideal +@itemx bfct(@var{f}) +@itemx generic_bfct(@var{plist},@var{vlist},@var{dvlist},@var{weight}) +\JP :: @var{b} 関数の計算 +\EG :: Computes the global @var{b} function of a polynomial or an ideal +@item ann(@var{f}) +@itemx ann0(@var{f}) +\JP :: 多項式のベキの annihilator の計算 +\EG :: Computes the annihilator of a power of polynomial @end table + @table @var @item return -@itemx f +\JP 多項式またはリスト +\EG polynomial or list +@item f \JP 多項式 \EG polynomial @item plist @@ -3907,30 +3972,45 @@ if the dimension is small. @itemize @bullet \BJP @item @samp{bfct} で定義されている. -@item @code{bfunction(@var{f})} は多項式 @var{f} の global b 関数 @code{b(s)} を +@item @code{bfunction(@var{f})}, @code{bfct(@var{f})} は多項式 @var{f} の global @var{b} 関数 @code{b(s)} を 計算する. @code{b(s)} は, Weyl 代数 @code{D} 上の一変数多項式環 @code{D[s]} の元 @code{P(x,s)} が存在して, @code{P(x,s)f^(s+1)=b(s)f^s} を満たすような 多項式 @code{b(s)} の中で, 次数が最も低いものである. @item @code{generic_bfct(@var{f},@var{vlist},@var{dvlist},@var{weight})} は, @var{plist} で生成される @code{D} の左イデアル @code{I} の, -ウェイト @var{weight} に関する global b 関数を計算する. +ウェイト @var{weight} に関する global @var{b} 関数を計算する. @var{vlist} は @code{x}-変数, @var{vlist} は対応する @code{D}-変数 を順に並べる. -@item 詳細については, [SST] を見よ. +@item @code{bfunction} と @code{bfct} では用いているアルゴリズムが +異なる. どちらが高速かは入力による. +@item @code{ann(@var{f})} は, @code{@var{f}^s} の annihilator ideal +の生成系を返す. @code{ann(@var{f})} は, @code{[@var{a},@var{list}]} +なるリストを返す. ここで, @var{a} は @var{f} の @var{b} 関数の最小整数根, +@var{list} は @code{ann(@var{f})} の結果の @code{s}$ に, @var{a} を +代入したものである. +@item 詳細については, [Saito,Sturmfels,Takayama] を見よ. \E \BEG @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}. @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 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})} -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}. @var{vlist} is the list of @code{x}-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 @end itemize @@ -3945,6 +4025,11 @@ 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]); 20000*s^10-70000*s^9+101750*s^8-79375*s^7+35768*s^6-9277*s^5 +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 @table @t