=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/Kan/dr.sm1,v retrieving revision 1.12 retrieving revision 1.24 diff -u -p -r1.12 -r1.24 --- OpenXM/src/kan96xx/Kan/dr.sm1 2003/05/15 00:49:17 1.12 +++ OpenXM/src/kan96xx/Kan/dr.sm1 2003/09/13 13:14:03 1.24 @@ -1,4 +1,4 @@ -% $OpenXM: OpenXM/src/kan96xx/Kan/dr.sm1,v 1.11 2003/05/15 00:42:07 takayama Exp $ +% $OpenXM: OpenXM/src/kan96xx/Kan/dr.sm1,v 1.23 2003/09/12 02:52:50 takayama Exp $ %% dr.sm1 (Define Ring) 1994/9/25, 26 %% This file is error clean. @@ -2544,28 +2544,30 @@ newline ] putUsages /ord_w_all { /arg2 set /arg1 set - [/ord_w-in /fff /fff-in /www /rrr /iii /ddd /zzz] pushVariables + [/ord_w_all-in /fff /fff-in /www /rrr /iii /ddd /zzz /ddd-tmp] pushVariables [ /fff arg1 def /www arg2 def - fff (0). eq { /ddd -intInfinity def /ord_w.LLL goto} { } ifelse + fff (0). eq { /ddd -intInfinity def /ord_w_all.LLL goto} { } ifelse + /ddd -intInfinity def fff (ring) dc /rrr set /zzz (0) rrr ,, def fff init /fff-in set fff fff-in sub /fff set - /ddd 0 def { + /ddd-tmp 0 def 0 2 www length 1 sub { /iii set fff-in << www iii get rrr ,, >> degree << www iii 1 add get >> mul - ddd add /ddd set + ddd-tmp add /ddd-tmp set } for + ddd-tmp ddd gt { /ddd ddd-tmp def } { } ifelse fff zzz eq { exit } { } ifelse fff init /fff-in set fff fff-in sub /fff set } loop - /ord_w.LLL + /ord_w_all.LLL /arg1 ddd def ] pop popVariables @@ -3320,6 +3322,10 @@ newline ]] putUsages /cancelCoeff { + /arg1 set + [(reduceContent) arg1] gbext 0 get +} def +/cancelCoeff_org { /arg1 set [/in-cancelCoeff /ff /gg /dd /dd2] pushVariables [ /ff arg1 def @@ -3725,6 +3731,149 @@ $ [ff ff] fromVectors :: $ popVariables arg1 } def + +[(execve) + [ + (command execve) + ([arg0 arg1 arg2 ...] execve ) + (It executes the command by the system call execve.) + (cf. system, forkExec) + ] +] putUsages + +/execve { + /execve.arg set + [(forkExec) execve.arg [ ] 1] extension +} def + +[(beginEcart) + [ + (beginEcart) + (Set the environments for the ecart division algorithm.) + ] +] putUsages + +/ecart.debug_reduction1 0 def +/beginEcart { + (red@) (ecart) switch_function + [(Ecart) 1] system_variable + [(CheckHomogenization) 0] system_variable + [(ReduceLowerTerms) 0] system_variable + [(AutoReduce) 0] system_variable + [(EcartAutomaticHomogenization) 0] system_variable + ecart.debug_reduction1 { + (red@) (debug) switch_function + } { } ifelse +} def + +[(endEcart) + [ + (endEcart) + (End of using the ecart division algorithm.) + ] +] putUsages + +/endEcart { + (red@) (standard) switch_function + [(Ecart) 0] system_variable + [(degreeShift) (reset)] homogenize pop +} def + +/ord_ws_all { + /arg2 set /arg1 set + [(ord_ws_all) arg1 arg2] gbext +} def +[(ord_ws_all) + [ + (fv wv ord_ws_all degree) + ( ord_ws_all returns the ord with respect to the weight vector wv.) + $Example: [(x,y) ring_of_differential_operators 0] define_ring $ + $ (Dx^2+x*Dx*Dy+2). [(Dx) 1 (Dy) 1] weightv ord_ws_all :: $ + ( ) + (fv [wv shiftv] ord_ws_all degree) + ( ord_ws_all returns the ord with respect to the weight vector wv and) + ( the shift vector shiftv.) + $Example: [(x,y) ring_of_differential_operators 0] define_ring $ + $ [(Dx^2+x*Dx*Dy+2). (Dx).] [[(Dx) 1 (Dy) 1] weightv [0 2]] ord_ws_all ::$ + ( ) + (cf: init, gbext. Obsolete: ord_w, ord_w_all) + ] +] putUsages + +[(newVector) + [( n newVector vec) +]] putUsages +/newVector { + /arg1 set + [/in-newVector /n] pushVariables + [ + /n arg1 def + [(newVector) n] extension /arg1 set + ] pop + popVariables + arg1 +} def + +[(newMatrix) + [( [m n] newMatrix mat) +]] putUsages +/newMatrix { + /arg1 set + [/in-newMatrix /n] pushVariables + [ + /n arg1 def + [(newMatrix) n 0 get n 1 get] extension /arg1 set + ] pop + popVariables + arg1 +} def + +/usages { + /arg1 set + [/name /flag /n /k /slist /m /i /sss] pushVariables + [ + /name arg1 def + /flag true def + + %BUG: should use regular expression in a future. + name tag 1 eq { + @.usages { 0 get } map shell { (, ) nl } map /sss set + } { + + /sss [ ] def + @.usages length /n set + 0 1 << n 1 sub >> + { + /k set + name << @.usages k get 0 get >> eq + { + /slist @.usages k get 1 get def + /m slist length def + 0 1 << m 1 sub >> { + /i set + sss slist i get append nl append /sss set + } for + /flag false def + } + { } + ifelse + } for + + %BUG: cannot get usages of primitives. + flag + {name Usage /sss [(Usage of ) name ( could not obtained.) nl ] def} + { } + ifelse + } ifelse + /arg1 sss cat def + ] pop + popVariables + arg1 +} def +[(usages) + [(key usages usages-as-a-string) + (num usages list-of-key-words) +]] putUsages ;