=================================================================== RCS file: /home/cvs/OpenXM/src/asir-doc/parts/groebner.texi,v retrieving revision 1.17 retrieving revision 1.18 diff -u -p -r1.17 -r1.18 --- OpenXM/src/asir-doc/parts/groebner.texi 2006/09/06 23:53:31 1.17 +++ OpenXM/src/asir-doc/parts/groebner.texi 2016/03/24 20:58:50 1.18 @@ -1,4 +1,4 @@ -@comment $OpenXM: OpenXM/src/asir-doc/parts/groebner.texi,v 1.16 2004/10/20 00:30:55 fujiwara Exp $ +@comment $OpenXM: OpenXM/src/asir-doc/parts/groebner.texi,v 1.17 2006/09/06 23:53:31 noro Exp $ \BJP @node グレブナ基底の計算,,, Top @chapter グレブナ基底の計算 @@ -1467,12 +1467,13 @@ Computation of the global b function is implemented as * nd_gr nd_gr_trace nd_f4 nd_f4_trace nd_weyl_gr nd_weyl_gr_trace:: * dp_gr_flags dp_gr_print:: * dp_ord:: +* dp_set_weight dp_set_top_weight dp_weyl_set_weight:: * dp_ptod:: * dp_dtop:: * dp_mod dp_rat:: * dp_homo dp_dehomo:: * dp_ptozp dp_prim:: -* dp_nf dp_nf_mod dp_true_nf dp_true_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_td dp_sugar:: * dp_lcm:: @@ -2352,11 +2353,11 @@ except for lack of the argument for controlling homoge Buchberger アルゴリズムを実行する. @item @code{nd_gr_trace} および @code{nd_f4_trace} は有理数体上で trace アルゴリズムを実行する. -@code{p} が 0 または 1 のとき, 自動的に選ばれた素数を用いて, 成功する +@var{p} が 0 または 1 のとき, 自動的に選ばれた素数を用いて, 成功する まで trace アルゴリズムを実行する. -@code{p} が 2 以上のとき, trace はGF(p) 上で計算される. trace アルゴリズム -が失敗した場合 0 が返される. @code{p} が負の場合, グレブナ基底チェックは -行わない. この場合, @code{p} が -1 ならば自動的に選ばれた素数が, +@var{p} が 2 以上のとき, trace はGF(p) 上で計算される. trace アルゴリズム +が失敗した場合 0 が返される. @var{p} が負の場合, グレブナ基底チェックは +行わない. この場合, @var{p} が -1 ならば自動的に選ばれた素数が, それ以外は指定された素数を用いてグレブナ基底候補の計算が行われる. @code{nd_f4_trace} は, 各全次数について, ある有限体上で F4 アルゴリズム で行った結果をもとに, その有限体上で 0 でない基底を与える S-多項式のみを @@ -2367,9 +2368,15 @@ Buchberger アルゴリズムを実行する. @code{nd_f4} は @code{modular} が 0 のとき有理数体上の, @code{modular} が マシンサイズ素数のとき有限体上の F4 アルゴリズムを実行する. @item +@var{plist} が多項式リストの場合, @var{plist}で生成されるイデアルのグレブナー基底が +計算される. @var{plist} が多項式リストのリストの場合, 各要素は多項式環上の自由加群の元と見なされ, +これらが生成する部分加群のグレブナー基底が計算される. 後者の場合, 項順序は加群に対する項順序を +指定する必要がある. これは @var{[s,ord]} の形で指定する. @var{s} が 0 ならば TOP (Term Over Position), +1 ならば POT (Position Over Term) を意味し, @var{ord} は多項式環の単項式に対する項順序である. +@item @code{nd_weyl_gr}, @code{nd_weyl_gr_trace} は Weyl 代数用である. @item -いずれの関数も, 有理関数体上の計算は未対応である. +@code{f4} 系関数以外はすべて有理関数係数の計算が可能である. @item 一般に @code{dp_gr_main}, @code{dp_gr_mod_main} より高速であるが, 特に有限体上の場合顕著である. @@ -2403,10 +2410,16 @@ check procedure as in the case of @code{nd_gr_trace} i @code{nd_f4} executes F4 algorithm over Q if @code{modular} is equal to 0, or over a finite field GF(@code{modular}) if @code{modular} is a prime number of machine size (<2^29). +If @var{plist} is a list of polynomials, then a Groebner basis of the ideal generated by @var{plist} +is computed. If @var{plist} is a list of lists of polynomials, then each list of polynomials are regarded +as an element of a free module over a polynomial ring and a Groebner basis of the sub-module generated by @var{plist} +in the free module. In the latter case a term order in the free module should be specified. +This is specified by @var{[s,ord]}. If @var{s} is 0 then it means TOP (Term Over Position). +If @var{s} is 1 then it means POT 1 (Position Over Term). @var{ord} is a term order in the base polynomial ring. @item @code{nd_weyl_gr}, @code{nd_weyl_gr_trace} are for Weyl algebra computation. @item -Each function cannot handle rational function coefficient cases. +Functions except for F4 related ones can handle rational coeffient cases. @item In general these functions are more efficient than @code{dp_gr_main}, @code{dp_gr_mod_main}, especially over finite fields. @@ -2614,6 +2627,79 @@ when functions other than top level functions are call \EG @fref{Setting term orderings} @end table +\JP @node dp_set_weight dp_set_top_weight dp_weyl_set_weight,,, グレブナ基底に関する函数 +\EG @node dp_set_weight dp_set_top_weight dp_weyl_set_weight,,, Functions for Groebner basis computation +@subsection @code{dp_set_weight}, @code{dp_set_top_weight}, @code{dp_weyl_set_weight} +@findex dp_set_weight +@findex dp_set_top_weight +@findex dp_weyl_set_weight + +@table @t +@item dp_set_weight([@var{weight}]) +\JP :: sugar weight の設定, 参照 +\EG :: Set and show the sugar weight. +@item dp_set_top_weight([@var{weight}]) +\JP :: top weight の設定, 参照 +\EG :: Set and show the top weight. +@item dp_weyl_set_weight([@var{weight}]) +\JP :: weyl weight の設定, 参照 +\EG :: Set and show the weyl weight. +@end table + +@table @var +@item return +\JP ベクトル +\EG a vector +@item weight +\JP 整数のリストまたはベクトル +\EG a list or vector of integers +@end table + +@itemize @bullet +\BJP +@item +@code{dp_set_weight} は sugar weight を @var{weight} に設定する. 引数がない時, +現在設定されている sugar weight を返す. sugar weight は正整数を成分とするベクトルで, +各変数の重みを表す. 次数つき順序において, 単項式の次数を計算する際に用いられる. +斉次化変数用に, 末尾に 1 を付け加えておくと安全である. +@item +@code{dp_set_top_weight} は top weight を @var{weight} に設定する. 引数がない時, +現在設定されている top weight を返す. top weight が設定されているとき, +まず top weight による単項式比較を先に行う. tie breaker として現在設定されている +項順序が用いられるが, この比較には top weight は用いられない. + +@item +@code{dp_weyl_set_weight} は weyl weight を @var{weight} に設定する. 引数がない時, +現在設定されている weyl weight を返す. weyl weight w を設定すると, +項順序型 11 での計算において, (-w,w) を top weight, tie breaker を graded reverse lex +とした項順序が設定される. +\E +\BEG +@item +@code{dp_set_weight} sets the sugar weight=@var{weight}. It returns the current sugar weight. +A sugar weight is a vector with positive integer components and it represents the weights of variables. +It is used for computing the weight of a monomial in a graded ordering. +It is recommended to append a component 1 at the end of the weight vector for a homogenizing variable. +@item +@code{dp_set_top_weight} sets the top weight=@var{weight}. It returns the current top weight. +It a top weight is set, the weights of monomials under the top weight are firstly compared. +If the the weights are equal then the current term ordering is applied as a tie breaker, but +the top weight is not used in the tie breaker. + +@item +@code{dp_weyl_set_weight} sets the weyl weigh=@var{weight}. It returns the current weyl weight. +If a weyl weight w is set, in the comparsion by the term order type 11, a term order with +the top weight=(-w,w) and the tie breaker=graded reverse lex is applied. +\E +@end itemize + +@table @t +\JP @item 参照 +\EG @item References +@fref{Weight} +@end table + + \JP @node dp_ptod,,, グレブナ基底に関する函数 \EG @node dp_ptod,,, Functions for Groebner basis computation @subsection @code{dp_ptod} @@ -2796,7 +2882,7 @@ converting the coefficients into elements of a finite @table @t \JP @item 参照 \EG @item References -@fref{dp_nf dp_nf_mod dp_true_nf dp_true_nf_mod}, +@fref{dp_nf dp_nf_mod dp_true_nf dp_true_nf_mod dp_weyl_nf dp_weyl_nf_mod}, @fref{subst psubst}, @fref{setmod}. @end table @@ -2940,17 +3026,21 @@ polynomial contents included in the coefficients are n @fref{ptozp}. @end table -\JP @node dp_nf dp_nf_mod dp_true_nf dp_true_nf_mod,,, グレブナ基底に関する函数 -\EG @node dp_nf dp_nf_mod dp_true_nf dp_true_nf_mod,,, Functions for Groebner basis computation +\JP @node dp_nf dp_nf_mod dp_true_nf dp_true_nf_mod dp_weyl_nf dp_weyl_nf_mod,,, グレブナ基底に関する函数 +\EG @node dp_nf dp_nf_mod dp_true_nf dp_true_nf_mod dp_weyl_nf dp_weyl_nf_mod,,, Functions for Groebner basis computation @subsection @code{dp_nf}, @code{dp_nf_mod}, @code{dp_true_nf}, @code{dp_true_nf_mod} @findex dp_nf @findex dp_true_nf @findex dp_nf_mod @findex dp_true_nf_mod +@findex dp_weyl_nf +@findex dp_weyl_nf_mod @table @t @item dp_nf(@var{indexlist},@var{dpoly},@var{dpolyarray},@var{fullreduce}) +@item dp_weyl_nf(@var{indexlist},@var{dpoly},@var{dpolyarray},@var{fullreduce}) @item dp_nf_mod(@var{indexlist},@var{dpoly},@var{dpolyarray},@var{fullreduce},@var{mod}) +@item dp_weyl_nf_mod(@var{indexlist},@var{dpoly},@var{dpolyarray},@var{fullreduce},@var{mod}) \JP :: 分散表現多項式の正規形を求める. (結果は定数倍されている可能性あり) \BEG @@ -2992,6 +3082,8 @@ is returned in such a list as @code{[numerator, denomi @item 分散表現多項式 @var{dpoly} の正規形を求める. @item +名前に weyl を含む関数はワイル代数における正規形計算を行う. 以下の説明は weyl を含むものに対しても同様に成立する. +@item @code{dp_nf_mod()}, @code{dp_true_nf_mod()} の入力は, @code{dp_mod()} など により, 有限体上の分散表現多項式になっていなければならない. @item @@ -3023,6 +3115,9 @@ is returned in such a list as @code{[numerator, denomi \BEG @item Computes the normal form of a distributed polynomial. +@item +Functions whose name contain @code{weyl} compute normal forms in Weyl algebra. The description below also applies to +the functions for Weyl algebra. @item @code{dp_nf_mod()} and @code{dp_true_nf_mod()} require distributed polynomials with coefficients in a finite field as arguments.