=================================================================== RCS file: /home/cvs/OpenXM/src/asir-contrib/packages/doc/sm1/sm1.oxw,v retrieving revision 1.5 retrieving revision 1.10 diff -u -p -r1.5 -r1.10 --- OpenXM/src/asir-contrib/packages/doc/sm1/sm1.oxw 2012/11/28 05:07:31 1.5 +++ OpenXM/src/asir-contrib/packages/doc/sm1/sm1.oxw 2020/10/27 02:44:16 1.10 @@ -1,4 +1,4 @@ -/*$OpenXM: OpenXM/src/asir-contrib/packages/doc/sm1/sm1.oxw,v 1.4 2012/06/11 05:23:52 takayama Exp $ */ +/*$OpenXM: OpenXM/src/asir-contrib/packages/doc/sm1/sm1.oxw,v 1.9 2020/02/25 02:21:53 takayama Exp $ */ /*&C @c DO NOT EDIT THIS FILE @@ -511,7 +511,7 @@ x*dx+1 @findex sm1.gb @findex sm1.gb_d @table @t -@item sm1.gb([@var{f},@var{v},@var{w}]|proc=@var{p},sorted=@var{q},dehomogenize=@var{r}) +@item sm1.gb([@var{f},@var{v},@var{w}]|proc=@var{p},sorted=@var{q},dehomogenize=@var{r},needBack=@var{n},ring_var=@var{r}) :: computes the Grobner basis of @var{f} in the ring of differential operators with the variable @var{v}. @item sm1.gb_d([@var{f},@var{v},@var{w}]|proc=@var{p}) @@ -561,6 +561,8 @@ List the polynomials are dehomogenized (,i.e., h is set to 1). @item If you want to have a reduced basis or compute the initial form ideal exactly, execute sm1.auto_reduce(1) before executing this function. +@item When the needBack option @var{n} is 1, it returns the answer is a different format as [groebner basis,initial, gb,1,all,[groebner basis, backward transformation]] +@item The default value of ring_var is ring_var_for_asir. The server ox_sm1 saves the ring structure used to the global this ring_var. See also reduction. @end itemize */ /*&ja @@ -570,7 +572,7 @@ execute sm1.auto_reduce(1) before executing this funct @findex sm1.gb @findex sm1.gb_d @table @t -@item sm1.gb([@var{f},@var{v},@var{w}]|proc=@var{p},sorted=@var{q},dehomogenize=@var{r}) +@item sm1.gb([@var{f},@var{v},@var{w}]|proc=@var{p},sorted=@var{q},dehomogenize=@var{r},needBack=@var{n},ring_var=@var{r}) :: @var{v} 上の微分作用素環において @var{f} のグレブナ基底を計算する. @item sm1.gb_d([@var{f},@var{v},@var{w}]|proc=@var{p}) :: @var{v} 上の微分作用素環において @var{f} のグレブナ基底を計算する. 結果を分散多項式のリストで戻す. @@ -613,6 +615,10 @@ execute sm1.auto_reduce(1) before executing this funct 戻り多項式は dehomogenize される (すなわち h に 1 が代入される). @item Reduced グレブナー基底または in_w を計算したいときは, この関数の実行の前に sm1.auto_reduce(1) を実行しておくこと. +@item needBack オプションが 1 の時は, 他の場合とは異なる形式 +[groebner basis, initial, gb,1,all, [groebner basis, backward transformation]] +で答えを戻す. (sm1 の getAttribute を参照) +@item ring_var オプションの既定値は ring_var_for_asir である. sm1 はこの大域変数名で計算に用いた ring 構造体を保存する. reduction を参照. @end itemize */ /*&C @@ -710,6 +716,12 @@ $m' = x^{a'} y^{b'} \partial_x^{c'} \partial_y^{d'}$ ,0,0,0,0,3>>,(1)*<<0,0,0,0,0,1,0,3>>]]] @end example */ +/*&C +@example +[1834] sm1.gb([[dx^2-x,dx],[x]] | needBack=1); +[[dx,dx^2-x,1],[dx,dx^2,1],gb,1,all,[[dx,dx^2-x,1],[[0,1],[1,0],[-dx,dx^2-x]]]] +@end example +*/ /*&en @table @t @@ -1151,6 +1163,9 @@ the inputs @var{f} and @var{g} are left ideals of D. @findex sm1.reduction @table @t @item sm1.reduction([@var{f},@var{g},@var{v},@var{w}]|proc=@var{p}) +@item sm1.reduction([@var{f},@var{g},@var{v}]|proc=@var{p}) +@item sm1.reduction([@var{f},@var{g}]|proc=@var{p},ring_var=@var{r}) +@item sm1.reduction_verbose([@var{f},@var{g},@var{v},@var{w}]|proc=@var{p}) :: @end table @@ -1180,6 +1195,10 @@ in lower order terms. @item The functions sm1.reduction_d(P,F,G) and sm1.reduction_noH_d(P,F,G) are for distributed polynomials. +@item When the arguments are two, the function mod_reduction is called. It uses the ring +structure saved in the global variable ring_var in the ox_sm1 server. +@item The return value of reduction_verbose is of the form +[r,c0,[c1,...,cm],[g1,...gm],init,order] where init is the initial of r and order is the order structure used. @end itemize */ /*&ja @@ -1188,6 +1207,9 @@ are for distributed polynomials. @findex sm1.reduction @table @t @item sm1.reduction([@var{f},@var{g},@var{v},@var{w}]|proc=@var{p}) +@item sm1.reduction([@var{f},@var{g},@var{v}]|proc=@var{p}) +@item sm1.reduction([@var{f},@var{g}]|proc=@var{p},ring_var=@var{r}) +@item sm1.reduction_verbose([@var{f},@var{g},@var{v},@var{w}]|proc=@var{p}) :: @end table @@ -1219,6 +1241,11 @@ r/c0 が normal form である. @item 函数 sm1.reduction_d(P,F,G) および sm1.reduction_noH_d(P,F,G) は, 分散多項式用である. +@item 引数が2つの時は mod_reduction 関数が呼ばれる. これは ox_sm1 の大域変数 +ring_var 変数に保存された ring において簡約を行う. auto_reduce(1) が自動でセットされる. +gb を参照. +@item reduction_verbose の戻り値は +[r,c0,[c1,...,cm],[g1,...gm],init,order] ここで init は 順序 order による r の initial. @end itemize */ /*&C @@ -1227,8 +1254,37 @@ sm1.reduction_d(P,F,G) および sm1.reduction_noH_ [x^2+y^2-4,1,[0,0],[y^4-4*y^2+1,x+y^3-4*y]] [260] sm1.reduction([x^2+y^2-4,[y^4-4*y^2+1,x+y^3-4*y],[x,y],[[x,1]]]); [0,1,[-y^2+4,-x+y^3-4*y],[y^4-4*y^2+1,x+y^3-4*y]] + +[1837] XM_debug=0$ S=sm1.syz([ [x^2-1,x^3-1,x^4-1],[x]])$ +[1838] sm1.auto_reduce(1); +1 +[1839] S0=sm1.gb([S[0],[x]]); +[[[-x^2-x-1,x+1,0],[x^2+1,0,-1]],[[0,x,0],[0,0,-1]]] +[1840] sm1.reduction([ [-x^4-x^3-x^2-x,x^3+x^2+x+1,-1], S0[0]]); +[[0,0,0],-1,[[x^2+1,0,0],[1,0,0]],[[-x^2-x-1,x+1,0],[x^2+1,0,-1]]] @end example */ + +/*&C +@example +XM_debug=0$ +sm1.auto_reduce(1)$ +F=[x*y-1,x^2+y^2-4]$ +Weight_vec=[[x,10,y,1]]$ +printf("\n\nsyz----\n")$ +S=sm1.syz([F,[x,y],Weight_vec]); // When Weight_vec is given, the TOP order is used. +// If the Weight_vec is not given, the POT order (e.g., (1,0,0)<(0,1,0)<(0,0,1)) with grlex is used. +Sgb=sm1.gb([S[0],[x,y],Weight_vec]); +R0=[x+y,x^2*y+x]; +P=R0[0]*F[0]+R0[1]*F[1]; +R=sm1.reduction_verbose([R0,Sgb[0],[x,y],Weight_vec]); + +printf("\nMinimal representation=%a\n",R[0])$ +printf("The initial of minimal rep=%a\n",R[4])$ +printf("Order=%a\n",R[5][1][1])$ +@end example +*/ + /*&en @table @t @item Reference