=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/Doc/ecart.sm1,v retrieving revision 1.6 retrieving revision 1.8 diff -u -p -r1.6 -r1.8 --- OpenXM/src/kan96xx/Doc/ecart.sm1 2003/08/13 03:52:25 1.6 +++ OpenXM/src/kan96xx/Doc/ecart.sm1 2003/08/21 12:28:58 1.8 @@ -1,4 +1,4 @@ -% $OpenXM: OpenXM/src/kan96xx/Doc/ecart.sm1,v 1.5 2003/08/04 11:42:42 takayama Exp $ +% $OpenXM: OpenXM/src/kan96xx/Doc/ecart.sm1,v 1.7 2003/08/18 06:36:50 takayama Exp $ %[(parse) (hol.sm1) pushfile] extension %[(parse) (appell.sm1) pushfile] extension @@ -7,6 +7,14 @@ /ecart.end { endEcart } def /ecart.autoHomogenize 1 def /ecart.needSyz 0 def +/ecartd.begin { + ecart.begin + [(EcartAutomaticHomogenization) 1] system_variable +} def +/ecartd.end { + ecart.end + [(EcartAutomaticHomogenization) 0] system_variable +} def /ecart.dehomogenize { /arg1 set @@ -133,10 +141,53 @@ arg1 } def +/ecart.gb {ecartd.gb} def + +[(ecart.gb) + [(a ecart.gb b) + (array a; array b;) + $b : [g ii]; array g; array in; g is a standard (Grobner) basis of f$ + ( in the ring of differential operators.) + (The computation is done by using Ecart division algorithm and ) + (the double homogenization.) + (cf. M.Granger and T.Oaku: Minimal filtered free resolutions ... 2003) + $ ii is the initial ideal in case of w is given or <> belongs$ + $ to a ring. In the other cases, it returns the initial monominal.$ + (a : [f ]; array f; f is a set of generators of an ideal in a ring.) + (a : [f v]; array f; string v; v is the variables. ) + (a : [f v w]; array f; string v; array of array w; w is the weight matirx.) + (a : [f v w ds]; array f; string v; array of array w; w is the weight matirx.) + ( array ds; ds is the degree shift ) + ( ) + $cf. ecarth.gb (homogenized), ecartd.gb (dehomogenize) $ + ( ) + $Example 1: [ [( (x Dx)^2 + (y Dy)^2 -1) ( x y Dx Dy -1)] (x,y) $ + $ [ [ (Dx) 1 ] [(x) -1 (y) -1 (Dx) 1 (Dy) 1]] ] ecart.gb pmat ; $ + (Example 2: ) + $ [ [(2 x Dx + 3 y Dy+6) (2 y Dx + 3 x^2 Dy)] (x,y) $ + $ [[(x) -1 (Dx) 1 (y) -1 (Dy) 1]]] ecart.gb pmat ;$ + ( ) + $Example 3: [ [( (x Dx)^2 + (y Dy)^2 -1) ( x y Dx Dy -1)] (x,y) $ + $ [ [ (Dx) 1 (Dy) 1] ] ] ecart.gb pmat ; $ + ( ) + $Example 4: [[ [(x^2) (y+x)] [(x+y) (y^3)] [(2 x^2+x y) (y+x+x y^3)]] (x,y) $ + $ [ [ (x) -1 (y) -1] [(x) -1 (y) -1 (Dx) 1 (Dy) 1]] ] ecart.gb pmat ; $ + ( ) + $Example 5: [[ [(x^2) (y+x)] [(x+y) (y^3)] [(2 x^2+x y) (y+x+x y^3)]] (x,y) $ + $ [ [(Dx) 1 (Dy) 1] [(x) -1 (y) -1 (Dx) 1 (Dy) 1] ] [[0 1] [-3 1] ] ] ecart.gb pmat ; $ + ( ) + (cf. gb, groebner, ecarth.gb, ecartd.gb, ecart.syz, ecart.begin, ecart.end, ecart.homogenize01, ) + ( ecart.dehomogenize, ecart.dehomogenizeH) + ( [(weightedHomogenization) 1 (degreeShift) [[1 2 1]]] : options for ) + ( define_ring ) + (/ecart.autoHomogenize 0 def ) + ( not to dehomogenize and homogenize) +]] putUsages + /ecart.gb.verbose 1 def -/ecart.gb { +/ecarth.gb { /arg1 set - [/in-ecart.gb /aa /typev /setarg /f /v + [/in-ecarth.gb /aa /typev /setarg /f /v /gg /wv /vec /ans /rr /mm /degreeShift /env2 /opt /ans.gb ] pushVariables @@ -321,10 +372,10 @@ popVariables arg1 } def -(ecart.gb ) messagen-quiet +(ecarth.gb ) messagen-quiet -[(ecart.gb) - [(a ecart.gb b) +[(ecarth.gb) + [(a ecarth.gb b) (array a; array b;) $b : [g ii]; array g; array in; g is a standard (Grobner) basis of f$ ( in the ring of differential operators.) @@ -343,22 +394,22 @@ ( not to dehomogenize and homogenize) ( ) $Example 1: [ [( (x Dx)^2 + (y Dy)^2 -1) ( x y Dx Dy -1)] (x,y) $ - $ [ [ (Dx) 1 ] [(x) -1 (y) -1 (Dx) 1 (Dy) 1]] ] ecart.gb pmat ; $ + $ [ [ (Dx) 1 ] [(x) -1 (y) -1 (Dx) 1 (Dy) 1]] ] ecarth.gb pmat ; $ (Example 2: ) (To put H and h=1, type in, e.g., ) $ [ [(2 x Dx + 3 y Dy+6) (2 y Dx + 3 x^2 Dy)] (x,y) $ - $ [[(x) -1 (Dx) 1 (y) -1 (Dy) 1]]] ecart.gb /gg set gg ecart.dehomogenize pmat ;$ + $ [[(x) -1 (Dx) 1 (y) -1 (Dy) 1]]] ecarth.gb /gg set gg ecart.dehomogenize pmat ;$ ( ) $Example 3: [ [( (x Dx)^2 + (y Dy)^2 -1) ( x y Dx Dy -1)] (x,y) $ - $ [ [ (Dx) 1 (Dy) 1] ] ] ecart.gb pmat ; $ + $ [ [ (Dx) 1 (Dy) 1] ] ] ecarth.gb pmat ; $ ( ) $Example 4: [[ [(x^2) (y+x)] [(x+y) (y^3)] [(2 x^2+x y) (y+x+x y^3)]] (x,y) $ - $ [ [ (x) -1 (y) -1] [(x) -1 (y) -1 (Dx) 1 (Dy) 1]] ] ecart.gb pmat ; $ + $ [ [ (x) -1 (y) -1] [(x) -1 (y) -1 (Dx) 1 (Dy) 1]] ] ecarth.gb pmat ; $ ( ) $Example 5: [[ [(x^2) (y+x)] [(x+y) (y^3)] [(2 x^2+x y) (y+x+x y^3)]] (x,y) $ - $ [ [(Dx) 1 (Dy) 1] [(x) -1 (y) -1 (Dx) 1 (Dy) 1] ] [[0 1] [-3 1] ] ] ecart.gb pmat ; (buggy infinite loop)$ + $ [ [(Dx) 1 (Dy) 1] [(x) -1 (y) -1 (Dx) 1 (Dy) 1] ] [[0 1] [-3 1] ] ] ecarth.gb pmat ; (buggy infinite loop)$ ( ) - (cf. gb, groebner, ecart.syz, ecart.begin, ecart.end, ecart.homogenize01, ) + (cf. gb, groebner, ecart.gb, ecartd.gb, ecart.syz, ecart.begin, ecart.end, ecart.homogenize01, ) ( ecart.dehomogenize, ecart.dehomogenizeH) ( [(weightedHomogenization) 1 (degreeShift) [[1 2 1]]] : options for ) ( define_ring ) @@ -387,12 +438,12 @@ (array a; array b;) $b : [syzygy gb tmat input]; gb = tmat * input $ $Example 1: [ [( (x Dx)^2 + (y Dy)^2 -1) ( x y Dx Dy -1)] (x,y) $ - $ [ [ (Dx) 1 (Dy) 1] ] ] ecart.syz /ff set $ + $ [ [ (Dx) 1 (Dy) 1] [(x) -1 (y) -1 (Dx) 1 (Dy) 1]] ] ecart.syz /ff set $ $ ff 0 get ff 3 get mul pmat $ $ ff 2 get ff 3 get mul [ff 1 get ] transpose sub pmat ; $ ( ) $Example 2: [[ [(x^2) (y+x)] [(x+y) (y^3)] [(2 x^2+x y) (y+x+x y^3)]] (x,y) $ - $ [ [ (x) -1 (y) -1] ] [[0 1] [-3 1] ] ] ecart.syz pmat ; $ + $ [ [(Dx) 1 (Dy) 1] [ (x) -1 (y) -1] ] [[0 1] [-3 1] ] ] ecart.syz pmat ; $ ( ) (cf. ecart.gb) ( /ecart.autoHomogenize 0 def ) @@ -723,8 +774,7 @@ %%BUG: case of v is integer v ecart.checkOrder - ecart.begin - [(EcartAutomaticHomogenization) 1] system_variable + ecartd.begin ecart.gb.verbose { (gb.options = ) messagen gb.options message } { } ifelse @@ -759,8 +809,7 @@ ifelse } ifelse - ecart.end - [(EcartAutomaticHomogenization) 0] system_variable + ecartd.end %% env1 restoreOptions %% degreeShift changes "grade"