=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/Doc/ecart.sm1,v retrieving revision 1.7 retrieving revision 1.10 diff -u -p -r1.7 -r1.10 --- OpenXM/src/kan96xx/Doc/ecart.sm1 2003/08/18 06:36:50 1.7 +++ OpenXM/src/kan96xx/Doc/ecart.sm1 2003/08/23 02:28:40 1.10 @@ -1,4 +1,4 @@ -% $OpenXM: OpenXM/src/kan96xx/Doc/ecart.sm1,v 1.6 2003/08/13 03:52:25 takayama Exp $ +% $OpenXM: OpenXM/src/kan96xx/Doc/ecart.sm1,v 1.9 2003/08/22 23:55:21 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 @@ -157,13 +165,17 @@ $ [ [ (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 ;$ + $ [[(x) -1 (Dx) 1 (y) -1 (Dy) 1]]] ecart.gb /ff set ff pmat ;$ + (To set the current ring to the ring in which ff belongs ) + ( ff getRing ring_def ) ( ) $Example 3: [ [( (x Dx)^2 + (y Dy)^2 -1) ( x y Dx Dy -1)] (x,y) $ $ [ [ (Dx) 1 (Dy) 1] ] ] ecart.gb pmat ; $ + ( This example will cause an error on order.) ( ) $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 ; $ + ( This example will cause an error on order.) ( ) $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 ; $ @@ -342,7 +354,11 @@ wv isInteger { /ans [gg gg {init} map] def }{ - /ans [gg gg {wv 0 get weightv init} map] def + degreeShift isInteger { + /ans [gg gg {wv 0 get weightv init} map] def + } { + /ans [gg gg {[wv 0 get weightv degreeShift 0 get ] init} map] def + } ifelse }ifelse %% Postprocess : recover the matrix expression. @@ -430,12 +446,14 @@ (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 ; $ ( ) + (To set the current ring to the ring in which ff belongs ) + ( ff getRing ring_def ) $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 ) @@ -615,7 +633,11 @@ wv isInteger { /ans [gg gg {init} map] def }{ - /ans [gg gg {wv 0 get weightv init} map] def + degreeShift isInteger { + /ans [gg gg {wv 0 get weightv init} map] def + } { + /ans [gg gg {[wv 0 get weightv degreeShift 0 get ] init} map] def + } ifelse }ifelse %% Postprocess : recover the matrix expression. @@ -766,8 +788,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 @@ -791,7 +812,11 @@ wv isInteger { /ans [gg gg {init} map] def }{ - /ans [gg gg {wv 0 get weightv init} map] def + degreeShift isInteger { + /ans [gg gg {wv 0 get weightv init} map] def + } { + /ans [gg gg {[wv 0 get weightv degreeShift 0 get ] init} map] def + } ifelse }ifelse %% Postprocess : recover the matrix expression. @@ -802,8 +827,7 @@ ifelse } ifelse - ecart.end - [(EcartAutomaticHomogenization) 0] system_variable + ecartd.end %% env1 restoreOptions %% degreeShift changes "grade"