=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/Doc/complex.sm1,v retrieving revision 1.5 retrieving revision 1.9 diff -u -p -r1.5 -r1.9 --- OpenXM/src/kan96xx/Doc/complex.sm1 2000/08/01 07:26:23 1.5 +++ OpenXM/src/kan96xx/Doc/complex.sm1 2004/09/10 13:20:22 1.9 @@ -1,4 +1,4 @@ -% $OpenXM: OpenXM/src/kan96xx/Doc/complex.sm1,v 1.4 2000/07/30 09:55:39 takayama Exp $ +% $OpenXM: OpenXM/src/kan96xx/Doc/complex.sm1,v 1.8 2002/08/11 08:39:50 takayama Exp $ %% lib/complex.sm1 [ functions for complex ], 1999, 9/9 %% cf. yama:1999/Int/uli.sm1 %%%%%%%%%%%%%%%%%%% commands %%%%%%%%%%%%%%%%%%%%%%%%% @@ -267,12 +267,19 @@ %% [M d] res-solv c'/r ; M : matrix, d, c' : vectors, r : scalar, c'/r =c /res-solv { /arg1 set - [/in-res-solv /M /d /ans /B /vv /G /rr /rng] pushVariables + [/in-res-solv /M /d /ans /B /vv /G /rr /rng /nn] pushVariables [(CurrentRingp) (KanGBmessage)] pushEnv [ + /nn arg1 length def /M arg1 0 get def /d arg1 1 get def - M getRing /rng set + nn 3 eq { + /rng arg1 2 get def + }{ + M getRing /rng set + rng tag RingP eq { } + { d getRing /rng set } ifelse + }ifelse rng res-getx /vv set uli.verbose { (res-solv : vv = ) messagen vv message } { } ifelse uli.verbose { } { [(KanGBmessage) 0] system_variable } ifelse @@ -298,7 +305,7 @@ d G 0 get reduction-noH /rr set rr 0 get (0). eq { [rr 2 get] B mul 0 get /ans set - /ans [ ans { toString rng ,, (-1) rng ,, mul} map + /ans [ ans { toString rng __ (-1) rng __ mul} map rr 1 get toString .. ] def } { /ans null def @@ -318,6 +325,9 @@ (Note that M and d are not treated as an element of the homogenized Weyl) (algebra. If M or d contains the homogenization variable h, it automatically) (set to 1. If you need to use h, use the command res-solv-h) + $[M d rng] res-solv [c' r] $ + $ rng is a ring object. $ + $ res-solv extracts variables names from rng, but defines a new ring. $ $Example 1: [(x,y) ring_of_differential_operators [[(x) -1 (Dx) 1]] weight_vector 0] $ $ define_ring $ $ [ [ [(x Dx + 2).] [ (Dx (x Dx + 3) - (x Dx + 2) (x Dx -4)).]] [(1).]] $ @@ -359,12 +369,19 @@ %% M : matrix, d, c' : vectors, r : scalar, c'/r =c /res-solv-h { /arg1 set - [/in-res-solv-h /M /d /ans /B /vv /G /rr /rng] pushVariables + [/in-res-solv-h /M /d /ans /B /vv /G /rr /rng /nn] pushVariables [(CurrentRingp) (KanGBmessage)] pushEnv [ + /nn arg1 length def /M arg1 0 get def /d arg1 1 get def - M getRing /rng set + nn 3 eq { + /rng arg1 2 get def + }{ + M getRing /rng set + rng tag RingP eq { } + { d getRing /rng set } ifelse + }ifelse rng res-getx /vv set uli.verbose { (res-solv-h : vv = ) messagen vv message } { } ifelse uli.verbose { } { [(KanGBmessage) 0] system_variable } ifelse @@ -394,7 +411,7 @@ d G 0 get reduction /rr set rr 0 get (0). eq { [rr 2 get] B mul 0 get /ans set - /ans [ ans { toString rng ,, (-1) rng ,, mul} map + /ans [ ans { toString rng __ (-1) rng __ mul} map rr 1 get toString .. ] def } { /ans null def @@ -792,6 +809,9 @@ [(intersection) [(Ideal intersections in the ring of differential operators.) + ([ I1 I2 V-list ] intersection : I1 and I2 are ideals, and V-list) + (is a list of variables. It returns the ideal intersection of I1 and I2.) + (Intersection is computed in the ring of differential operators.) $Example 1: [[[(x1) (x2)] [(x2) (x4)] (x1,x2,x3,x4)] intersection$ $ [(x2) (x4^2)] (x1,x2,x3,x4)] intersection :: $ $Example 2: [[[(x1) (x2)] [(x2) (x4)] (x1,x2,x3,x4)] intersection$ @@ -862,6 +882,9 @@ /vlist ff 2 get def /mm slist length def + vlist tag ArrayP eq { + vlist { toString } map from_records /vlist set + } { } ifelse [vlist to_records pop] [(_z) (_y)] join /vlist2 set [vlist2 from_records ring_of_polynomials [[(_z) 1 (_y) 1]] weight_vector