=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/Doc/dhecart.sm1,v retrieving revision 1.1 retrieving revision 1.4 diff -u -p -r1.1 -r1.4 --- OpenXM/src/kan96xx/Doc/dhecart.sm1 2004/07/29 08:13:42 1.1 +++ OpenXM/src/kan96xx/Doc/dhecart.sm1 2005/06/19 08:29:02 1.4 @@ -1,14 +1,17 @@ -% $OpenXM$ +% $OpenXM: OpenXM/src/kan96xx/Doc/dhecart.sm1,v 1.3 2004/09/14 11:51:20 takayama Exp $ % Stdbasis via the double homogenization: dx x = x dx + h H % Homogenize=3 (ecart_loaded) boundp { } { [(parse) (ecart.sm1) pushfile] extension } ifelse /dh.begin { + [(Homogenize) (AutoReduce) (KanGBmessage)] pushEnv /dh.saved.env set [(Homogenize) 3] system_variable + dh.autoReduce { [(AutoReduce) 1] system_variable } { } ifelse } def /dh.end { + dh.saved.env popEnv [(Homogenize) 1] system_variable } def @@ -19,6 +22,7 @@ % Global environmental variables /dh.gb.verbose 1 def /dh.autoHomogenize 1 def +/dh.autoReduce 1 def /dh.needSyz 0 def /dh.message { @@ -41,12 +45,13 @@ /arg1 set [/in-dh.gb /aa /typev /setarg /f /v /gg /wv /vec /ans /rr /mm - /env2 /ans.gb + /env2 /ans.gb /groebnerOptions ] pushVariables [(CurrentRingp) (KanGBmessage)] pushEnv [ /aa arg1 def aa isArray { } { ( << array >> dh.gb) error } ifelse + aa getAttributeList configureGroebnerOption /groebnerOptions set /setarg 0 def /wv 0 def @@ -128,10 +133,12 @@ dh.begin - v ecart.checkOrder + [v] ecart.checkOrder - dh.gb.verbose { (gb.options = ) dh.messagen gb.options dh.message } { } ifelse + groebnerOptions gb.options mergeGroebnerOptions /groebnerOptions set + gb.verbose { (groebnerOptions = ) messagen groebnerOptions message } { } ifelse + dh.autoHomogenize not { % No automatic hH-homogenization. f { {. } map} map /f set @@ -145,9 +152,9 @@ } ifelse dh.needSyz { - [f [(needSyz)] gb.options join ] groebner /gg set + [f [(needSyz)] groebnerOptions join ] groebner /gg set } { - [f gb.options] groebner 0 get /gg set + [f groebnerOptions] groebner 0 get /gg set } ifelse @@ -174,6 +181,7 @@ } ifelse dh.end + ans gg getAttributeList setAttributeList /ans set ans getRing (oxRingStructure) dc /dh.gb.oxRingStructure set %% @@ -209,5 +217,71 @@ $ [[(x) -1 (Dx) 1 (y) -1 (Dy) 1]]] dh.gb /ff set ff pmat ;$ (To set the current ring to the ring in which ff belongs ) ( ff getRing ring_def ) + ( ) + (To set the current ring to the ring in which ff belongs ) + ( ff getRing ring_def ) + ( ) + (Data: dh.p1, dh.p2, dh.p3 ) + (In order to get a standard basis of the test data, type in dh.test.p1, ...) ( ) + (Example 3: ) + $ /gb.verbose 1 def $ + $ [ [(2 x Dx + 3 y Dy+6) (2 y Dx + 3 x^2 Dy)] (x,y) $ + $ [[(x) -1 (Dx) 1 (y) -1 (Dy) 1]]] $ + $ [(gbCheck) 1] setAttributeList dh.gb getAttributeList :: $ + ( ) ]] putUsages + +%Test input. +%misc-2003/09/oaku/b.sm1, Granger-Oaku-Takayama, Tangent cone algorithm ... +/dh.p1 { + [ + [(t-(x^3 - y^2 z^2 - w^2)) + (Dx + (3 x^2 ) Dt) + (Dy - (2 y z^2) Dt) + (Dz - (2 y^2 z) Dt) + (Dw - (2 w ) Dt) + ] + [ [(t) -1 (Dt) 1] + [(Dt) 1 (Dx) 1 (Dy) 1 (Dz) 1 (Dw) 1] + [(t) -1 (x) -1 (y) -1 (z) -1 (w) -1]] + ] +} def +/dh.test.p1 { + [(KanGBmessage) 1] system_variable + { [dh.p1 0 get (x,y,z,t,w) dh.p1 1 get] dh.gb } timer +} def + +%misc-2003/09/oaku/ob.sm1, +% fw2 [(x) (y) (z) (w)] fw_delta +% > 30min, degree 25. +/dh.p2 { + [ + [ (-w^8-z^4-y^3*w-x^3+t) (3*x^2*Dt+Dx) (3*y^2*w*Dt+Dy) (4*z^3*Dt+Dz) + (8*w^7*Dt+y^3*Dt+Dw) ] + [ [(t) -1 (Dt) 1] + [(Dt) 1 (Dx) 1 (Dy) 1 (Dz) 1 (Dw) 1] + [(t) -1 (x) -1 (y) -1 (z) -1 (w) -1]] + ] +} def +/dh.test.p2 { + [(KanGBmessage) 1] system_variable + { [dh.p2 0 get (x,y,z,t,w) dh.p2 1 get] dh.gb } timer +} def + +%misc-2003/09/oaku/ +% x^3 + (x+1)*y*z, x^3+x*y*z is easy, but it is difficult in ecart. +/dh.p3 { + [ + [ $-x^3-x*y*z-y*z+t$ , $3*x^2*Dt+y*z*Dt+Dx$ , $x*z*Dt+z*Dt+Dy$ , + $x*y*Dt+y*Dt+Dz$ ] + [ [(t) -1 (Dt) 1] + [(Dt) 1 (Dx) 1 (Dy) 1 (Dz) 1] + [(t) -1 (x) -1 (y) -1 (z) -1]] + ] +} def +/dh.test.p3 { + [(KanGBmessage) 1] system_variable + { [dh.p3 0 get (x,y,z,t) dh.p3 1 get] dh.gb } timer +} def +