`ifplot', `conplot', `plot', `plotover'
---------------------------------------

ifplot(FUNC [,GEOMETRY] [,XRANGE] [,YRANGE] [,ID] [,NAME])
     :: Displays real zeros of a bi-variate function.

conplot(FUNC [,GEOMETRY] [,XRANGE] [,YRANGE] [,ZRANGE] [,ID] [,NAME])
     :: Displays real contour lines of a bi-variate function.

plot(FUNC [,GEOMETRY] [,XRANGE] [,ID] [,NAME])
     :: Displays the graph of a univariate function.

plotover(FUNC,ID,NUMBER)
     Plots on the existing window real zeros of a bivariate function.

RETURN
     integer

FUNC
     polynomial

GEOMETRY, XRANGE, YRANGE, ZRANGE
     list

ID, NUMBER
     integer

NAME
     string

   * Function `ifplot()' draws a graph of real zeros of a bi-variate
     function.  Function `conplot()' plots the contour lines for a same
     argument.  Function `plot()' draws the graph of a uninivariate
     function.

   * The plotting functions are realized by an OpenXM server.  On UNIX
     it is `ox_plot' in Asir root directory.  On Windows `engine' acts
     as `ox_plot'.  Of course, it must be activated by `ox_launch()'
     `ox_launch_nox()'.

   * Argument FUNC is indispensable. Other arguments are optional.  The
     format of optional arguments and their default values
     (parenthesized) are listed below.

    GEOMETRY
          Window size is specified by [X,Y] in unit `dot.'
          ([`300',`300'] for UNIX version;

    XRANGE, YRANGE
          Value ranges of the variables are specified by [V,VMIN,VMAX].
          ([V,`-2',`2'] for each variable.)  If this specification is
          omitted, the indeterminate having the higher order in FUNC is
          taken for `x' and the one with lower order is taken for `y'.
          To change this selection, specify explicitly by XRANGE and/or
          YRANGE.  For an uni-variate function, the specification is
          mandatory.

    ZRANGE
          This specification applies only to `conplot()'.  The format is
          [V,VMIN,VMAX `[',STEP `]'].  If STEP is specified, the height
          difference of contours is set to (VMAX-VMIN)/STEP.
          ([Z,`-2',`2',`16'].)

    ID
          This specifies the number of the remote process by which you
          wish to draw a graph.  (The number for the newest active
          process.)

    NAME
          The name of the window.  (`Plot'.)  The created window is
          titled NAME:N/M which means the M-th window of the process
          with process number N.  These numbers are used for
          `plotover()'.

   * The maximum number of the windows that can be created on a process
     is 128.

   * Function `plotover()' superposes reals zeros of its argument
     bi-variate function onto the specified window.

   * Enlarged plot can be obtained for rectangular area which is
     specified, on an already existing window with a graph, by dragging
     cursor with the left button of mouse from the upper-left corner to
     lower-right corner and then releasing it.  Then, a new window is
     created whose shape is similar to the specified area and whose
     size is determined so that the largest side of the new window has
     the same size of the largest side of the original window.  If you
     wish to cancel the action, drag the cursor to any point above or
     left of the starting point.

     This facility is effective when `precise' button switch is
     inactive.  If `precise' is selected and active, the area specified
     by the cursor dragging will be rewritten on the same window. This
     will be explained later.

   * A click of the right button will display the current coordinates of
     the cursor at the bottom area of the window.

   * Place the cursor at any point in the right marker area on a window
     created by `conplot()', and drag the cursor with the middle
     mutton.  Then you will find the contour lines changing their
     colors depending on the movement of the cursor and the
     corresponding height level displayed on the upper right corner of
     the window.

   * Several operations are available on the window: by button
     operations for UNIX version, and pull-down menus for Windows
     version.

    `quit'
          Destroys (kills) the window.  While computing, quit the
          current computation.  If one wants to interrupt the
          computation, use `ox_reset()'.

    `wide (toggle)'
          Will display, on the same window, a new area enlarged by 10
          times as large as the current area for both width-direction
          and height-direction.  The current area will be indicated by
          a rectangle placed at the center.  Area specification by
          dragging the cursor will create a new window with a plot of
          the graph in the specified area.

    `precise (toggle)'
          When selected and active, `ox_plot' redraws the specified
          area more precisely by integer arithmetic.  This mode uses
          bisection method based on Sturm sequence computation to
          locate real zeros precisely.  More precise plotting can be
          expected by this technique than by the default plotting
          technique, at the expense of significant increase of
          computing time.  As you see by above explanation, this
          function is only effective to polynomials with rational
          coefficients.  (Check how they differ for (x^2+y^2-1)^2.)

    `formula'
          Displays the expression for the graph.

    `noaxis (toggle)'
          Erase the coordinates.

   * Program `ox_plot' may consume much stack space depending on which
     machine it is running.  You are recommended to set the stack size
     to about 16MB as large in `.cshrc' for safe.  To specify the size,
     put `limit stacksize 16m' for an example.

   * You can customize various resources of a window on `X', e.g.,
     coloring, shape of buttons etc.  The default setting of resources
     is shown below.  For `plot*form*shapeStyle' you can select among
     rectangle, oval, ellipse, and roundedRectangle.

          plot*background:white
          plot*form*shapeStyle:rectangle
          plot*form*background:white
          plot*form*quit*background:white
          plot*form*wide*background:white
          plot*form*precise*background:white
          plot*form*formula*background:white
          plot*form*noaxis*background:white
          plot*form*xcoord*background:white
          plot*form*ycoord*background:white
          plot*form*level*background:white
          plot*form*xdone*background:white
          plot*form*ydone*background:white


References
     *Note `ox_launch ox_launch_nox ox_shutdown': ox_launch
     ox_launch_nox ox_shutdown, *Note `ox_reset ox_intr
     register_handler': ox_reset ox_intr register_handler

