=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/Doc/ox.sm1,v retrieving revision 1.24 retrieving revision 1.36 diff -u -p -r1.24 -r1.36 --- OpenXM/src/kan96xx/Doc/ox.sm1 2003/07/21 12:41:24 1.24 +++ OpenXM/src/kan96xx/Doc/ox.sm1 2004/03/01 07:19:44 1.36 @@ -1,4 +1,4 @@ -%%%%%%%%%%% $OpenXM: OpenXM/src/kan96xx/Doc/ox.sm1,v 1.23 2003/07/21 07:31:59 takayama Exp $ +%%%%%%%%%%% $OpenXM: OpenXM/src/kan96xx/Doc/ox.sm1,v 1.35 2004/02/28 13:39:42 takayama Exp $ /ox.sm1.myname (ox-new.sm1) def @@ -15,7 +15,7 @@ [(getenv) (OXSTART100)] extension tag 0 eq not { /oxstart100 [(getenv) (OXSTART100)] extension def } { } ifelse -oxstart100 message +oxstart100 message-quiet /ox.sm1.loaded 1 def /oxasir.sm1.loaded 1 def @@ -76,6 +76,8 @@ ox.version [(Version)] system_variable gt /SM_getsp 275 def /SM_dupErrors 276 def +/SM_pushCMOtag 277 def + /SM_control_kill 1024 def /SM_control_reset_connection 1030 def /SM_control_spawn_server 1027 def @@ -96,18 +98,41 @@ ox.version [(Version)] system_variable gt (client str oxevalname, client str oxsetname, client num oxpops, client oxget) ( ) (client oxmathcap, client oxsetmathcap, oxgenportfile, oxremoveportfile) + (client oxpushcmotag) ( ) (client oxgetsp --- get stack pointer, client oxgeterrors --- get all errors) (cleint oxisData, client oxreset, client oxshutdown) - (oxhelp for this message, [(oxWatch) client] extension to start a log.) + (oxhelp for this message) + ([(oxWatch) client] extension to start a log.) + $ ex 1. (ox.sm1) run sm1connectr [(oxWatch) oxsm1.ccc] extension $ + $ oxsm1.ccc ( [(cmoLispLike) 0] extension ) oxsubmit $ + $ oxsm1.ccc ( [(cmoLispLike) 1] extension ) oxsubmit $ ([(oxSerial)] extension serial-number-of-out-going-ox-packet.) (oxpopcmo1, oxpopcmo2, sm1connectr ox_launch, ox_launch_nox) (oxNoX : set an environment to invoke oxlog without xterm and to call oxlog with >& /dev/null) $ ex 1. (ox.sm1) run oxNoX sm1connectr $ $ ex 2. (ox.sm1) run oxNoX (x^2-1). fctr pmat ; $ + $ $ + $cf. extension-oxLog $ ] ] putUsages +[(extension-oxLog) +[ +$Take the log of communication in files.$ +$[(oxLog) client logfile_for_incomming_data logfile_for_outgoing_data] extension $ +$Example:$ +$ [(parse) (ox.sm1) pushfile] extension$ +$ sm1connectr$ +$ (i.t) (w) file /ii set$ +$ (o.t) (w) file /oo set$ +$ [(oxLog) oxsm1.ccc ii oo] extension $ +$ [(oxWatch) oxsm1.ccc ] extension$ +$ oxsm1.ccc 1 oxpushcmo ;$ +$ oxsm1.ccc oxpopcmo ;$ +$ [(oxLogStop) oxsm1.ccc] extension$ +]] putUsages + /oxconnect { /arg1 set [(oxCreateClient) arg1 aload pop] extension @@ -124,6 +149,11 @@ ox.verbose { oxhelp } { } ifelse [(oxReq) arg2 SM_DUMMY_sendcmo arg1] extension pop } def +/oxpushcmotag { + /arg2 set + [(oxReq) arg2 SM_pushCMOtag ] extension pop +} def + /oxpopcmo { /arg1 set [(oxReq) arg1 SM_popCMO ] extension pop @@ -465,7 +495,7 @@ ox.verbose { oxhelp } { } ifelse [(oxCreateControl_RFC_101) peer 0 pass] extension /oxsm1.ccc set %% 0 means connect from only localhost. /ox.ccc oxsm1.ccc def - (The server is binded to the variable oxsm1.ccc) message + (The server is binded to the variable oxsm1.ccc) message-quiet oxsm1.ccc ] pop popVariables @@ -483,7 +513,7 @@ ox.verbose { oxhelp } { } ifelse oxsm1.ccc oxpopcmo /engineID set [(oxCreateEngine_RFC_101) peer 0 (Empty) engineID] extension /ox.ddd set - (The engine is binded to the variables ox.ddd) message + (The engine is binded to the variables ox.ddd) message-quiet ] pop popVariables arg1 @@ -510,6 +540,7 @@ ox.verbose { oxhelp } { } ifelse [ /L [(oxGetClientList)] extension def (In ox103_reset...) message + (killall in oxshell...) message [(killall)] oxshell pop /n L length def 0 1 n 1 sub { /i set @@ -609,20 +640,24 @@ ox.verbose { oxhelp } { } ifelse /sm1connectr { [/in-sm1connectr /pass /peer /data /control ] pushVariables [ + [(getServerEnv) (bin/ox_sm1)] extension tag 0 eq { + (Server bin/ox_sm1 is not found.) error + }{ } ifelse /pass [(oxGenPass)] extension def /peer [(oxGetPort) (localhost)] extension def /data peer 1 get toString def /control peer 3 get toString def - peer message + peer message-quiet [ oxstart100 + @@@.quiet { ( -quiet ) } { } ifelse Xm_noX { ( -nox ) } { } ifelse ( -oxserver bin/ox_sm1 -e ) ( -reverse ) ( -data ) data ( -control ) control ( -pass ) pass ( )] cat execve [(oxCreateClient2) peer 0 pass] extension /oxsm1.ccc set %% 0 means connect from only localhost. - (The server is binded to the variable oxsm1.ccc) message + (The server is binded to the variable oxsm1.ccc) message-quiet /ox.ccc oxsm1.ccc def oxsm1.ccc.init oxsm1.ccc @@ -653,7 +688,7 @@ ox.verbose { oxhelp } { } ifelse /peer [(oxGetPort) myhostname-ssh] extension def /data peer 1 get toString def /control peer 3 get toString def - peer message + peer message-quiet [(ssh -f ) machine ( -l ) name ( ") oxpath.oxlog.xterm-ssh oxpath.ox-ssh ( -reverse -ox ) oxpath.oxsm1-ssh ( -host ) myhostname-ssh @@ -696,6 +731,33 @@ ox.verbose { oxhelp } { } ifelse $ [(dc2.math.kobe-u.ac.jp) (taka)] sm1connectr-ssh /ox.ccc set $ ]] putUsages +%%% ntl +/ntlconnectr { + [/in-ntlconnectr /pass /peer /data /control ] pushVariables + [ + [(getServerEnv) (bin/ox_ntl)] extension tag 0 eq { + (Server bin/ox_ntl is not found.) error + }{ } ifelse + /pass [(oxGenPass)] extension def + /peer [(oxGetPort) (localhost)] extension def + /data peer 1 get toString def + /control peer 3 get toString def + peer message-quiet + [ + oxstart100 + Xm_noX { ( -nox ) } { } ifelse + ( -oxserver bin/ox_ntl -e ) ( -reverse ) + ( -data ) data ( -control ) control ( -pass ) pass + ( )] cat execve + [(oxCreateClient2) peer 0 pass] extension /oxntl.ccc set + %% 0 means connect from only localhost. + (The server is binded to the variable oxntl.ccc) message-quiet +% oxntl.ccc.init + oxntl.ccc + ] pop + popVariables +} def + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% Aux functions for ox_asir %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -1354,7 +1416,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 @@ -1375,35 +1437,121 @@ 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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /asirconnectr { [/in-asirconnectr /pass /peer /data /control /oxasir] pushVariables [ + [(getServerEnv) (bin/ox_asir)] extension tag 0 eq { + (Server bin/ox_sm1 is not found.) error + }{ } ifelse + /pass [(oxGenPass)] extension def /peer [(oxGetPort) (localhost)] extension def /data peer 1 get toString def /control peer 3 get toString def - peer message + peer message-quiet [ oxstart100 + @@@.quiet { ( -quiet ) } { } ifelse Xm_noX { ( -nox ) } { } ifelse ( -oxserver bin/ox_asir -e ) ( -reverse ) ( -data ) data ( -control ) control ( -pass ) pass @@ -1439,11 +1587,15 @@ oxasir.verbose { /k0connectr { [/in-k0connectr /pass /peer /data /control ] pushVariables [ + [(getServerEnv) (bin/ox_k0)] extension tag 0 eq { + (Server bin/ox_sm1 is not found.) error + }{ } ifelse + /pass [(oxGenPass)] extension def /peer [(oxGetPort) (localhost)] extension def /data peer 1 get toString def /control peer 3 get toString def - peer message + peer message-quiet [ oxstart100 Xm_noX { ( -nox ) } { } ifelse @@ -1452,10 +1604,12 @@ oxasir.verbose { ( )] cat execve [(oxCreateClient2) peer 0 pass] extension /oxk0.ccc set %% 0 means connect from only localhost. - (The server is binded to the variable oxk0.ccc) message + (The server is binded to the variable oxk0.ccc) message-quiet ox.k0.init /arg1 oxk0.ccc def ] pop popVariables arg1 } def +/@@@polymake.k0.ccc [ ] def +