version 1.5, 2000/09/25 05:12:51 |
version 1.10, 2002/08/14 03:26:36 |
|
|
@comment $OpenXM: OpenXM/src/asir-doc/parts/process.texi,v 1.4 2000/01/13 08:29:56 noro Exp $ |
@comment $OpenXM: OpenXM/src/asir-doc/parts/process.texi,v 1.9 2002/08/13 07:44:06 noro Exp $ |
\BJP |
\BJP |
@node $BJ,;67W;;(B,,, Top |
@node $BJ,;67W;;(B,,, Top |
@chapter $BJ,;67W;;(B |
@chapter $BJ,;67W;;(B |
|
|
@section OpenXM |
@section OpenXM |
|
|
\BJP |
\BJP |
@b{Asir} $B$O(B, $BJ,;67W;;$K$*$1$kDL?.%W%m%H%3%k$H$7$F(B, @b{OpenXM} |
@b{Asir} $B$O(B, $BJ,;67W;;$K$*$1$kDL?.%W%m%H%3%k$H$7$F(B, |
(Open message eXchange protocol for Mathematics) $B$r:NMQ$7$F$$$k(B. |
@b{OpenXM} |
@b{OpenXM} $B$O(B, $B<g$H$7$F?t3X%*%V%8%'%/%H$r%W%m%;%94V$G$d$j$H$j$9$k(B |
(Open message eXchange for Mathematics) $B%W%m%H%3%k$r:NMQ$7$F$$$k(B. |
|
@b{OpenXM} $B%W%m%8%'%/%H$K$D$$$F$O(B, |
|
@ifhtml |
|
<A HREF="http://www.math.sci.kobe-u.ac.jp/OpenXM/"> |
|
@end ifhtml |
|
@code{http://www.math.sci.kobe-u.ac.jp/OpenXM/} |
|
@ifhtml |
|
</A> |
|
@end ifhtml |
|
$B$r;2>H$7$F$[$7$$(B. |
|
|
|
@b{OpenXM} $B%W%m%H%3%k$O(B, $B<g$H$7$F?t3X%*%V%8%'%/%H$r%W%m%;%94V$G$d$j$H$j$9$k(B |
$B$?$a$N5,Ls$G$"$k(B. @b{OpenXM} $B$K$*$$$F$O(B |
$B$?$a$N5,Ls$G$"$k(B. @b{OpenXM} $B$K$*$$$F$O(B |
\E |
\E |
\BEG |
\BEG |
Line 38 On @b{Asir} distributed computations are done under @b |
|
Line 49 On @b{Asir} distributed computations are done under @b |
|
(Open message eXchange protocol for Mathematics), which |
(Open message eXchange protocol for Mathematics), which |
is a protocol for exchanging mainly mathematical objects |
is a protocol for exchanging mainly mathematical objects |
between processes. |
between processes. |
|
See |
|
@ifhtml |
|
<A HREF="http://www.math.sci.kobe-u.ac.jp/OpenXM/"> |
|
@end ifhtml |
|
@code{http://www.math.sci.kobe-u.ac.jp/OpenXM/} |
|
@ifhtml |
|
</A> |
|
@end ifhtml |
|
for the details of @b{OpenXM}. |
In @b{OpenXM} a distributed computation is done as follows: |
In @b{OpenXM} a distributed computation is done as follows: |
\E |
\E |
|
|
Line 506 input @code{quit}. |
|
Line 526 input @code{quit}. |
|
* ox_get_serverinfo:: |
* ox_get_serverinfo:: |
* generate_port try_bind_listen try_connect try_accept register_server:: |
* generate_port try_bind_listen try_connect try_accept register_server:: |
* ifplot conplot plot plotover:: |
* ifplot conplot plot plotover:: |
|
* open_canvas clear_canvas draw_obj draw_string:: |
@end menu |
@end menu |
|
|
\JP @node ox_launch ox_launch_nox ox_shutdown,,, $BJ,;67W;;$K4X$9$k4X?t(B |
\JP @node ox_launch ox_launch_nox ox_shutdown,,, $BJ,;67W;;$K4X$9$k4X?t(B |
Line 1913 identifier @var{id} is returned. |
|
Line 1934 identifier @var{id} is returned. |
|
@code{ifplot()} $B$O(B, 2 $BJQ?t4X?t(B @var{func} $B$N<B?t>e$G$NNmE@$N(B |
@code{ifplot()} $B$O(B, 2 $BJQ?t4X?t(B @var{func} $B$N<B?t>e$G$NNmE@$N(B |
$B%0%i%U$NI=<($r9T$&(B. @code{conplot()} $B$O(B, $BF1MM$N0z?t$KBP$7(B, |
$B%0%i%U$NI=<($r9T$&(B. @code{conplot()} $B$O(B, $BF1MM$N0z?t$KBP$7(B, |
$BEy9b@~$NI=<($r9T$&(B. @code{plot()} $B$O(B 1 $BJQ?t4X?t$N(B |
$BEy9b@~$NI=<($r9T$&(B. @code{plot()} $B$O(B 1 $BJQ?t4X?t$N(B |
$B%0%i%U$NI=<($r9T$&(B. Windows $BHG$O8=>u$G$OL$%5%]!<%H$G$"$k(B. |
$B%0%i%U$NI=<($r9T$&(B. |
|
|
@item |
@item |
UNIX $BHG$O(B, $B1s3V%W%m%;%9$K$h$j<B8=$5$l$F$$$k(B. $B%3%^%s%I$O(B @samp{ox_plot} |
$B$3$l$i$O(B OpenXM $B%5!<%P$H$7$F<B8=$5$l$F$$$k(B. UNIX $B>e$G$O(B |
$B$G(B, @code{ox_launch()} $B$K$h$j5/F0$7$F$*$/I,MW$,$"$k(B. @samp{ox_plot} |
@samp{ox_plot} $B$,(B, Windows $B>e$G$O(B @samp{engine} $B$,$3$l$i$N5!G=(B |
$B$O(B, @b{Asir} $B$NI8=`%i%$%V%i%j%G%#%l%/%H%j$K$"$k(B. |
$B$rDs6!$7$F$*$j(B, $B$3$l$i$O(B @b{Asir} $B$NI8=`%i%$%V%i%j%G%#%l%/%H%j$K$"$k(B. |
|
$B$3$l$i$O(B @code{ox_launch()} $B$^$?$O(B @code{ox_launch_nox()} |
|
$B$K$h$j5/F0$7$F$*$/I,MW$,$"$k(B. |
|
|
@item |
@item |
$B0z?t$NFb(B, @var{func} $B$OI,?\$G$"$k(B. $B$=$NB>$N0z?t$O%*%W%7%g%s$G$"$k(B. |
$B0z?t$NFb(B, @var{func} $B$OI,?\$G$"$k(B. $B$=$NB>$N0z?t$O%*%W%7%g%s$G$"$k(B. |
Line 1927 UNIX $BHG$O(B, $B1s3V%W%m%;%9$K$h$j<B8=$5$l$F$$$k( |
|
Line 1950 UNIX $BHG$O(B, $B1s3V%W%m%;%9$K$h$j<B8=$5$l$F$$$k( |
|
@table @var |
@table @var |
@item geometry |
@item geometry |
$B%&%#%s%I%&$N%5%$%:$r%I%C%HC10L$G(B @var{[x,y]} $B$G;XDj$9$k(B. |
$B%&%#%s%I%&$N%5%$%:$r%I%C%HC10L$G(B @var{[x,y]} $B$G;XDj$9$k(B. |
(UNIX $BHG$G$O(B @var{[}@code{300},@code{300}@var{]}. ) |
(@var{[}@code{300},@code{300}@var{]}. ) |
|
|
@item xrange, yrange |
@item xrange, yrange |
$BJQ?t$NHO0O$N;XDj$G(B, @var{[v,vmin,vmax]} $B$G;XDj$9$k(B. |
$BJQ?t$NHO0O$N;XDj$G(B, @var{[v,vmin,vmax]} $B$G;XDj$9$k(B. |
Line 2026 Function @code{ifplot()} draws a graph of real zeros o |
|
Line 2049 Function @code{ifplot()} draws a graph of real zeros o |
|
function. |
function. |
Function @code{conplot()} plots the contour lines for a same argument. |
Function @code{conplot()} plots the contour lines for a same argument. |
Function @code{plot()} draws the graph of a uninivariate function. |
Function @code{plot()} draws the graph of a uninivariate function. |
These functions are available on UNIX version (on @code{X11}). |
|
|
|
@item |
@item |
The plotting functions for UNIX version are realized on remote process |
The plotting functions are realized by an OpenXM server. |
facilities described previously. |
On UNIX it is @samp{ox_plot} in @b{Asir} root directory. |
The command for this is @samp{ox_plot} in @b{Asir} root directory. |
On Windows @samp{engine} acts as @samp{ox_plot}. |
Of course, it must be activated by @code{ox_launch()}. |
Of course, it must be activated by @code{ox_launch()} @code{ox_launch_nox()}. |
|
|
@item |
@item |
Argument @var{func} is indispensable. Other arguments are optional. |
Argument @var{func} is indispensable. Other arguments are optional. |
|
|
|
|
@item |
@item |
Several operations are available on the window: by button operations |
Several operations are available on the window: by button operations |
for UNIX version, and pull-down menus for Macintosh version. |
for UNIX version, and pull-down menus for Windows version. |
|
|
@table @code |
@table @code |
@item quit |
@item quit |
Line 2184 plot*form*ydone*background:white |
|
Line 2206 plot*form*ydone*background:white |
|
\JP @item $B;2>H(B |
\JP @item $B;2>H(B |
\EG @item References |
\EG @item References |
@fref{ox_launch ox_launch_nox ox_shutdown}, @fref{ox_reset ox_intr register_handler} |
@fref{ox_launch ox_launch_nox ox_shutdown}, @fref{ox_reset ox_intr register_handler} |
|
@end table |
|
|
|
\JP @node open_canvas clear_canvas draw_obj draw_string,,, $BJ,;67W;;$K4X$9$k4X?t(B |
|
\EG @node open_canvas clear_canvas draw_obj draw_string,,, Functions for distributed computation |
|
@subsection @code{open_canvas}, @code{clear_canvas}, @code{draw_obj}, @code{draw_string} |
|
@findex open_canvas |
|
@findex clear_canvas |
|
@findex draw_obj |
|
@findex draw_string |
|
|
|
@table @t |
|
@item open_canvas(@var{id}[,@var{geometry}]) |
|
\JP :: $BIA2hMQ%&%#%s%I%&(B ($B%-%c%s%P%9(B) $B$r@8@.$9$k(B. |
|
\EG :: Opens a canvas, which is a window for drawing objects. |
|
@item clear_canvas(@var{id},@var{index}) |
|
\JP :: $B%-%c%s%P%9$r%/%j%"$9$k(B. |
|
\EG :: Clears a canvas. |
|
@item draw_obj(@var{id},@var{index},@var{pointorsegment} [,@var{color}]) |
|
\JP :: $B%-%c%s%P%9>e$KE@$^$?$O@~J,$rIA2h$9$k(B. |
|
\EG :: Draws a point or a line segment on a canvas. |
|
@item draw_string(@var{id},@var{index},@var{[x,y]},@var{string} [,@var{color}]) |
|
\JP :: $B%-%c%s%P%9>e$KJ8;zNs$rIA2h$9$k(B. |
|
\EG :: Draws a character string on a canvas. |
|
@end table |
|
|
|
@table @var |
|
@item return |
|
0 |
|
@item id, index, color, x, y |
|
\JP $B@0?t(B |
|
\EG integer |
|
@item pointorsegment |
|
\JP $B%j%9%H(B |
|
\EG list |
|
@item string |
|
\JP $BJ8;zNs(B |
|
\EG character string |
|
@end table |
|
|
|
@itemize @bullet |
|
@item |
|
\BJP |
|
$B$3$l$i$O(B OpenXM $B%5!<%P(B @samp{ox_plot} (Windows $B>e$G$O(B @samp{engine}) |
|
$B$K$h$jDs6!$5$l$k(B. |
|
\E |
|
\BEG |
|
These functions are supplied by the OpenXM server @samp{ox_plot} |
|
(@samp{engine} on Windows). |
|
\E |
|
@item |
|
\BJP |
|
@code{open_canvas} $B$O(B, $BIA2hMQ$N%&%#%s%I%&(B($B%-%c%s%P%9(B)$B$r@8@.$9$k(B. |
|
@var{geometry} $B$K$h$j%&%#%s%I%&$N%5%$%:$r(B pixel $BC10L$G(B @var{[x,y]} $B$G;XDj$9$k(B. |
|
default size $B$O(B @var{[}@code{300},@code{300}@var{]}. |
|
$B%-%c%s%P%9$N<1JL;R$H$7$F(B, $B@0?tCM$r(B OpenXM $B%5!<%P$N%9%?%C%/$K(B push $B$9$k(B. |
|
$B$3$N<1JL;R$O(B @code{draw_obj} $B$N8F$S=P$7$KI,MW$G$"$j(B, @code{ox_pop_cmo} $B$K(B |
|
$B$h$j<h$j=P$7$FJ];}$9$kI,MW$,$"$k(B. |
|
\E |
|
\BEG |
|
@code{open_canvas} opens a canvas, which is a window for drawing objecgts. |
|
One can specifies the size of a canvas in pixel by |
|
supplying @var{geometry} option @var{[x,y]}. The default size is |
|
@var{[}@code{300},@code{300}@var{]}. |
|
This function pushes an integer value onto the stack of the OpenXM server. |
|
The value is used to distiguish the opened canvas and one has to pop |
|
and maintain the value by @code{ox_pop_cmo} for subsequent calls of |
|
@code{draw_obj}. |
|
\E |
|
@item |
|
\BJP |
|
@code{clear_canvas} $B$O(B, $B%5!<%P(B id @var{id}, $B%-%c%s%P%9(B id @var{index} |
|
$B$G;XDj$5$l$k%-%c%s%P%9$r%/%j%"$9$k(B. |
|
\E |
|
\BEG |
|
@code{clear_canvas} clears a canvas specified by a server id @var{id} |
|
and a canvas id @var{index}. |
|
\E |
|
@item |
|
\BJP |
|
@code{draw_obj} $B$O(B, $B%5!<%P(B id @var{id}, $B%-%c%s%P%9(B id @var{index} |
|
$B$G;XDj$5$l$k%-%c%s%P%9$KE@$^$?$O@~J,$rIA2h$9$k(B. @var{pointorsegment} |
|
$B$,(B @var{[x,y]} $B$N>l9gE@$N:BI8(B, @var{[x,y,u,v]} $B$N>l9g(B @var{[x,y]}, |
|
@var{[u,v]} $B$r7k$V@~J,$rI=$9$H8+$J$5$l$k(B. |
|
$B%-%c%s%P%9$N:BI8$O(B, $B:8>e6y$r86E@$H$7$F2#J}8~$K(B |
|
$BBh0l:BI8(B, $B=DJ}8~$KBhFs:BI8$r$H$k(B. $BCM$O(B pixel $BC10L$G;XDj$9$k(B. |
|
@var{color} $B$N;XDj$,$"$k>l9g(B, @var{color/65536} mod 256, |
|
@var{color/256} mod 256, @var{color} mod 256 $B$r$=$l$>$l(B Red, Green, Blue |
|
$B$NCM(B ($B:GBg(B 255) $B$H$_$J$9(B. |
|
\E |
|
\BEG |
|
@code{draw_obj} draws a point or a line segment on |
|
a canvas specified by a server id @var{id} and a canvas id @var{index}. |
|
If @var{pointorsegment} is @var{[x,y]}, it is regarded as a point. |
|
If @var{pointorsegment} is @var{[x,y,u,v]}, it is regarded |
|
as a line segment which connects @var{[x,y]} and @var{[u,v]}. |
|
If @var{color} is specified, @var{color/65536} mod 256, |
|
@var{color/256} mod 256, @var{color} mod 256 are regarded as the vaules |
|
of Red, Green, Blue (Max. 255) respectively. |
|
\E |
|
@item |
|
\BJP |
|
@code{draw_string} $B$O(B, $B%5!<%P(B id @var{id}, $B%-%c%s%P%9(B id @var{index} |
|
$B$G;XDj$5$l$k%-%c%s%P%9$KJ8;zNs$rIA2h$9$k(B. $B0LCV$O(B @var{[x,y]} $B$K$h$j;XDj$9$k(B. |
|
\E |
|
\BEG |
|
@code{draw_string} draws a character string @var{string} on |
|
a canvas specified by a server id @var{id} and a canvas id @var{index}. |
|
The position of the string is specified by @var{[x,y]}. |
|
\E |
|
@end itemize |
|
|
|
@example |
|
[182] Id=ox_launch_nox(0,"ox_plot"); |
|
0 |
|
[183] open_canvas(Id); |
|
0 |
|
[184] Ind=ox_pop_cmo(Id); |
|
0 |
|
[185] draw_obj(Id,Ind,[100,100]); |
|
0 |
|
[186] draw_obj(Id,Ind,[200,200],0xffff); |
|
0 |
|
[187] draw_obj(Id,Ind,[10,10,50,50],0xff00ff); |
|
0 |
|
[187] draw_string(Id,Ind,[100,50],"hello",0xffff00); |
|
0 |
|
[189] clear_canvas(Id,Ind); |
|
0 |
|
@end example |
|
|
|
@table @t |
|
\JP @item $B;2>H(B |
|
\EG @item References |
|
@fref{ox_launch ox_launch_nox ox_shutdown}, @fref{ox_reset ox_intr register_handler}, @fref{ox_pop_cmo ox_pop_local}. |
@end table |
@end table |