//-
 Ex (c)1993 by J.A.Wrotniak 
    Chose from the available topics:
* angle conversion * keyboard
* conversions      * menu
* autoscroll       * numerical opers
* digits displayed * operators
* distributions    * plots
* errors           * settings
* examples         * standard functions
* expressions      * statistical functs
* Euler functions  * unit conversion
* functions        * user functions
* if functions     * variables
                   - registration
//MENU
 Menu 
  The top function key menu  invokes the
following operations:

[Hlp] - bring this help
[Set] - switch to the settings menu
[Plt] - switch to the plot menu
[Num] - switch to the numeric ops menu
[Con] - switch to the conversion menu
[Def] - define a user function
[Sho] - show a variable or a user func.
[Clr] - clear all formulae and data
[Exit]- save status, leave the program
//SETTINGS
 Settings 

  The settings  (Set) menu  gives access
to the following options:

[Set|Dig] - number of digits displayed
[Set|Deg] - angular mode: deg/rad
[Set|Scl] - autoscroll on/off
[Set|Snd] - sound on/off
[Set|Top] - return to the top menu

  An arrow  pointing to a menu entry in-
dicates the "ON" state.
//PLOTS
 Plots 
 The plot (Plt) menu does the following:
[Plt|Sho] - show plot screen (if any)
[Plt|Plt] - plot current line (replacing
   the old plot screen)
[Plt|Add] - add current line plot to the
   plot screen (without erasing it)
[Plt|Axs] - axis visibility on/off
[Plt|Grd] - grid visibility on/off
[Plt|Acc] - high plot accuracy on/off
[Plt|LgX] - log X scale on/off
[Plt|LgY] - log Y scale on/off
[Plt|Top] - return to the top menu
F10 interrupts the plotting process.
//USER FUNCTIONS
 User Functions 
* [Def]  defines  the current  line as a
  user function: dfa..dff.  The variable
  following  "="  is  treated  as  dummy
  function  argument;  its value is  not
  affected by function execution.  Other
  variables can be used as parameters.
* A user function  may refer  to others,
  but direct or indirect self-references
  are illegal.
* To see a user function, press [Sho].
Example:
  To define  dfa(x)=ln(x)+cos(cx), enter
"ln X+cos CX=X", [Def], and "dfa".
//AUTOSCROLL
 Autoscroll 

* With autoscroll  enabled by [Set|Scl],
  after  an  expression   evaluation  Ex
  moves to  the next line,  clearing it.
  Line 1 follows the last line.

* No scroll occurs  if an error has been
  detected.

* Enabled autoscroll  is indicated by an
  arrow next to the line number.
//CONVERSIONS
 Conversions 
  The following operations are available
from the Conversion Menu:
[Con|Ft]  - show  the  current result as
            feet/inches/fraction
[Con|Lb]  - ...as pounds/ounces/fraction
[Con|Fra] - ..as whole part and fraction
[Con|Dms] - ..as degrees/minutes/seconds
[Con|Uni] - convert it between units
[Con|Rou] - round it to the nearest fra-
         ction with a given denominator.
  Operations  [Uni] and [Rou] modify the
result variable;  the others only change
the display format.
//ANGLE CONVERSIONS
 Angle conversions 

* A value  entered  as degrees,  minutes
  and seconds  (using ø,' and ") will be
  translated to radians  or degrees, de-
  pending on the current angular mode.

* [Con|Dms] will display the last result
  in degrees, minutes and seconds trans-
  lated  from  radians  or from  degrees
  (depending on the current mode).
  The value itself will not be changed.
//UNIT CONVERSION
//UNITS
 Unit conversion 
  [Con|Uni]  converts the current result
from one measurement unit to another.
  A sequence  of three pop-up menus will
query for the following information:
 - The quantity to convert (e.g. volume)
 - Units to convert from (e.g. gallons)
 - Units to convert to (e.g. liters)
  Inside a pop-up menu use arrow keys to
move around,  Return  to select,  Esc or
or F10 to abandon the operation.

  The converted value  will be stored in
the same variable.
//VARIABLES
 Variables 
* Variables  A..Z  and  @  (default) are
  used to store calculation results and/
  or as elements of expressions.
* Variables  have  18  decimal digits of
  accuracy and absolute range of 1E1000.
* Variable  specified after "="  is used
  - in expression  calculation: to store
    the result
  - in user  function definition  and in
    plotting: as the argument (dummy)
  - in integration,  differentiation and
    finding zeros:  in both of the above
    capabilities.
//KEYBOARD
 Keyboard 
 Arrows - move cursor or scroll lines
 Enter  - compute the current line
 Tab    - check syntax, reformat line
 Esc    - clear or restore current line
 Ins    - swap line with buffer
 ALT+p or CHAR+p - enter  (pi)
 ALT+e or CHAR+e - enter  (Euler's e)
 ALT+2 or CHAR+2 - enter ý (square)
 ALT+3 or CHAR+3 - enter ü (cube)
 ALT+d or CHAR+d - enter ø (degree)
 Shift+F10 - exit program w/o saving
  At any prompt Esc clears input or can-
cels, the original F-key continues.
//ERRORS
 Errors 
* Syntax errors  bring an error message,
  with cursor positioned at the error.
* If file  EX.ERR is found,  then also a
  brief error description will be given.
* Calculation  errors  (e.g. division by
  zero) cause a similar effect,  but the
  function  or operator where  the error
  occured will also be shown.
* To remove the message, press any key.
* The largest  absolute expression value
  is 9.99E999,  otherwise  an "Overflow"
  error will be reported.
//NUMERICAL OPERS
 Numerical operations 
  These  operations  are applied  to the
current expression line treated as f(x),
with the variable after  "=" used as the
function argument.

* [Num|Sum]  finds  sum  of  f(x) with x
  stepping by dx from x1 to x2
* [Num|Der] - a derivative of f(x) at x0
* [Num|Int]  finds  an integral  of f(x)
  over (x1,x2) with accuracy dx
* [Num|Zer] - a zero of f(x)  in (x1,x2)
  with accuracy dx; needs f(x1)*f(x2)<0
To break any of the above, press a key.
//IF FUNCTIONS
 Conditional (if) functions 

  With a, b and c being any expressions,
these functions return the value of b or
of c, depending on the sign of a:

 ifp(a,b,c) is b if a>0, otherwise c
 ifn(a,b,c)    b    a<0            c
 ifz(a,b,c)    b    a=0            c

  The discarded argument is not computed
so that  e.g.  ifz(X,1,sin X/X) will not
raise an arithmetic error at X=0.
//DIGITS DISPLAY
 Digits displayed 
* [Set|Dig]  prompts  for the  number of
  significant  digits with which  calcu-
  lation results are shown (1 to 16).
* Preceding the answer (between 0 and 9)
  with  a "."  will  set  the  number of
  digits after the decimal point.
* Entering  just the letter  f  sets the
  "financial"  mode in  which two digits
  after the decimal point are  shown, if
  possible.
* All this  does not affect the accuracy
  with which variables are stored.
//EXAMPLES
 Examples of Expressions 
 10/2+3.5*2       gives 12
 2+3)*(4+5        gives 45
 sqr 16+sq(2+2)   gives 20
 inv 5A           means inv(5*A)
 inv 5*A          means (inv 5)*A
 2^3^4            means 2^(3^4)
 ln 2A^3          means ln(2*(A^3))
 ln 5!ý           means ln((5!)ý)
 exp 2X ln A      means exp(2*X*ln(A))
 exp 2X*ln A      means exp(2*X)*ln(A)
 2e-3+X           means .002+X
 2 e-3+X          means 2*E-3+X
 2e -3+X          means 2*E-3+X
//EXPRESSIONS
//syntax
 Expression syntax 
  "*" can be skipped between  x and y if
x is a constant or a variable and y is a
variable, a function call or a "(". This
implied multiplication shows as "ú".
  Operation priority:  low (+,-), medium
(*,/) or high (^,ú,ý,ü,!, functions).
  "^", "ú"  and  functions  execute from
right  to left,  all  other  operators -
from left to right.
  Use () to change order of evaluation.
  An expression is followed by "=" and a
variable to store the result,  otherwise
the default variable "@" is assumed.
//OPERATORS
//FUNCTIONS
 Functions and operators 
* Binary  operators stand  between their
  arguments: +, -, *, /, ^ (power).
* A unary operator  precedes  its single
  operand: - (negation), or follows it:
  ! (factorial), ý (square), ü (cube).
* Functions  accept  one,  two or  three
  arguments. For more see under:
  - standard functions
  - if functions
  - user functions
  - Euler functions
  - statistical functions
  - supported distributions
//STANDARD FUNCTIONS
 Standard functions 

* One argument:
  abs   int   ent   fra   inv  sgn
  sq    sqr   cu    cur
  sin   cos   tan   cot
  asin  acos  atan  acot
  sinh  cosh  tanh  coth
  asinh acosh atanh acoth
  ln    log   lg2   exp   ten  two

* Two arguments:
  min   max   mod   rou   rad  atn2
  ft    lb
//EULER FUNCTIONS
 Euler functions 
Computed with 16-17 digits of accuracy:

- gam(a)    - complete Gamma function
- lgam(a)   - natural logarithm of Gamma
    (accepts larger arguments than gam)
- fac(a)    - factorial = gam(a-1) = a!
- com(a,b)  - combinations (a over b)
- bet(a,b)  - Beta function (complete)
- igam(a,x) - incomplete Gamma function
- ibet(a,b,x) - incomplete Beta function

  Fac  and  com accept  also non-integer
arguments.
//STATISTICAL FUNCTIONS
 Statistical functions 

  For  the supported  distributions  the
following function types are available:

- Probability  density  (or probability)
  denoted with "f", e.g. fchi(X,R)
- Left  probability  integral  (or sum),
  "p", i.e. P(<=x), e.g. pgau(X,M,S)
- Central probability integral (Gaussian
  and Student only), "a", e.g. astu(x,r)
- Functions inverse to  integrals, shown
  as "ip", "iq" and "ia".   For example,
  if pchi(x,r)=p then ipchi(p,r)=x.
//DISTRIBUTIONS
 Distributions supported 
  Probability (density) functions are:
- fgau(x,m,s) - Gaussian (normal)   s>0
- fchi(x,r)   - chi-square          r>0
- fstu(x,r)   - Student (t)         r>0
- fsne(x,r,s) - Snedecor (F)    r>0 s>0
- fpoi(x,m)   - Poisson             m>0
- fbin(x,n,p) - binomial      0<p<1 n>0
- fgam(x,a)   - Gamma               a>0
- fbet(x,a,b) - Beta            a>0 b>0
  Replacing  "f" with  "p" or  "a" gives
probability integrals,  and with "ip" or
"ia" - functions inverse to integrals.
//REGISTRATION
 Support and registration 
  Ex is shareware:  if you keep  and use
it, send a fee of $30 to the author:
     Dr. J. Andrzej Wrotniak
     2057 Happy Lane
     Crofton, MD 21114-1917
  You will receive an upgrade to the "R"
(registered)  version  on a  3.5"  disk,
with  a number of  enhanced  features, a
setup program and extra documentation.
  Comments,  questions,  suggestions and
problem  reports are  welcome and can be
also forwarded by e-mail:
  GEnie: J.WROTNIAK    CIS: 46511,2552
//-
