=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/Doc/ecart.sm1,v retrieving revision 1.13 retrieving revision 1.14 diff -u -p -r1.13 -r1.14 --- OpenXM/src/kan96xx/Doc/ecart.sm1 2003/08/26 12:46:03 1.13 +++ OpenXM/src/kan96xx/Doc/ecart.sm1 2003/08/27 03:11:13 1.14 @@ -1,4 +1,4 @@ -% $OpenXM: OpenXM/src/kan96xx/Doc/ecart.sm1,v 1.12 2003/08/26 05:06:00 takayama Exp $ +% $OpenXM: OpenXM/src/kan96xx/Doc/ecart.sm1,v 1.13 2003/08/26 12:46:03 takayama Exp $ %[(parse) (hol.sm1) pushfile] extension %[(parse) (appell.sm1) pushfile] extension @@ -1091,8 +1091,130 @@ arg1 } def +/ecart.isZeroRow { + /arg1 set + [/in-ecart.isZeroRow /aa /i /n /yes] pushVariables + [ + /aa arg1 def + aa length /n set + /yes 1 def + 0 1 n 1 sub { + /i set + aa i get (0). eq { + } { + /yes 0 def + } ifelse + } for + /arg1 yes def + ] pop + popVariables + arg1 +} def + +/ecart.removeZeroRow { + /arg1 set + [/in-ecart.removeZeroRow /aa /i /n /ans] pushVariables + [ + /aa arg1 def + aa length /n set + /ans [ ] def + 0 1 n 1 sub { + /i set + aa i get ecart.isZeroRow { + } { + ans aa i get append /ans set + } ifelse + } for + /arg1 ans def + ] pop + popVariables + arg1 +} def + +/ecart.gen_input { + /arg1 set + [/in-ecart.gen_input /aa /typev /setarg /f /v + /gg /wv /vec /ans /rr /mm + /degreeShift /env2 /opt /ss0 + /hdShift /ff + ] pushVariables + [ + /aa arg1 def + aa isArray { } { ( << array >> ecart.gen_input) error } ifelse + /setarg 0 def + /wv 0 def + /degreeShift 0 def + /hdShift 0 def + aa { tag } map /typev set + typev [ArrayP StringP ArrayP ArrayP ArrayP] eq + { /f aa 0 get def + /v aa 1 get def + /wv aa 2 get def + /degreeShift aa 3 get def + /hdShift aa 4 get def + /setarg 1 def + } { } ifelse + typev [ArrayP ArrayP ArrayP ArrayP ArrayP] eq + { /f aa 0 get def + /v aa 1 get from_records def + /wv aa 2 get def + /degreeShift aa 3 get def + /hdShift aa 4 get def + /setarg 1 def + } { } ifelse + setarg { } { (ecart.minimalBase : Argument mismatch) error } ifelse + + [(KanGBmessage) ecart.gb.verbose ] system_variable + + f 0 get tag ArrayP eq { } + { f { /tt set [ tt ] } map /f set } ifelse + + [f v wv degreeShift [hdShift 0 get degreeShift 0 get]] + ecart.gb /ff set + ff getRing ring_def + + ff 0 get { {toString } map } map /ff set + + [ff v wv degreeShift [hdShift 0 get degreeShift 0 get]] /arg1 set + ] pop + popVariables + arg1 +} def +[(ecart.gen_input) +[([ff v weight_vector uv_shift_m [D_shift_n uv_shift_m]] ecart.gen_input ) + ( [gg_h v weight_vector uv_shift_m [D_shift_n uv_shift_m]] ) + (It generates the input for the minimal filtered free resolution.) + (Current ring is changed to the ring of gg_h.) + (cf. ecart.minimalBase) + $Example: [ [(t-x^3+y^2) (Dx+ 3 x^2 Dt) (Dy - 2 y Dt)] (t,x,y) $ + $ [ [(t) -1 (Dt) 1] [(t) -1 (x) -1 (y) -1 (Dt) 1 (Dx) 1 (Dy) 1]] $ + $ [ [0] ] $ + $ [ [0] [0] ] ] ecart.gen_input /gg set gg pmat $ +]] putUsages + + [(ecart.minimalBase) -[([ff v weight_vector degreeShift [D_shift_n uv_shift_m]] ecart.minimalBase mbase) +[([ff v weight_vector uv_shift_m [D_shift_n uv_shift_m]] ecart.minimalBase ) + ( [mbase gr_of_mbase ) + ( [syz v weight_vector new_uv_shift_m [new_D_shift_n new_uv_shift_m]]) + ( gr_of_syz ]) + (mbase is the minimal generators of ff in D^h in the sense of filtered minimal) + (generators.) + $Example: [ [(t-x^3+y^2) (Dx+ 3 x^2 Dt) (Dy - 2 y Dt)] (t,x,y) $ + $ [ [(t) -1 (Dt) 1] [(t) -1 (x) -1 (y) -1 (Dt) 1 (Dx) 1 (Dy) 1]] $ + $ [ [0] ] $ + $ [ [0] [0] ] ] ecart.gen_input /gg0 set $ + $ gg0 ecart.minimalBase /ss0 set $ + $ ss0 2 get ecart.minimalBase /ss1 set $ + $ ss1 2 get ecart.minimalBase /ss2 set $ + $ (--------- minimal filtered resolution -------) message $ + $ ss0 0 get pmat ss1 0 get pmat ss2 0 get pmat $ + $ (--------- degree shift (n,m) n:D-shift m:uv-shift -------) message $ + $ gg0 4 get message $ + $ ss0 2 get 4 get message $ + $ ss1 2 get 4 get message $ + $ ss2 2 get 4 get message ; $ + ]] putUsages /ecart.minimalBase { /arg1 set @@ -1162,6 +1284,10 @@ %C Note 2003.8.26 + ai [ ] eq { + exit + } { } ifelse + /s ai length def /r ai 0 get length def @@ -1219,11 +1345,17 @@ } for % ( ) error - /ai1 ai1_new def - /ai ai_new2 def + /ai1 ai1_new def + /ai ai_new2 ecart.removeZeroRow def } loop - /arg1 ai1 def + /arg1 + [ ai1 + ai1 {[wv 0 get weightv degreeShift 0 get] init} map %Getting gr of A_{i-1} + [ai v wv [degreeShiftUVnew] [degreeShiftDnew degreeShiftUVnew]] + ai {[wv 0 get weightv degreeShiftUVnew] init} map %Getting gr of A_i + ] + def ] pop popVariables arg1