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.