version 1.1, 1999/10/08 02:12:02 |
version 1.7, 2002/08/10 13:30:49 |
|
|
|
% $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 |
%% kxx/oxasir.sm1 1998, 2/12 (this version is at Old/oxasir.sm1.19980212 |
%% 3/1, 1995, 11/5, 11/21 |
%% 3/1, 1995, 11/5, 11/21 |
%% This file is error clean. |
%% This file is error clean. |
%%%%%%% How to install. |
%%%%%%% How to install. |
%%% Set ASIR_LIBDIR if necessary. Ex. /u/nobuki/lib/asir |
%%% 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 |
%%% oxasir.asir must be in |
%%% LOAD_SM1_PATH or oxasirpath.asirlib |
%%% LOAD_SM1_PATH or oxasirpath.asirlib |
%%% Edit below |
%%% Edit below |
|
|
/asirinit { |
/asirinit { |
%% gr and primdec are loaded by .asirrc |
%% gr and primdec are loaded by .asirrc |
/asirinit.peer set |
/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 |
} def |
/asirconnect { |
/asirconnect { |
[(localhost) 1300 1200] oxconnect /oxasir.ccc set |
[(localhost) 1300 1200] oxconnect /oxasir.ccc set |
|
|
/asirconnect2 { |
/asirconnect2 { |
[oxpath.oxlog.xterm oxpath.ox ( -ox ) oxasirpath.oxasir |
[oxpath.oxlog.xterm oxpath.ox ( -ox ) oxasirpath.oxasir |
oxpath.null |
oxpath.null |
( & )] cat system |
( & )] cat system-csh |
% (xterm -e /home/nobuki/kxx/ox -ox /home/nobuki/kxx/ox_asir &) system |
% (xterm -e /home/nobuki/kxx/ox -ox /home/nobuki/kxx/ox_asir &) system-csh |
% (kterm -iconic -e /home/nobuki/kxx/ox -ox /home/nobuki/kxx/ox_asir &) system |
% (kterm -iconic -e /home/nobuki/kxx/ox -ox /home/nobuki/kxx/ox_asir &) system-csh |
% For MSRI |
% For MSRI |
% Eterm is also nice (including kanji). rxvt is also nice. |
% Eterm is also nice (including kanji). rxvt is also nice. |
%(xterm -icon -e /u/nobuki/tmp/kxx/ox -ox /u/nobuki/tmp/Ox/ox_asir2 &) system |
%(xterm -icon -e /u/nobuki/tmp/kxx/ox -ox /u/nobuki/tmp/Ox/ox_asir2 &) system-csh |
%(kterm2 -e /u/nobuki/tmp/kxx/ox -ox /u/nobuki/tmp/Ox/ox_asir2 &) system |
%(kterm2 -e /u/nobuki/tmp/kxx/ox -ox /u/nobuki/tmp/Ox/ox_asir2 &) system-csh |
% (If you start the server automatically, you may have a trouble to) message |
% (If you start the server automatically, you may have a trouble to) message |
% (oxreset. In order to avoid this trouble, start the server by hand.) message |
% (oxreset. In order to avoid this trouble, start the server by hand.) message |
(sleep 5) system |
(sleep 5) system-csh |
[(localhost) 1300 1200] oxconnect /oxasir.ccc set |
[(localhost) 1300 1200] oxconnect /oxasir.ccc set |
/ccc oxasir.ccc def %% for compatibility. |
/ccc oxasir.ccc def %% for compatibility. |
oxasir.ccc asirinit |
oxasir.ccc asirinit |
Line 108 oxasir.verbose { |
|
Line 122 oxasir.verbose { |
|
/asirconnect3 { |
/asirconnect3 { |
[oxpath.oxlog.xterm oxpath.ox ( -ox ) oxasirpath.oxasir |
[oxpath.oxlog.xterm oxpath.ox ( -ox ) oxasirpath.oxasir |
( -data 2300 -control 2200) oxpath.null |
( -data 2300 -control 2200) oxpath.null |
( & )] cat system |
( & )] cat system-csh |
% (If you start the server automatically, you may have a trouble to) message |
% (If you start the server automatically, you may have a trouble to) message |
% (oxreset. In order to avoid this trouble, start the server by hand.) message |
% (oxreset. In order to avoid this trouble, start the server by hand.) message |
(sleep 5) system |
(sleep 5) system-csh |
[(localhost) 2300 2200] oxconnect /oxasir.ccc2 set |
[(localhost) 2300 2200] oxconnect /oxasir.ccc2 set |
/ccc2 oxasir.ccc2 def %% for compatibility. |
/ccc2 oxasir.ccc2 def %% for compatibility. |
oxasir.ccc2 asirinit |
oxasir.ccc2 asirinit |
Line 401 oxasir.verbose { |
|
Line 415 oxasir.verbose { |
|
[oxpath.oxlog.xterm oxpath.ox ( -reverse -ox ) oxasirpath.oxasir |
[oxpath.oxlog.xterm oxpath.ox ( -reverse -ox ) oxasirpath.oxasir |
( -data ) data ( -control ) control ( -pass ) pass |
( -data ) data ( -control ) control ( -pass ) pass |
oxpath.null |
oxpath.null |
( &)] cat system |
( &)] cat system-csh |
[(oxCreateClient2) peer 0 pass] extension /oxasir set |
[(oxCreateClient2) peer 0 pass] extension /oxasir set |
%% 0 means connect from only localhost. |
%% 0 means connect from only localhost. |
oxasir asirinit |
oxasir asirinit |
Line 577 oxasir.verbose { |
|
Line 591 oxasir.verbose { |
|
(Note that there may be a gcd that is more than 1 among the coefficients.) |
(Note that there may be a gcd that is more than 1 among the coefficients.) |
]] putUsages |
]] 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 |
/oxasir.sm1.loaded 1 def |
initializePathNamesForOxAsir %% This should be the last. |
[(ostype)] extension 0 get (windows) eq { |
|
[(parse) (oxasir-win.sm1) pushfile ] extension |
|
}{ |
|
initializePathNamesForOxAsir %% This should be the last. |
|
} ifelse |