=================================================================== RCS file: /home/cvs/OpenXM/src/asir-contrib/packages/doc/sm1/sm1.oxw,v retrieving revision 1.2 retrieving revision 1.10 diff -u -p -r1.2 -r1.10 --- OpenXM/src/asir-contrib/packages/doc/sm1/sm1.oxw 2008/06/04 01:46:52 1.2 +++ 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.1 2005/04/13 23:50:17 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 @@ -18,6 +18,10 @@ 計算代数幾何のいろいろな不変量の計算が微分作用素の計算に帰着する. @code{sm1} についての文書は @code{OpenXM/doc/kan96xx} にある. +なお, sm1 server windows 版はバイナリ配布していない. +cygwin 環境でソースコードからコンパイルし, OpenXM/misc/packages/Windows +に従い変更を加えると sm1 サーバはwindows でも動作する. + とこに断りがないかぎりこの節のすべての関数は, 有理数係数の式を入力としてうけつけない. すべての多項式の係数は整数でないといけない. @@ -49,6 +53,10 @@ to constructions in the ring of differential operators Documents on @code{sm1} are in the directory @code{OpenXM/doc/kan96xx}. +The sm1 server for windows is not distributed in the binary form. +If you need to run it, compile it under the cygwin environment +following the Makefile in OpenXM/misc/packages/Windows. + All the coefficients of input polynomials should be integers for most functions in this section. Other functions accept rational numbers as inputs @@ -503,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}) @@ -551,6 +559,10 @@ List Each polynomial is expressed as a string temporally for now. When the optional variable @var{r} is set to one, 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 @@ -560,7 +572,7 @@ List @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} のグレブナ基底を計算する. 結果を分散多項式のリストで戻す. @@ -601,6 +613,12 @@ List いまのところこの多項式は, 文字列で表現される. オプショナル変数 @var{r} がセットされているときは, 戻り多項式は 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 @@ -698,17 +716,23 @@ $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 @item Reference - @code{sm1.reduction}, @code{sm1.rat_to_p} + @code{sm1.auto_reduce}, @code{sm1.reduction}, @code{sm1.rat_to_p} @end table */ /*&ja @table @t @item 参照 - @code{sm1.reduction}, @code{sm1.rat_to_p} + @code{sm1.auto_reduce}, @code{sm1.reduction}, @code{sm1.rat_to_p} @end table */ @@ -1139,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 @@ -1168,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 @@ -1176,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 @@ -1207,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 @@ -1215,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 @@ -2067,8 +2135,13 @@ not bihomogeneous. Algorithm: see "A.Assi, F.J.Castro-Jimenez and J.M.Granger, How to calculate the slopes of a D-module, Compositio Math, 104, 1-17, 1996" -Note that the signs of the slopes are negative, but the absolute values +Note that the signs of the slopes s' are negative, but the absolute values -s' of the slopes are returned. +In other words, when pF+qV is the gap, -s'=q/p is returned. +Note that s=1-1/s' is called the slope in recent literatures. Solutions belongs to O(s). +The number s satisfies 1<= s. +We have r=s-1=-1/s', and kappa=1/r=-s', which is used 1/Gamma(1+m*r) factor and exp(-tau^kappa) +in the Borel and Laplace transformations respectively. */ @@ -2111,8 +2184,14 @@ Algorithm: "A.Assi, F.J.Castro-Jimenez and J.M.Granger, How to calculate the slopes of a D-module, Compositio Math, 104, 1-17, 1996" をみよ. -Slope の本来の定義では, 符号が負となるが, このプログラムは, -Slope の絶対値を戻す. +Slope s' の本来の定義では, 符号が負となるが, このプログラムは, +Slope の絶対値 -s' を戻す. +つまり pF+qV がmicro特性多様体のgapであるとき, -s'=q/p を戻す. +最近の文献では s=1-1/s' を slope と呼んでいる. 解は O(s) に属する. +数 s は 1<= s を満す. +r=s-1=-1/s' および kappa=1/r=-s' である. +これらの数はBorel and Laplace 変換においてそれぞれ 1/Gamma(1+m*r) factor, +exp(-tau^kappa) 項として使われる. */ /*&C