packages icon
fofx 0.5 README, July 31, 1997
(c)1997 Tom Stepleton

TABLE OF CONTENTS
  1. What is fofx?
  2. Pronunciation
  3. Installation
  4. Usage
  5. To do
  6. Feedback
  7. Etcetera

1. What is fofx?
  fofx is a function grapher for character-cell terminals. Sure, everyone
  may be using X11/MacOS/Win95/BeOS/GEM/Lisa Office System/whatever these
  days, but for those of us less fortunate or for those of us who want a
  fast, easy way of seeing what a function looks like (or even for those
  of us who want their pdp11 running v7 UNIX to be able to output some eye
  candy), fofx is a useful tool to keep around.

  fofx is programmed in 100% pure ANSI C, so porting shouldn't be too
  difficult.

2. Pronunciation
  Note: This is opinion, really. You are free to pronounce fofx any way
  you please. This information is only provided for those who might ask,
  "well, how do YOU pronounce it?"

  Wrong: fohfix, fuvix, foffix, etc...
  Correct: eff-uhv-ecks, as in f of x, as in f(x) = <function>.

3. Installation
  All (step 1):
    Edit fofx.h and change MAX_COLUMNS and MIN_COLUMNS. These declare the
    maximum and minimum number of columns a user may specify with the
    -cols command line option (see Usage). Users outside of the USA may
    then want to change DECIMAL_SEPARATOR and THOUSAND_SEPARATOR to their
    liking (and for all I know, users in the USA may wish to do the same).
    Die-hard math fans may want to change DETERMINANT_H to a more accurate
    setting, but for most uses it's probably OK the way it is. Don't set
    DETERMINANT_H to zero: bad things may happen.

  UNIX (and clones and relatives):
    fofx is provided with a rudimentary makefile. Edit it and set the
    compiler/compiler options to your liking. Then type make and go. It is
    up to you to strip it and, if you administrate your machine, install
    it (I suggest putting it in /usr/local/bin). fofx is also provided
    with a section 1 manpage.

  Non-UNIX:
    Since fofx is ANSI C compliant, you shouldn't have too much trouble.
    Complie main.c, graph.c, parse.c, and preparse.c into separate objects
    and link them with the math library. Good luck!

4. Usage:
  Try a simple equation first. The bare-bones syntax is:
    fofx [options] <function>
  Here's a good one for starters:
    fofx "sin(x)"
  which produces output like this:
                                \
                                   \
                                      \
                                        |
                                       |
                                     /
                                 /
                               |
                              |
                                \
                                   \
                                      \
                                        |
                                       |
                                     /
                                 /
                               |
                              |
                                \
                                   \
                                      \
  As you may or may not be able to tell, the default viewing window is
  from (-7,7) in the "top left corner" to (7,-7) in the "bottom right".
  More obvous, however, is the fact that the function graph has been 
  rotated 90 degrees to the right. For sticklers about accuracy and those 
  who believe that the f(x) axis should always be up, I suggest you follow 
  suit with your head.

  Command-line options:
    -axes
      Forces crude x and f(x) axes to be drawn

    -cols <n>
      Forces the number of columns allowed to n.

    -tlx <n>
      Specifies the abscissa of the point representing the top left corner
      of the viewing window.

    -tly <n>
      Specifies the ordinate of the point representing the top left corner
      of the viewing window.

    -brx <n>
      Specifies the abscissa of the point representing the bottom right
      corner of the viewing window.

    -bry <n>
      Specifies the ordinate of the point representing the bottom right
      corner of the viewing window.

    -iv <n>
      Specifies the distance between points plotted.

5. To do
  Completely rework the command-line parser. It's a hack. Currently the
    command line options aren't careful about non-numeric inputs, so
    fofx -brx steve is entirely possible. In addition, even if your new
    window dimensions are all in range, they must be submitted in this
    order: -tlx -tly -brx -tlx or else range errors may occur.
  Make the function parser more efficient.
  Add command line options -deg and -grad. fofx only does radians today.

6. Feedback
  fofx is currently beta software. I would appreciate any feedback
  whatsoever: please send it to ssteplet@artsci.wustl.edu .

7. Etcetera
  fofx is available for use on the World Wide Web: try it out at
    http://galena.tjs.org/cgi-bin/grapher

  fofx is certified compatable with the tvi950 and LisaTerminal on the
  Apple Lisa.