=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/Doc/complex.sm1,v retrieving revision 1.3 retrieving revision 1.7 diff -u -p -r1.3 -r1.7 --- OpenXM/src/kan96xx/Doc/complex.sm1 2000/06/08 08:35:01 1.3 +++ OpenXM/src/kan96xx/Doc/complex.sm1 2001/11/26 01:25:44 1.7 @@ -1,4 +1,4 @@ -% $OpenXM: OpenXM/src/kan96xx/Doc/complex.sm1,v 1.2 2000/03/23 11:54:08 takayama Exp $ +% $OpenXM: OpenXM/src/kan96xx/Doc/complex.sm1,v 1.6 2000/12/29 07:19:37 takayama Exp $ %% lib/complex.sm1 [ functions for complex ], 1999, 9/9 %% cf. yama:1999/Int/uli.sm1 %%%%%%%%%%%%%%%%%%% commands %%%%%%%%%%%%%%%%%%%%%%%%% @@ -7,7 +7,7 @@ [(complex.sm1 : 1999, 9/28, res-div, res-solv, res-kernel-image, res-dual ) ( 2000, 6/8, isExact_h, isExact ) (In this package, complex is expressed in terms of matrices.) -] {message} map +] {message-quiet} map /uli.verbose 0 def /uli.weight [(x) -1 (y) -1 (Dx) 1 (Dy) 1] def @@ -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 @@ -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 @@ -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$ @@ -934,6 +954,7 @@ /LLL.isExact_h /arg1 ans def ] pop + popVariables arg1 } def @@ -974,6 +995,7 @@ /LLL.isExact /arg1 ans def ] pop + popVariables arg1 } def