=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/Doc/ox.sm1,v retrieving revision 1.29 retrieving revision 1.33 diff -u -p -r1.29 -r1.33 --- OpenXM/src/kan96xx/Doc/ox.sm1 2003/12/08 05:50:31 1.29 +++ OpenXM/src/kan96xx/Doc/ox.sm1 2004/02/24 01:36:14 1.33 @@ -1,4 +1,4 @@ -%%%%%%%%%%% $OpenXM: OpenXM/src/kan96xx/Doc/ox.sm1,v 1.28 2003/12/04 10:35:24 takayama Exp $ +%%%%%%%%%%% $OpenXM: OpenXM/src/kan96xx/Doc/ox.sm1,v 1.32 2004/02/24 00:45:33 takayama Exp $ /ox.sm1.myname (ox-new.sm1) def @@ -1407,7 +1407,7 @@ oxasir.verbose { f { toString . } map /f set vvv { . } map /vvv set ddd { . } map /ddd set - /wt wt generic_bfct.aux1 def + /wt [vvv ddd wt] generic_bfct.aux1 def } ifelse [f vvv ddd wt] message @@ -1428,22 +1428,103 @@ oxasir.verbose { /generic_bfct.aux1 { /arg1 set - [/in-generic_bfct.aux1 /wt /wtx /wtd /n] pushVariables + [/in-generic_bfct.aux1 /ii /jj /wt /wtx /wtd /vv /dd /n] pushVariables [ - arg1 /wt set - /n [(N)] system_variable def - wt { dup tag PolyP eq { toString } { } ifelse } map /wt set - wt weightv /wt set - /wtx wt n carN rest reverse rest reverse def - /wtd wt reverse n carN reverse - rest reverse rest reverse def - wtx wtd join /wt set + arg1 2 get /wt set + arg1 0 get /vv set + arg1 1 get /dd set + /wtx [ 0 1 vv length 1 sub { pop (0).. } for ] def + /n wt length def + 0 2 n 1 sub { + /ii set + 0 1 vv length 1 sub { + /jj set + wt ii get toString dd jj get toString eq { + wtx jj << wt ii 1 add get >> put + } { } ifelse + } for + } for + + wtx /wt set wt { dup tag IntegerP eq { (universalNumber) dc } { } ifelse } map /wt set wt /arg1 set ] pop popVariables arg1 } def +/verbose.wgr 1 def +%[ ff vv ww ] asir.wgb [gb init] +/asir.wgr { + /arg1 set + [/in-asir.gb /ff /vv /ww /vvx /vvd /avv /comm /wvec /i] pushVariables + [ + /ff arg1 0 get def + /vv arg1 1 get def + /ww arg1 2 get def + + oxasir.ccc [ ] eq { + (Starting ox_asir server.) message + ox_asirConnectMethod + } { } ifelse + + vv isArray { + vv from_records /vv set + } { } ifelse + oxasir.ccc [(dp_gr_print) (2)..] asir + [vv to_records pop] /vvx set + vvx { toString (D) 2 1 roll 2 cat_n } map /vvd set + + [ + 0 1 vvx length 1 sub { + /i set + vvx i get + 0 ww i get sub + vvd i get + ww i get + } for + ] /wvec set + + [vv ring_of_differential_operators + [wvec] weight_vector + 0] define_ring + + ff { . dehomogenize homogenize } map /ff set + vvx { . } map /vvx set %%ex [x,y] + vvd { . } map /vvd set %%ex [Dx,Dy] + vvx vvd join [(h).] join /avv set + + verbose.wgr { + (Asir (-w,w) gb in the Weyl algebra) message + (wvec=) messagen wvec message + (ff=) messagen ff message + (avv=) messagen avv message + } { } ifelse + + [$dp_weyl_set_weight(newvect($ ww length toString $,$ + ww toString $));$ ] cat /comm set + + verbose.wgr { + comm message + } { } ifelse + + oxasir.ccc comm oxsubmit ; + + oxasir.ccc [(dp_weyl_gr_main) ff avv (0).. (1).. (11)..] asir + /arg1 set + ] pop + popVariables + arg1 +} def +[(asir.wgr) +[([ ff vv ww ] asir.wgr g) + $It computes the (-ww,ww) Grobner basis of ff in the homogenized Weyl algebra.$ + (Homogenization is automatically done.) + $Example 1: $ + $ [ [(x*Dx+y*Dy-1) (Dx*Dy)] $ + $ (x,y) $ + $ [1 2 ] ] asir.wgr $ +]] putUsages + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% functions to start ox_asir %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%