=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/Doc/ox.sm1,v retrieving revision 1.38 retrieving revision 1.40 diff -u -p -r1.38 -r1.40 --- OpenXM/src/kan96xx/Doc/ox.sm1 2004/03/04 05:18:26 1.38 +++ OpenXM/src/kan96xx/Doc/ox.sm1 2004/08/22 02:00:24 1.40 @@ -1,4 +1,4 @@ -%%%%%%%%%%% $OpenXM: OpenXM/src/kan96xx/Doc/ox.sm1,v 1.37 2004/03/03 06:09:29 takayama Exp $ +%%%%%%%%%%% $OpenXM: OpenXM/src/kan96xx/Doc/ox.sm1,v 1.39 2004/03/08 08:24:42 takayama Exp $ /ox.sm1.myname (ox-new.sm1) def @@ -77,6 +77,7 @@ ox.version [(Version)] system_variable gt /SM_dupErrors 276 def /SM_pushCMOtag 277 def +/SM_executeFunctionWithOptionalArgument 282 def /SM_control_kill 1024 def /SM_control_reset_connection 1030 def @@ -90,6 +91,7 @@ ox.version [(Version)] system_variable gt (Example: oxsm1.ccc [1 2 3] oxpushcmo oxsm1.ccc oxpopcmo /ff set ff :: ) ( ) (client ss oxexecutestring(oxsubmit) <>, client ss oxexec <>) + (client ss oxexecWithOpt ) (Example: oxsm1.ccc (0 1 10 { pop $Hello$ message } for) oxexecutestring ) (Example: oxsm1.ccc (2).. oxpushcmo oxsm1.ccc (10).. oxpushcmo ) @@ -259,6 +261,23 @@ ox.verbose { oxhelp } { } ifelse } { } ifelse [(oxReq) arg2 SM_executeFunction arg1] extension pop } def +/oxexecWithOpt { + /arg1 set + /arg2 set + ox.takelog { ox.log [(oxSerial)] extension ox.mod arg1 put + ox.log [(oxSerial)] extension 1 add ox.mod + (executeFunctionWithOptionalArgument) put + } { } ifelse + [(oxReq) arg2 SM_executeFunctionWithOptionalArgument arg1] extension pop +} def +[(oxexecWithOpt) + [ + $Example: $ + $oxsm1.ccc (/foo { message message message } def) oxsubmit ;$ + $oxsm1.ccc (hello) oxpushcmo oxsm1.ccc 1 oxpushcmo oxsm1.ccc [[(opt) 0]] oxpushcmo ;$ + $oxsm1.ccc (foo) oxexecWithOpt $ + ] +] putUsages /oxsubmit2 { oxexec } def @@ -1075,6 +1094,75 @@ oxasir.verbose { popVariables arg1 } def + +/polygcd { + /arg1 set + [/pp /f /g /comm /vv] pushVariables + [(CurrentRingp)] pushEnv + [ + /pp arg1 def + oxasir.ccc [ ] eq { + (Starting ox_asir server.) message + ox_asirConnectMethod + } { } ifelse + + pp isArray { + /f pp 0 get def + /g pp 1 get def + pp length 3 eq { + /vv pp 2 get def + vv isArray { /vv vv from_records def } { } ifelse + [vv ring_of_polynomials 0] define_ring + f . /f set + g . /g set + } { } ifelse + }{ (usage: [f g] polygcd) error } ifelse + oxasir.ccc [(gcd) f g] asir /arg1 set + ] pop + popEnv + popVariables + arg1 +} def +[(polygcd) + [( [f g] polygcd r ) + ( [f g v] polygcd r) + (Example: [(x^2-1) (x-1) [(x)]] polygcd ) + ] +] putUsages +/polylcm { + /arg1 set + [/pp /f /g /comm /vv] pushVariables + [(CurrentRingp)] pushEnv + [ + /pp arg1 def + oxasir.ccc [ ] eq { + (Starting ox_asir server.) message + ox_asirConnectMethod + } { } ifelse + + pp isArray { + /f pp 0 get def + /g pp 1 get def + pp length 3 eq { + /vv pp 2 get def + vv isArray { /vv vv from_records def } { } ifelse + [vv ring_of_polynomials 0] define_ring + f . /f set + g . /g set + } { } ifelse + }{ (usage: [f g] polylcm) error } ifelse + oxasir.ccc [(lcm) f g] asir /arg1 set + ] pop + popEnv + popVariables + arg1 +} def +[(polylcm) + [( [f g] polylcm r ) + ( [f g v] polylcm r) + (Example: [(x^2-1) (x-1) [(x)]] polylcm ) + ] +] putUsages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% [(chattr) 0 /findIntegralRoots] extension pop