=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/Doc/oxasir.sm1,v retrieving revision 1.3 retrieving revision 1.7 diff -u -p -r1.3 -r1.7 --- OpenXM/src/kan96xx/Doc/oxasir.sm1 2001/12/28 01:20:26 1.3 +++ OpenXM/src/kan96xx/Doc/oxasir.sm1 2002/08/10 13:30:49 1.7 @@ -1,10 +1,11 @@ -% $OpenXM: OpenXM/src/kan96xx/Doc/oxasir.sm1,v 1.2 1999/11/11 01:35:07 takayama Exp $ +% $OpenXM: OpenXM/src/kan96xx/Doc/oxasir.sm1,v 1.6 2002/03/16 00:53:55 takayama Exp $ %% kxx/oxasir.sm1 1998, 2/12 (this version is at Old/oxasir.sm1.19980212 %% 3/1, 1995, 11/5, 11/21 %% This file is error clean. %%%%%%% How to install. %%% Set ASIR_LIBDIR if necessary. Ex. /u/nobuki/lib/asir -%%% write ~/.asirrc : load("gr")$ load("primdec")$ end$ +%%% write ~/.asirrc : load("gr")$ load("primdec")$ load("bfct")$ end$ +%%% or it is written in OpenXM/rc/asirrc in OpenXM env, it's fine. %%% oxasir.asir must be in %%% LOAD_SM1_PATH or oxasirpath.asirlib %%% Edit below @@ -74,7 +75,19 @@ oxasir.verbose { /asirinit { %% gr and primdec are loaded by .asirrc /asirinit.peer set - [asirinit.peer oxasirpath.asirlib] loadAsirFile + [(ostype)] extension 0 get (windows) eq { + [(getenv) (OSTYPE)] extension tag 0 eq { + [asirinit.peer (oxasir-win.rr)] oxasirParseFile + }{ + [(getenv) (OSTYPE)] extension (cygwin) eq { + [asirinit.peer oxasirpath.asirlib] loadAsirFile + }{ + [asirinit.peer (oxasir-win.rr)] oxasirParseFile + } ifelse + } ifelse + }{ + [asirinit.peer oxasirpath.asirlib] loadAsirFile + } ifelse } def /asirconnect { [(localhost) 1300 1200] oxconnect /oxasir.ccc set @@ -577,6 +590,74 @@ oxasir.verbose { $Example 1: [[(2 x -2) (4 x - 8)] (x)] reduceByAsir $ (Note that there may be a gcd that is more than 1 among the coefficients.) ]] putUsages + +%% File should be preprocessed by OpenXM/misc/packages/Windows/oxpp +%% and ./oxapp --removeSharp +[(oxasirParseFile) +[$[peer filename] oxasirParseFile $ + $File should be preprocessed by OpenXM/misc/packages/Windows/oxpp$ + $and ./oxapp --removeSharp $ +]] putUsages + +/oxasirParseFile { + /arg1 set + [/in-oxasirParseFile /fname /sss] pushVariables + [ + /fname arg1 1 get def + /peer arg1 0 get def + fname pushfile /sss set + peer + [$if (1) { ; $ sss (}$)] cat + oxsubmit + ] pop + popVariables +} def + +[(bfct) + [(You need to install ox_asir server to use this function. (ox_asir function)) + ( f bfct b ) + ( poly f; poly b) + ([f v] bfct b) + ( string f ) + ( b is the global b-function of the polynomial f.) + (Example: (x^3-y^2) bfct fctr :: ) + (Algorithm: M.Noro, Mathematical Software, icms 2002, pp.???-???) + ( ) + (If you interrupted the computation by typing ctrl-C, type in ) + ( oxasir.ccc oxreset ; ) + (to interrupt the ox_asir server.) + ( ) + (This function requires plugins cmo, socket and ox_asir server. cf.oxasir) +]] putUsages + +/bfct { + /arg1 set + [/in-bfct /f /comm /vv] pushVariables + [(CurrentRingp)] pushEnv + [ + /f arg1 def + oxasir.ccc [ ] eq { + (Starting ox_asir server.) message + ox_asirConnectMethod + } { } ifelse + + f isPolynomial not { + /vv f 1 get def + vv isArray { /vv vv from_records def } { } ifelse + /f f 0 get def + [vv ring_of_polynomials 0] define_ring + f . /f set + }{ } ifelse + oxasir.ccc [(oxasir_bfct) f] asir /f set + [(s) ring_of_polynomials 0] define_ring + f . /f set + [f f fctr] /arg1 set + ] pop + popEnv + popVariables + arg1 +} def + /oxasir.sm1.loaded 1 def [(ostype)] extension 0 get (windows) eq {