home *** CD-ROM | disk | FTP | other *** search
- MathPlot
- ========
-
- © by Rüdiger Dreier 1991/92/93/94
-
-
- This manual is a short version of the manual you get when you become
- a registrated user. See "Registrierung.txt" for more information.
-
- My address
-
- Rüdiger Dreier
- Gustav-Winkler-Str. 40
- 33699 Bielefeld
- Germany
-
- I can be reached via EMail:
-
- ruediger.dreier@post.uni-bielefeld.de
-
-
-
-
-
-
-
-
- Some legal stuff
- ================
-
- THE AUTHOR UNDERTAKES NO LIABILITY FOR ANY DAMAGE CAUSED BY THE
- APPROPRIATE OR NOT APPROPRIATE USE OF THIS PROGRAM !
-
- THE AUTHOR UNDERTAKES NO LIABILITY FOR THE FAULTLESSNESS OF THIS
- PROGRAM !
-
- USE IT AT YOUR OWN RISK !
-
-
- MathPlot is ShareWare !
-
- If you use this program, you have to pay the shareware fee.
- See "Registrierung.TXT"
-
-
- This version of MathPlot
- ========================
-
- This version is a demo version with a requester telling you that
- MathPlot is ShareWare.
- It may be freely copied under the following conditions:
-
- - The copyright text must be included (unchanged).
-
- - You are not allowed to earn money by copying this program (only a
- little fee for disk, postage etc).
-
- - The program MUST NOT be changed.
-
- - The program must be complete: The following files must be included:
-
- - The complete unchanged documentation (one language is enough).
- - One working copy of MathPlot
- - A version of mtool.library
-
- - Everybody who wants to use MathPlot (or a part of it) or the
- mtool.library (or a part of it) in a commercial sense needs the
- written permission of the author.
-
- - It IS allowed to translate the text of the menu item etc. (file
- TextDaten) into other languages and include it into any copy of this
- program. If you do so, please send me a version of the new textfile
- an tell me, if I am allowed to include this one in the shareware
- and full version of MathPlot.
-
- - It is allowed to upload this version of MathPlot to any mailbox and
- include it into any PD-disk or CD (like Fred Fish's).
-
-
- The shareware fee
- =================
-
- MathPlot is ShareWare. If you use this program, you may want to
- pay the registration fee. It is (US)$ 20,-- or DM 30,--. Please send
- this money to the address above and add the name and version of the
- program (and perhaps where you found it). Please use the form in
- "Registrierung.txt".
-
- 'Why should I', you may ask. Well, you will get
-
- - The newest version of MathPlot.
-
- - A Keyfile. Together with this Keyfile, you can use EVERY new demo
- of MathPlot as a full version.
-
- - A printed manual (the full version of this one, please tell me, if you
- want to have the german or english version).
-
- - Updateservice. You may get new versions of MathPlot by sending a disk,
- envelope, postage and your registration number to me. If there is no
- newer version, I will wait until there is one. So it may take a little
- time until you get the newest version. Please tell me, which version
- you have.
- If you can be reached via EMail, I can send you newer version as
- UUENCODE'd textfiles.
- But try to get a newer demo of MathPlot from PD-disks or a mailbox.
- Together with your Keyfile, you can use it as a full version.
-
-
- The source
- ==========
-
- The source is NOT freely distributable. The source is available (for
- registrated users only) by sending (US)$ 20,-- or DM 30,-- to the
- address above. If you want to use the source in a commercial sense,
- you need the written permisson of the author (ME !).
-
-
-
- What this program does
- ======================
-
- MathPlot is a little program to plot twodimensional functions. You
- can enter up to 10 functions and plot them all. In addition, you can
- plot the first and second derivation of the functions (numerical and
- symbolic). A discussion and numerical integration is also possible.
- An ARexx-port is included.
- So the program can be used i.e. to control your own results.
-
-
- What you need
- =============
-
- !! The program only works on Amigas with Kickstart 2.04 or higher !.
- 1MB memory should be enough, 1MB chip mem and new custom
- chips are very nice for big screen (productivity mode etc.). The stack
- should be 20000 bytes or more.
- In LIBS:, you need
-
- - mathieeedoubbas.library
- - mathieeedoubtrans.library
- - asl.library
- - mtool.library (should be also on this disk)
- - diskfont.library (V36 or higher)
- - iffparse.library (only for saving as IFF--file)
-
- In S: you can (but need not) have
-
- - mplot.prefs, a preferences--file.
- - Funktionen.fkt, some example functions
- - Konstanten.con, some constants
- - Macros.mcr, some macros.
-
- If you want to use the ARexx-Port, you should copy all files in
- Macros/ to rexx: (an "assign .... add" seems not to work).
-
-
-
-
-
- The menus
- =========
-
- Project
- -------
-
- New
- ---
- You are asked whether to clear the screen or not. A HP-output ends. The
- screen clears automatically after changing the intervall.
-
- IFF Save As
- -----------
- To use this item, you need the iffparse.library in libs:. If the
- program cannot find this library, a requester appears
- (iffparse.library ?).
- Otherwise, you are asked for the name of the file. If an error occurs,
- another requester appears.
-
- The programm's icon is used for this file (if startet from Workbench).
-
- Load/Save functions/macros/constants
- ------------------------------------
- You are asked for the name of a file to load / save as.
-
-
- Print
- -----
- Prints the screen on your preferences printer (as big as possible).
- While printing, the colour of the screen is changed. A HP-output ends.
-
- Iconify
- -------
- The window is closed and an icon appears on workbench. A doubleclick
- on this icon starts the program again. The last functions are still
- available. If there is not enough memory to open a screen, the program
- terminates. As icon, the programm's icon is used (if startet from
- Workbench).
-
- About
- -----
- You get some pice of information about this program (Version, my
- address, name of the screen etc.).
-
- QUIT
- ----
- A requester appears and asks you whether to quit or not. If you agree,
- the program terminates. Cause the screen is a public screen, there may
- be some "visitor windows". If there is one, the programm does not
- terminate and a requester is shown.
-
-
-
- Plot
- ----
-
- Change function
- ---------------
- A submenu with the ten functions (you entered or loaded) appears (only
- the first 14 characters are displayed).
- Here you can select one of the functions. A window appears and you can
- change it. The function should be a correct expression.
- If you enter something like sin((x), the window appears again as long as
- there is one bracket too much.
-
- Function 1st/2nd derivation num/symb
- ------------------------------------
- Each of this five items has the same submenu as Change. Selecting one of
- the functions plots it (or its 1st or 2nd derivation).
- Symbolic derivations are calculated first and then the new function is
- plotted (e.g. for sin(x): first cos(x) is calculated as the derivation
- of sin(x) and then cos(x) is plotted).
- Symbolic derivations are more precise but there are problems with some
- function (abs, sgn, ln). E.g. for ln you get the function 1/x plotted
- even for negativ x.
- Symbolic derivations are calculated in a recursive way, so the stack
- should be at least 20000 bytes. If you get a guru, just try a larger
- stack.
-
- Discussion
- ----------
- Here you can get some pice of information about the function:
- The intervall is displayed as well as the first and second derivation.
- Also the points where the function is zero, has a min or max or a
- turning point.
-
- The derivations
- ---------------
- 1. +-*/ The usual
- 2. x^a a*x^(a-1)
- 3. a^x a^x*\ln{a}
- 4. f(x)^{g(x)} (g(x)*\ln(f(x)))'*f(x)^{g(x)}
- 5. trig. functions The usual
- 6. abs(x) sgn(x) (For x=0 not correct)
- 7. int(x) 0 (Well ...)
- 8. sgn(x) 0 (Well ...)
-
- IMPORTANT
- ---------
- !! THE AUTHOR UNDERTAKES NO LIABILITY FOR THE CORRECTNESS OF THE
- !! DERIVATIONS !! BEFORE YOU USE ANY OF THE RESULTS, RECALCULATE
- !! THEM BY HAND !!!
-
-
- Num. Integration
- ----------------
- Here you can integrate a function numerically. A window appears
- and shows the selected function (you can even change the function or
- enter a new function).
- You are asked for the intervall and the number of steps to use for
- the numerical integration. If you use more steps, the result becomes
- better but you have to wait longer.
- To close the window, select QUIT.
-
-
- Errorcodes of the program
- -------------------------
- DIVBYZERO & 1 & division by zero
- LOGNEG & 2 & log(<= 0)
- SQRTNEG & 4 & sqrt{ < 0}
- ATRIG & 8 & asin, acos with arg >1 or <1
- UNPAKLAM & 16 & Too much brackets
- TEST & 32 & Not used
- NOFUNC & 64 & No function given
- NO_KONST & 128 & No such constant
- NO_MEM & 256 & No memory
- POWERROR & 512 & You tried (<0) ^ (a/b)
- NO_FUNC & 1024 & No function found
- ER_AHYP & 2048 & Error at acosh() or atanh()
-
-
- Edit
- ----
-
- Axis
- ----
- With the two subitems, you can add axis to you plot. When there is
- a plot, you can add axis only once. So test your axis before you plot.
-
- Zoom
- ----
- You get a rubberbanding and can select the part of the intervall
- which will be plottet next.
-
- Insert text
- -----------
- You can enter a text and place it with your mouse. Click at the right
- place and the text will be drawn with the selected font, colors
- and drawmode.
-
- Precision
- ---------
- You get a submenu with four items (low, med, high and very high).
- If you select med, high or very high, the program needs more time to
- plot and the plot becomes better.
-
- Intervall
- ---------
- A window with four stringgadgets, two cyclegadgets and two normal
- gadgets appears. In the text gadgets you can enter the intervall,
- with the cyclegadgets, you can tell the program how to use this
- values, e.g.: you want to plot [-pi,pi]. You can enter -pi and pi
- and *1 in the cyclegadget. But you can also enter -1, 1 and *pi in
- the cyclegadget. Try both and plot axis, you will see the difference.
- To get a log/log plot, choose 10^ in both cyclegadgets and so on.
-
- Constants
- ---------
- A window with an active cyclegadget and an inactive stringgadget
- appears. Choose a character with the cyclegadgets or press a key, then
- hit RETURN. The stringgadget should become active. Now you can
- enter the definition for the constant, you named before. You can
- use constants in other functions by their name, e.g: define a
- constant z by entering pi. Then you can use z in any function
- instead of pi. Do not use x or e as name of a constant because
- they cannot be used later (e is defined as 2.7...).
-
- Macros
- ------
- A similar window as decribed in Constants appears. Enter your macro-
- definition in the stringgadget. Macros are used in functions via
- _MACRONAME or _MACRONAME(parameter), e.g. _a or _a(2*x). If you
- use the second way, every x in the macro is replaced by paramter.
-
- Plot-Output
- -----------
- This item has two subitems (on,off). >On< asks you for a name for a file
- to write the data in. >Off< switches HP-Output off (automatically
- done when changing the intervall or printing). After selection off, the
- file contains HP-Plotter compatible data to plot all those functions and
- text you plottet after selection >on<.
- I have no HP-Plotter, I used the PLT:-Device and it works.
-
- Select/Change Colours
- ---------------------
- Here you can change MathPlot's palette (there is one normal palette,
- one for printing and one for HP-output).
- The last active color in the requester is used as new color for
- plotting, too.
-
- Change Font
- -----------
- Here you can select an new font für Insert text and the labels at the
- axis and the screen. The standard font-requester is used.
-
- Change resolution
- -----------------
- Here you can select a new screenmode and enter the new resolution.
-
- Change pattern
- --------------
- Here you can define a new linepattern.
-
- Discussion
- ----------
- Use this to define some options for discussion.
-
- Plotcolors
- ----------
- In this menu, you can choose the next color for a plot. This is
- the same (but faster than) Select Color/Normal.
-
- ARexx
- -----
- Start ARexx-Macro
- -----------------
- The filerequester appears and shows all file with .mapl in rexx:.
- You can start a macro with a doubleclick. You should NOT start files
- ending with .mpl. These file may need some more arguments.
-
- Define ARexx-macro
- ------------------
- There are 10 items to start a macro by just selecting an item. Use
- this item to define this macros.
-
- Record
- ------
- The program may record some actions (change functions, constants and
- macros, change intervall, change color and plot axis). You are asked
- to enter the name of the file to save the actions in. You can choose
- if the program saves its status in this file, too.
-
-
-
- Preferences
- -----------
- The program differs between active options and preferences.
- Active options define the actual behaviour of the program (e.g.
- the color used for plotting the next function) while preferences defines
- the behaviour of the program after startup (e.g. the color used for
- plotting if the user has never defined one).
- Preferences become active options by selecting "Use" or restarting the
- program.
- Most of the items in this menu are also part of other menus, so their
- description is quite short here.
-
- Load
- ----
- Load a new preferences-file. These options become active.
-
- Use
- ---
- The preferences become active options. The screen will be closed and a
- new screen will be opened with most of the new options.
- Only some options cannot become active by selecting "Use", see below.
- For this options, you have to restart the program.
-
- Save
- ----
- Save the options.
-
- Intervall
- ---------
- Enter the initial intervall.
-
- Select or change Colour
- -----------------------
- Change initial palette and color for plotting.
-
- Change Font
- -----------
- Choose the initial fonts, colors and drawmodes.
-
- Change pattern
- --------------
- Select the initial patterns.
-
- Precision
- ---------
- Set the initial precision. If you started without a .prefs-file, you
- MUST choose a mode and a depth.
-
- Set paths
- ---------
- This item only appears in this menu. On startup, the program load a
- file with all texts, a file with the initial functions, one with the
- initial constants and one with the initial macros. These file can
- be defined here. You have to restart (not just select "Use") to
- use this options.
- In addition, you can enter the initial path and filename for the
- iff-filerequester, rexx-filerequester and other filerequesters.
-
- Shortcuts
- ---------
- Thie item only appears in this menu. You can change the keystroke
- equivalences for the gadgets. A stringgadget with some characters
- appears:
- - the first character is the upper case to be equivalent to
- clicking on OK.
- - the second charackter is the upper case to be equivalent to
- clicking on Cancel.
- - the next 4 characters are the equivalent to clicking in a string-
- gadget.
- - the next 4 characters are the equivalent to clicking on the cycle-
- gadgets in the intervall-requester.
- - the last 6 characters are the equivalent to the slidergadgets in
- the palette-requester.
- Then, the same requester appears for every menu to ask for a
- shortcut.
-
- Discussion
- ----------
- Here you define the initial options for discussion.
-
-
-
-
- Options and inputformats
- ========================
-
- Format of functions
- -------------------
-
- The functions can consist of ()+-*/^, sin, cos, tan, log, int, sgn, abs,
- sqr, asin, acos, atan, sinh, cosh, tanh, asinh, acosh, atanh, ln and the
- constants a-z (without x and e) and the variable x. e (2.7...) and pi
- (3.14...) are already set. Numbers must be in a usual format
- (1; 1.1; .1; 3e5; 5d-7...). Macros are used as _NAME or _NAME(parameter).
- Use brackets to make sure, MathPlot calculates the function, you want.
- It uses the normal mathematical rules (^ before *,/ before +,-).
-
- Options
- -------
- MathPlot loads s:mplot.prefs on startup. You can choose a different
- file by using the tooltype SETTINGS.
-
-
- ARexx-Port
- ==========
- Introduction
- ------------
- MathPlot has now an ARexx-Port (the name is "MPlot_ARexx"). The code is
- generated with ARexxBox V1.00 which is © by Michael Balzer.
-
-
- ARexx-Commands
- ---------------
- Here is a list of all commands. The format of the templates corresponds
- to the way the system displays command templates in the Shell. Look in
- your manual to understand the meaning of all those characters after a "/".
-
- BEEP
- A simple DisplayBeep()
- CLEAR FORCE/S
- Clears screen. With FORCE, there will be no requester.
- EVALSTRING VAR/K,STEM/K,FUNCTION/A,X/K => VALUE
- Evaluates a string.
- FAULT VAR/K,STEM/K,NUMBER/N/A => DESCRIPTION
- Not implemented.
- GET1DERIVE VAR/K,STEM/K,NUMBER/N/A => DERIVE
- Gives you the first symb. derivation of a function. The functions are
- referenced by number, 0 is the first in the subitem, 9 the last.
- GET2DERIVE VAR/K,STEM/K,NUMBER/N/A => DERIVE
- Look above.
- GETCOLOR VAR/K, STEM/K, TEXTCOLOR/S, AXISCOLOR/S, PLOTCOLOR/S,
- TEXTCOLORBACK/S, AXISCOLORBACK/S,
- TEXTMODE/S, AXISMODE/S =>
- TEXTCOLOR/N, AXISCOLOR/N, PLOTCOLOR/N,
- TEXTCOLORBACK/N, AXISCOLORBACK/N,
- TEXTMODE/N, AXISMODE/N
- Gives you the number of the colors and drawmodes.
- GETCONST VAR/K,STEM/K,NAME/A => DEFINITION
- Gives you the definition of a constant. The name must be a character.
- GETERROR VAR/K,STEM/K => NUMBER/N
- Give you the last error.
- GETFUNCTION VAR/K,STEM/K,NUMBER/N/A => DEFINITION
- Look above (GETCONST).
- GETINTERVALL VAR/K,STEM/K,XAXIS/S,XMIN/S,XMAX/S,YAXIS/S,YMIN/S,YMAX/S
- => DEFINITIONSTRING,DEFINITIONNUMBER/N
- Gives you the definition of the intervall. Use only one switch a time.
- GETMACRO VAR/K,STEM/K,NAME/A => DEFINITION
- Look above.
- GETPOINTS VAR/K, STEM/K, FUNCTION/A, ZERO/S, MAX/S, TURN/S
- => XPOINTS/M, YPOINTS/M, TYP/M
- A discussion via ARexx. Only one switch at a time !
- GETPRECISION VAR/K,STEM/K => PRECISION/N
- Gives you the precision.
- HELP VAR/K,STEM/K,COMMAND,PROMPT/S => COMMANDDESC,COMMANDLIST/M
- Gives you a list of all commands or the template for one command.
- HPGL_ON FILENAME
- Switch on HPGL-output
- LABELPEN COLOR/N
- Set pen for axis.
- LOADCONST FILENAME
- LOADFUNC FILENAME
- LOADMACRO FILENAME
- Load the definitions.
- NEW PORTNAME/K
- Clears screen. PORTNAME is not implemented.
- NUMINT VAR/K,STEM/K,STEPS/N/A,XMIN/A,XMAX/A,FUNCTION/A => VALUE
- Integrate a function.
- PLOT NUMBER/N/A,NORMAL/K/S,DERIVE1/K/S,DERIVE2/K/S,DERIVE1NUM/K/S,
- DERIVE2NUM/K/S,FORCE/S
- Plot a function.
- PRINT PROMPT/S
- Prints screen.
- QUIT FORCE/S
- Quit program. With FORCE, there will be no requester.
- REQUESTFILE VAR/K,STEM/K,TITLE/K,PATH/K,FILE/K,PATTERN/K,SAVE/S => FILENAME
- Gives you a filerequester.
- REQUESTNOTIFY PROMPT/K/A,BUTTON/K
- Do not use yet.
- REQUESTNUMBER VAR/K,STEM/K,PROMPT/K,DEFAULT/K/N => NUMBER/N
- Asks the user for a number.
- REQUESTRESPONSE VAR/K,STEM/K,TITLE/K,PROMPT/K/A,BUTTON/K => RETURN/N
- Brings up an EasyRequest with TITLE as title, PROMPT as the text and
- BUTTON (e.g. "OK|WELL|CANCEL") as the gadgets. RC is 5 for the rightmost
- gadget, otherwise result is 1,2...
- REQUESTSTRING VAR/K,STEM/K,PROMPT/K,DEFAULT/K,TITLE/K => STRING
- Ask the user for a string.
- RX VAR/K,STEM/K,CONSOLE/S,ASYNC/S,COMMAND/F => RC/N,RESULT
- Start a skript.
- SAVECONST FILENAME
- SAVEFUNC FILENAME
- Save definitions to a file
- SAVEIFF FILENAME
- Save screen as IFF.
- SAVEMACRO FILENAME
- See above.
- SCREENTOBACK
- SCREENTOFRONT
- Should be clear
- SELECTMENU MENU/N/A,ITEM/N/A,SUB/N,FORCE/S
- Selects a menu. 0 is the first one. FORCE suppresses some requester.
- Do not use this command directly in a skript, because the numbers may
- change. Use the following way:
- Let's say you want to display the about-requster. That is MENU=0 ITEM=13
- in this version. Instead of SELECTMENU 0 13 use SHOWABOUT. Write a file
- "showabout.mpl" with two lines: "/* */" and "selectmenu 0 13". Copy
- this file to REXX:. If the number of the item has changed (e.g. to 14),
- you have to change only one file: "showabout.mpl". If you had use
- SELECTMENU directly, you had to change every file which used menu 0, item 13.
- SETCOLOR PLOTCOLOR/N/K, AXISCOLOR/N/K, TEXTCOLOR/N/K,
- AXISCOLORBACK/N/K, TEXTCOLORBACK/N/K,
- AXISMODE/N/K, TEXTMODE/N/K
- Change some colors and drawmodes.
- SETCONST NAME/A,DEFINITION/A
- SETFUNC NUMBER/N/A,DEFINITION/A
- SETMACRO NAME/A,DEFINITION/A
- Set new definitions.
- SETINTERVALL XAXIS/N/K,XMIN/K,XMAX/K,YAXIS/N/K,YMIN/K,YMAX/K
- Set a new intervall.
- SETNUMPRECISION PRECISION/N/A
- Sets the number of digits behind the point for NUMINT and EVALSTRING
- VERSION VAR/K,STEM/K => VERSION
- Gives you a version string.
-
- ARexx-Macros
- ------------
- To simplify some actions, you can write (ARexx-) macros. There is one
- example:
-
- - Schar
- To plot i.e. sin(x)+a a=1,2,3 you can do the following:
- define the first function as sin(x)+a. Call Schar.mapl. You are asked
- for the number of the function (0), the name of the constant (a), start
- and end (1,3) and the number of steps (3). Then the three functions will
- be plotted.
-
-
- Thanks
- ======
-
- I would like to thank some people:
-
- - Commodore for Kickstart/Workbench 2.0 (especially gadtools.library).
- - Joern Clausen for his beta-testing and the programm's icon.
- - Michael Balzer for his ARexxBox, which made MathPlot's
- ARexx-port possible.
-
-
-
- The END
- =======
-
- If you have hints, questions (please add postage for the answer),
- bug-reports or want to pay the registration fee, write me.
- My address is at the beginning of this document.
-
-
- Have fun with my program !!
-
-