home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS - Coast to Coast / simteldosarchivecoasttocoast2.iso / calculat / ucalc18.zip / UCALC.DOC < prev    next >
Text File  |  1993-09-14  |  34KB  |  843 lines

  1.     =======================================================================
  2.     
  3.                             ULTIMATE CALCULATOR 1.8
  4.                   Copyright (C) 1992, 1993 by Daniel Corbier
  5.                              All Rights Reserved.
  6.     
  7.     =======================================================================
  8.     
  9.     
  10.     CONTENTS
  11.     --------
  12.     
  13.     1.  Introduction
  14.     2.  Ucalc Features
  15.     3.  Installation
  16.     4.  Getting Started
  17.     5.  Command Line
  18.     6.  Ucalc Prompt
  19.     7.  Table of Symbols
  20.     8.  Summation
  21.     9.  Numerical Integration
  22.     10. Solving Equations
  23.     11. LOAD command
  24.     12. WRITE command
  25.     13. SHELL command
  26.     14. Numerical Notations
  27.     15. Implicit Multiplications
  28.     16. Assigning Variables
  29.     17. Assigning Functions
  30.     18. UCALC.DEF
  31.     19. Order of Precedence
  32.     20. Technical Notes
  33.     21. Registration
  34.     22. My Address
  35.     23. Distribution
  36.     24. Acknowledgments
  37.     
  38.     
  39.     1. Introduction
  40.        ============
  41.     
  42.     Ucalc is a high precision scientific calculator which can evaluate
  43.     expressions, solve equations, perform numerical integrations, and do
  44.     summations.  It supports many built-in functions, operators, numerical
  45.     notations, and modes.  It also allows for user-defined functions and
  46.     variables.  Expressions such as the following can be computed:
  47.     
  48.         63 - 5 + 4.821
  49.     
  50.         (5.9-abs(2.8/5-3))^2 + sin( 3-(pi+3/4)*myfunction(x,y) )
  51.     
  52.         sum(x^2+x-2,1..500)
  53.     
  54.         solve(3*x^2+2*x-5=27)
  55.     
  56.         integ(x^2*sin(x),1..5)
  57.     
  58.         #b101010 and (#b10101 or #h1CC) * 2^5
  59.     
  60.         15 * sin(pi/4)+abs(10-(5+log(20))^2+9)-#b101110111
  61.     
  62.     
  63.     2. Ucalc Features
  64.        ==============
  65.     
  66.     - High precision: 18 significant digits.  +/-3.4E-4932 to +/-1.2E+4932
  67.     - Flexible notations:  ** or ^, SQR or SQRT, MOD or % etc...
  68.     - Line editor with expression recall
  69.     - Expressions can also be entered at the DOS command line
  70.     - Decimal, hexadecimal, binary and octal notations
  71.     - Summations
  72.     - Numerical integration
  73.     - Equations can be solved
  74.     - Implicit multiplication
  75.     - Radian, degree, and gradient modes for trig functions
  76.     - Online help with F1
  77.     - Arithmetic operators
  78.     - Bitwise operators
  79.     - Relational operators
  80.     - Trig functions
  81.     - Hyperbolic functions
  82.     - Common functions such as factorial, absolute value, log, etc...
  83.     - User defined functions which allow many arguments
  84.     - User defined variables
  85.     - Commands to list all user variables & functions
  86.     - DOS redirection
  87.     - Adjustable FIX notation
  88.     - Adjustable number of digits
  89.     - LOAD & WRITE commands to retrieve or save a session
  90.     - PRINT command to send output to the printer
  91.     - SHELL command to temporarily go to DOS
  92.     
  93.     
  94.     3. Installation
  95.        ============
  96.     
  97.     Copy the files UCALC.EXE and UCALC.DEF to a directory defined in the
  98.     PATH statement of your AUTOEXEC.BAT file (like your DOS or UTILS
  99.     directory).  If you do most of your calculations at the command line,
  100.     then you can put those files in a RAM drive for faster execution. 
  101.     UCALC can also be run from the current directory.
  102.     
  103.     
  104.     4. Getting Started
  105.        ===============
  106.     
  107.     There are two ways of running the Ultimate Calculator.  The first way
  108.     is to enter your expression at the DOS command line as follows:
  109.     
  110.     UCALC 5+4*8/2 [enter]
  111.     
  112.     Ucalc also provides a line editor for performing more than one
  113.     operation per session.  This environment allows you to assign values to
  114.     variables, and define functions as you go along.  To run ucalc in that
  115.     mode, simply invoke UCALC at the DOS command line without any
  116.     expression as follows:
  117.     
  118.     UCALC [enter]
  119.     
  120.     When you are in this mode, you can press [F1] any time for help, and
  121.     [Esc] to quit the program.  See EXAMPLES.DOC to get more ideas on how
  122.     to use Ucalc.
  123.     
  124.     
  125.     5. Command Line
  126.        ============
  127.     
  128.     At the command line, you can type UCALC followed by one of these
  129.     options:
  130.     
  131.     /?        Help
  132.     /NODEF    Does not load UCALC.DEF
  133.     
  134.     If an expression is present at the command line, it is evaluated, and
  135.     control returns to DOS.  Otherwise, you are left at the "ucalc> "
  136.     prompt, where you may enter several expressions and quit with [Esc]. 
  137.     If a symbol in your expression is in conflict with DOS, then enclose
  138.     the expression in quotes.
  139.     
  140.     Examples:
  141.     ---------
  142.     
  143.     UCALC /NODEF
  144.     
  145.     UCALC "5^4 | 5*8"
  146.     
  147.     See EXAMPLES.DOC for a sample session.
  148.     
  149.     
  150.     6. Ucalc Prompt
  151.        ============
  152.     
  153.     At the ucalc prompt, you can enter an expression to be evaluated, and
  154.     use the following commands, and function keys:
  155.     
  156.     [F1] Help                   (same as HELP or ?)
  157.     [F2] Lists variables        (same as LIST)
  158.     [F3] Displays UCALC.DEF     (same as LIST DEF)
  159.     [F4] DOS shell              (same as SHELL)
  160.     [F5] Lists user functions   (same as LISTF)
  161.     [Esc] Quit                  (same as QUIT, see also EXIT)
  162.     
  163.     CLOSE                    Closes the file opened with the WRITE command.
  164.     CLS                      Clears the screen.
  165.     DIG nn                   Total number of digits displayed.
  166.     EXIT                     Exits to DOS without asking if you're sure.
  167.     FIX nn                   Number of decimal digits displayed.
  168.     HELP                     Gives online help (same as F1 or ?).
  169.     INTEG(fx,a..b [,n])      Numerical integration.
  170.     LIST                     Lists user defined variables (same as F2).
  171.     LISTF                    Lists user defined functions (same as F5).
  172.     LIST DEF                 Displays the contents of UCALC.DEF (F3).
  173.     LOAD"filename"           Loads a file.
  174.     MODE {DEG|RAD|GRA}       Changes mode to degrees, radians, or gradients
  175.     MODE HBO                 Toggles the hex, binary, octal answer display.
  176.     PRINT [ON|OFF]           Prints the current session as you work.
  177.     PROMPT"yourprompt"       Changes or removes the "ucalc> " prompt.
  178.     PROMPTA"yourprompt"      Changes or removes the "Answer: " prompt.
  179.     QUIT                     Exits to DOS, and asks if you're sure.
  180.     SHELL                    Shells to DOS (same as F4).
  181.     SHELL"command"           Executes a DOS command.
  182.     SOLVE(fx [=fx] [,a..b])  Solves equations.
  183.     SUM(fx,a..b [,dx])       Summation of function fx ranging from a to b.
  184.     SUMTABLE(fx,a..b [,dx])  Summation which displays intermediate results.
  185.     WRITE"filename"          Records your session to a file.
  186.     
  187.     The variable 'last' contains the value of the previous computation.
  188.     Variable 'x' is the parameter which should be used with SUM, SUMTABLE,
  189.     and SOLVE.
  190.     
  191.     At the prompt, you may use the up (or down) arrow key to recall
  192.     previous expressions.  You may also key in several characters before
  193.     pressing the up arrow in order to recall an expression starting with
  194.     those characters.
  195.     
  196.     
  197.     7. Table of Symbols
  198.        ================
  199.     
  200.     Symbol   Equivalent   Description                       Example
  201.     ------   ----------   -----------                       -------
  202.     ( )                   Prioritizes an expression         5*(1+1) = 10
  203.     
  204.     ^        **           Raised to the power of            4  ^  5 = 1024
  205.     *                     Multiply by                       3  *  6 = 18
  206.     /                     Divide by                         9  /  2 = 4.5
  207.     %        MOD          Modulo                            7  %  4 = 3
  208.     +                     Add                               1  +  1 = 2
  209.     -                     Subtract                          9  -  5 = 4
  210.     
  211.     >                     Greater than                      9  >  2 = 1
  212.     <                     Less than                         7  <  4 = 0
  213.     =        ==           Equal test                        5  =  4 = 0
  214.     >=       =>           Greater or equal                  3  >= 3 = 1
  215.     <=       =<           Less or equal                   $3E  <= 9 = 0
  216.     <>       !=           Not Equal                   #b10101 <> 20 = 1
  217.     
  218.     NOT                   Bitwise 'not'                     not(15) = -16
  219.     AND       &           Bitwise 'and'              #b101 and #h1E = 4
  220.     OR        |           Bitwise 'or'                     13 or 6  = 15
  221.     XOR                   Bitwise 'exclusive or'           9 xor 3  = 10
  222.     EQV                   Bitwise 'equivalence'            6 eqv 9  = -16
  223.     IMP                   Bitwise 'implication'            1 imp 5  = -1
  224.     
  225.     SIN                   Sine                              sin(pi) = 0
  226.     COS                   Cosine                            cos(pi) = -1
  227.     TAN                   Tangent                           tan(pi) = 0
  228.     ASIN                  Arcsine                           asin(1) = 1.570
  229.     ACOS                  Arccosine                        acos(-1) = 3.141
  230.     ATAN      ATN         Arctangent                        atan(0) = 0
  231.     
  232.     SINH                  Hyperbolic sine                  sinh(3) = 10.01
  233.     COSH                  Hyperbolic cosine                cosh(2) = 3.7621
  234.     TANH                  Hyperbolic tangent               tanh(1) = 0.761
  235.     COTH                  Hyperbolic cotangent             coth(1) = 1.318
  236.     SECH                  Hyperbolic secant                sech(0) = 1
  237.     CSCH                  Hyperbolic cosecant              csch(1) = 0.850 
  238.     ASINH                 Hyperbolic arcsine              asinh(2) = 1.443
  239.     ACOSH                 Hyperbolic arccosine            acosh(9) = 2.887
  240.     ATANH                 Hyperbolic arctangent          atanh(.5) = 1.098
  241.     ACOTH                 Hyperbolic arccotangent         acoth(7) = 0.143
  242.     ASECH                 Hyperbolic arcsecant           asech(.3) = 1.873
  243.     ACSCH                 Hyperbolic arccosecant          acsch(2) = 0.481
  244.     
  245.     ABS                   Absolute value                   abs(-8) = 8
  246.     EXP                   e to the power of                 exp(3) = 20.08
  247.     RND                   Random number                     rnd(1) = .9686
  248.     INT                   Truncate to an integer          int(6.8) = 6
  249.     CEIL                  Round upward                   ceil(6.8) = 7
  250.     EXP2                  2 to the xth power               exp2(3) = 8
  251.     EXP10                 10 to the xth power             exp10(3) = 1000
  252.     FACT                  Factorial                        fact(5) = 120
  253.     LOG2                  Log base 2                       log2(8) = 3
  254.     LOG10                 Log base 10                   log10(100) = 2
  255.     LOG        LN         Natural log                      log(16) = 2.77
  256.     SGN        SIGN       Sign of expression               sgn(-9) = -1
  257.     SQR        SQRT       Square root                      sqr(64) = 8
  258.     
  259.     
  260.     8. Summation
  261.        =========
  262.     
  263.     Syntax:  SUM(fx,a..b [,dx])
  264.     
  265.          b
  266.         ____
  267.         \    f(x)    is written as SUM(f(x),a..b), where f(x) is your
  268.         /___         function, and a..b is the range.
  269.         x= a         The summation cannot be part of another expression.
  270.     
  271.     The optional  dx  parameter can be used to indicate an increment other
  272.     than the default 1.
  273.     
  274.     Examples:
  275.     ---------
  276.     
  277.     ucalc>   sum(x^2+2*x+14,5..1000)
  278.     Answer:  334848394
  279.     
  280.     ucalc>   sum(x^3-2,1..15,.1)
  281.     Answer:  127971.6
  282.     
  283.     SUMTABLE is the same as SUM, except that intermediate values are
  284.     printed as the sum is being added.
  285.     
  286.     ucalc>  sumtable(x^2/fact(x),1..3)
  287.        Count         Value         Cumulative
  288.        1             1             1
  289.        2             2             3
  290.        3             1.5           4.5
  291.     
  292.     Answer:  4.5
  293.     
  294.     A long list can be aborted with the [Esc] key.
  295.     
  296.     
  297.     9. Numerical Integration
  298.        =====================
  299.     
  300.     Syntax:  INTEG(fx,a..b [,n])
  301.     
  302.     This approximates the value for the definite integral of fx, using
  303.     Simpson's rule.  This rule requires that  n  be an even number.  Ucalc
  304.     takes care of that by automatically transforming  n  to the next
  305.     highest even number (n = n + n mod 2).  If no value for n is given,
  306.     then 100 is used as the default number of subdivisions.  This command
  307.     works properly only when fx is a continuous function.
  308.     
  309.     Examples:
  310.     ---------
  311.     
  312.     ucalc>   integ(x*sin(x),0..pi)
  313.     Answer:  3.14159267059288459
  314.     
  315.     ucalc>   integ(1-x^2,0..1,8)
  316.     Answer:  .666666666666666667
  317.     
  318.     
  319.     10. Solving Equations
  320.         =================
  321.     
  322.     Syntax:  SOLVE(fx [=fx] [,a..b])
  323.     
  324.     This solves an equation for the value of 'x'.  The statements in
  325.     brackets are optional.  If the expression on the right of the = sign is
  326.     0, then you can simply do:  SOLVE(expression).  For instance,
  327.     SOLVE(3*x+2=0) can be written as SOLVE(3*x+2).  If the equation happens
  328.     to have several solutions, you can indicate the domain (a..b) of the
  329.     particular solution you are interested in.
  330.     
  331.     The algorithm used in this program for solving equations is the
  332.     Bisection Method, which is a special case of the Intermediate Value
  333.     Theorem.  A solution can be found for continuous functions in the range
  334.     a < x < b, where f(a) < 0 < f(b).  If a..b is not defined, then the
  335.     default range is from -1E6 to 1E6.  If a real solution does exist, but
  336.     cannot be found with the default range, then try narrowing the range as
  337.     much as possible.
  338.     
  339.     Examples:
  340.     ---------
  341.     
  342.     ucalc>   solve( exp(x+x^2)-sqr(x+5) = 127 )
  343.     Answer:  1.76151609179570087
  344.     
  345.     ucalc>   solve( cos(x), pi/2..pi )
  346.     Answer:  1.57079632679489662
  347.     
  348.     ucalc>   solve( x^3+2*x+5 = 10+7 )
  349.     Answer:  2
  350.     
  351.     ucalc>   solve( 2*x^2-3 )
  352.     Answer:  1.22474487139158905
  353.     
  354.     
  355.     11. LOAD command
  356.         ============
  357.     
  358.     Syntax:  LOAD"filename"
  359.     
  360.     This command loads up the contents of a file into the Ucalc workspace.
  361.     The file may contain any Ucalc command.  A file saved with the WRITE
  362.     command however, cannot be loaded directly if it contains "ucalc> "
  363.     prompts.
  364.     
  365.     Examples:
  366.     ---------
  367.     
  368.     ucalc> load"convert.def"
  369.     ucalc> load"finance.def"
  370.     ucalc> load"formula.asc"
  371.     
  372.     
  373.     12. WRITE command
  374.         =============
  375.     
  376.     Syntax:  WRITE"filename"
  377.     
  378.     This command records your Ucalc session to a file name that you
  379.     specify.  Everything that is displayed on the screen will go to that
  380.     file verbatim, until you issue the CLOSE command, or exit to DOS.  If
  381.     the file already exists, the WRITE command will append to it.
  382.     
  383.     
  384.     Example:
  385.     --------
  386.     
  387.     ucalc> write"ucalc.log"
  388.     
  389.     
  390.     13. SHELL command
  391.         =============
  392.     
  393.     Syntax:  SHELL
  394.     
  395.     This allows you to drop to DOS temporarily.  To resume your session,
  396.     type EXIT at the DOS prompt.  [F4] does the same thing as the SHELL
  397.     command.  You may also pass a command for DOS to execute.
  398.     
  399.     Examples:
  400.     ---------
  401.     
  402.     ucalc> shell"dir"     ; This executes the DIR command.
  403.     ucalc> shell          ; This drops you to DOS until you type EXIT.
  404.     
  405.     
  406.     14. Numerical Notations
  407.         ===================
  408.     
  409.     The default numerical type is DECIMAL.  Binary, octal, and hexadecimal
  410.     number types are also supported.  The latter types must be preceded by
  411.     the  #  (number sign) symbol, and one of the letters "h", "b", or "o",
  412.     for hexadecimal, binary, or octal in that respective order.  The $ sign
  413.     for hexadecimal notation can be used as a shortcut.  See examples.
  414.     
  415.     In order to see all your answers in hex, binary, and octal, issue the
  416.     command:  mode HBO
  417.     
  418.     Exponential notation is also supported.  These are numbers followed by
  419.     the letter E, and an exponent number.  For instance:  3.4E+5 translates
  420.     to 3.4*10^5, and 3.4E-5 translates to 3.4*10^(-5).
  421.     
  422.     Examples:
  423.     ---------
  424.     
  425.     #b110101110,   #o656,   #h1AE,   $1AE,   430,   4.3E2
  426.     are all the same number.
  427.     
  428.     #b10101^2 * 5/$1EF + sin(5.8+2)*cos(#o302)-7E6  is a valid expression.
  429.     
  430.     
  431.     15. Implicit Multiplications
  432.         ========================
  433.     
  434.     When writing math expressions, it is common to omit the times symbol
  435.     (*), when multiplication is implied.  For instance, one may write
  436.     '2x+5', which is the same as '2*x+5'.  The following are examples of
  437.     implied multiplications supported by Ucalc.
  438.     
  439.     Expression                    Equivalent
  440.     ----------                    ----------
  441.     x y                           x*y
  442.     3pi+10                        3*pi+10
  443.     5(4+8)                        5*(4+8)
  444.     (5+5)(3+9)                    (5+5)*(3+9)
  445.     (3+2)8                        (3+2)*8
  446.     
  447.     
  448.     16. Assigning Variables
  449.         ===================
  450.     
  451.     Variables can be used to store values, which can later become part of
  452.     an expression.  They are composed of letters of the alphabet, and may
  453.     contain numerical digits, as long as a numerical digit is not the first
  454.     character.
  455.     
  456.     Examples:
  457.     ---------
  458.     
  459.     mynumber = 12345
  460.     mass = 15
  461.     speed = 23+10.5
  462.     m1 = 10*pi^2
  463.     c2 = sqrt(37) + 5
  464.     
  465.     
  466.     17. Assigning Functions
  467.         ===================
  468.     
  469.     Once defined, a user function can be used anywhere a built-in function
  470.     can be used.  The naming convention of functions is similar to that of
  471.     variables.  Argument names used in defining functions are temporary,
  472.     and do not affect user variables with the same name.  The name of the
  473.     function itself, however, should be unique.  User functions can accept
  474.     many arguments.
  475.     
  476.     Examples:
  477.     ---------
  478.     
  479.     cube(x) = x^3
  480.     area(r,h) = pi*r*sqr(r^2+h^2)  ; area of right circular cone
  481.     logx(base,num) = ln(num) / ln(base)
  482.     abc() = 5 + sin(b)
  483.     
  484.     
  485.     18. UCALC.DEF
  486.         =========
  487.     
  488.     Commonly used constants & functions, such as e, pi, logx(x,y) and any
  489.     others that you use regularly, can be defined in UCALC.DEF.  This file
  490.     can be created or modified with any ASCII text editor.  You may use the
  491.     semicolon (;) as a remark.  Anything following it will not be
  492.     interpreted as part of the expression.
  493.     
  494.     Unlike the previous version which only allowed user functions &
  495.     variables, UCALC.DEF may contain any Ucalc command (such as MODE,
  496.     PROMPT, FIX, etc ...).
  497.     
  498.     Every time Ucalc is run, it looks for UCALC.DEF in the current
  499.     directory first, and then in the directory which UCALC.EXE was loaded
  500.     from.  If the file is found, its functions and variables are loaded. 
  501.     The /NODEF option at the command line is equivalent to not having a
  502.     UCALC.DEF file.
  503.     
  504.     Here is an example of what UCALC.DEF may look like:
  505.     
  506.     fix 5
  507.     load"convert.def"
  508.     prompt""             ; Removes the default "ucalc> " prompt
  509.     prompta"A:"          ; Replaces the default "Answer: " prompt with "A:"
  510.     
  511.     pi      = 3.141592653589793
  512.     e       = 2.718281828459045  ;  Natural log constant
  513.     gravity = 9.80               ;  Acceleration due to gravity
  514.     na      = 6.0221367E+23      ;  Avogadro's number 1/mol
  515.     
  516.     sec(x)  = 1 / cos(x)
  517.     csc(x)  = 1 / sin(x)
  518.     cot(x)  = cos(x) / sin(x)
  519.     logx(base,num) = log(num) / log(base)
  520.     
  521.     There is a limit of 200 variables, and a limit of 128 instructions
  522.     (like +, *, ^, etc...) for user defined functions.
  523.     
  524.     
  525.     19. Order of Precedence
  526.         ===================
  527.     
  528.     Here is the precedence list from highest to lowest priority:
  529.     
  530.     Anything inside parenthesis is performed first  ( )
  531.     Exponentiation                                  ^
  532.     Multiplication, division                        *, /
  533.     Modulo                                          MOD
  534.     Addition, subtraction                           +, -
  535.     Relational operators                            <, >, >=, <=, =, <>
  536.     AND
  537.     OR, XOR (exclusive or)
  538.     EQV (equivalence)
  539.     IMP (implication)
  540.     
  541.     
  542.     20. Technical Notes
  543.         ===============
  544.     
  545.     o DOS IO:  A file with calculations to be performed may be created
  546.       ahead of time with your favorite text editor, and passed at the
  547.       command line in the following format:
  548.     
  549.       UCALC < MYFILE.DAT > RESULT.DAT
  550.     
  551.       An expression at the command line can also be redirected: 
  552.       UCALC sumtable(2*x+5,1..1000) > RESULT.DAT
  553.     
  554.     o End-of-file:  When doing redirection from the DOS command line, make
  555.       sure that the input file ends with an end-of-file marker (^Z, or
  556.       ASCII character 26).  Many text editors take care of this
  557.       automatically, but a few don't.  An input file may alternatively end
  558.       with a ^C (ASCII 3) character or the EXIT command.  An input file
  559.       with no ^C, ^Z or EXIT command may cause Ucalc to freeze.
  560.     
  561.     o Ugly Numbers:  Occasionally, numbers are not displayed as one might
  562.       expect.  For instance you might get 8.23423423982432343E-18 instead
  563.       of 0, or .499999999999999999 instead of .5, which is actually pretty
  564.       close to the answer.  This may happen as a result of lengthy
  565.       operations, or certain types of functions.
  566.     
  567.     o Command Line Conflicts:  Certain symbols used by Ucalc may also be
  568.       interpreted by DOS or other command shells.  If there is a conflict,
  569.       then enclose the command line expression in quotes, such as the
  570.       following:
  571.       
  572.       UCALC "(5^4 | 18) < 10"
  573.     
  574.     o HBO mode:  When this mode is on, it will display the hex, binary, and
  575.       octal notations, only for values between -32766 and 65535.  Numbers
  576.       beyond that range are displayed only in decimal form.  Negative
  577.       numbers are represented in "two's complement" form.  Only the integer
  578.       part of a number is displayed in hex, bin, and oct.
  579.     
  580.     o Relational operators return a 1 for true expressions, and 0 for false
  581.       ones.  For instance,  5 > 3 = 1, and 5 < 3 = 0.
  582.     
  583.     o Compound Functions:  Functions with multiple entries may be defined
  584.       by using relational operators.  For instance:
  585.     
  586.                 / 2+x^2,   x > 0
  587.         f(x) = |  3,       x = 0
  588.                 \ x*2+8,   x < 0
  589.     
  590.        can be written as:
  591.     
  592.         f(x) = (2+x^2)*(x > 0)  +  (3)*(x = 0)  +  (x*2+8)*(x < 0)
  593.     
  594.     o Equal Sign:  The single equal sign, =, can be used both for assigning
  595.       functions & variables, and as a relational operator.  If there is a
  596.       conflict in the logic of an expression such that it can be taken
  597.       either way, then use the double equal sign, ==, when a relational
  598.       operator is intended.  An assignment is assumed only when the
  599.       expression left of the left-most equal sign is a valid function or
  600.       variable name.
  601.     
  602.     o Limited Function Space:  There is a limit of 128 instructions (like
  603.       +, -, *, etc...) which can be used for defining functions.  Every
  604.       time a function is defined or redefined, part of the instruction list
  605.       is filled, and cannot be reclaimed during a Ucalc session.  An error
  606.       message is given when the number of instructions allowed is
  607.       exhausted.
  608.     
  609.     o Variable names:  Variable and function names may be up to 1024
  610.       characters long, which should be more than enough for most purposes. 
  611.       These names may consist of any ASCII character other than those used
  612.       as operators.  The first character cannot be a numerical digit.
  613.       Unlike version 1.2 which allowed it, a variable should not have the
  614.       same name as a function, due to implicit multiplication.
  615.     
  616.     o Ucalc is not case sensitive.  Upper case letters are treated just the
  617.       same as lower case letters.  For instance, pi, PI, and Pi are all
  618.       treated the same.
  619.     
  620.     o Text Buffer:  The last 100 lines can be recalled using the up (or
  621.       down) arrow keys.
  622.     
  623.     o Rounding:  The rounding method in Ucalc is called banker's rounding. 
  624.       With this method, numbers are rounded towards the closest even
  625.       number.  For instance, both 11.50 and 12.50 are rounded to 12, and
  626.       both 13.50 and 14.50 are rounded to 14, when FIX is set to 0.  Only
  627.       the displayed number is rounded, but calculations are performed in
  628.       high precision.
  629.     
  630.     o Random Numbers:  The RND function produces a random number between 0
  631.       and 1.  RND(1) returns a new random number each time it is used. 
  632.       RND(0) returns the previously used random number.  If x is negative,
  633.       then RND(x) returns a predictable number.  For instance, RND(-5) will
  634.       produce the same number each time.  To get a random number between 0
  635.       & x, simply use RND(1)*x.  For instance, RND(1)*50 will return a
  636.       random number between 0 & 50.
  637.     
  638.     
  639.     21. Registration
  640.         ============
  641.     
  642.     Ucalc is not "free", neither is it "public domain".  It is a
  643.     copyrighted and commercial program distributed through the shareware
  644.     channel.  This allows you to try the program first to see if it suits
  645.     your needs.  If you decide to continue using it after 21 days, then you
  646.     are expected to pay the author a registration fee, which costs only $25
  647.     for individual use, or less per machine if you get a site license. 
  648.     Some users may even qualify for a free registration.
  649.     
  650.     All the features present in the registered version are also present in
  651.     the evaluation copy.  I think that by letting you try all of the
  652.     features, you will decide to register if you want to continue using
  653.     this program.  Please help prove me right be sending your registration. 
  654.     Your registration will motivate me to spend the time & resources
  655.     necessary to add some of the features that you ask for.  The delay
  656.     screen at the end of the evaluation copy is not present in the
  657.     registered version.
  658.     
  659.     In order to help me better support this program, please answer the
  660.     questions in QUEST.DOC, whether you decide to register or not.  This
  661.     will allow me to keep the price down, and add the right features in the
  662.     next version.  Use the form in REGISTER.DOC to place your registration.
  663.     
  664.     Easy Service
  665.     ------------
  666.     For your convenience, you can order Ucalc from the Public Software
  667.     Library with your Visa, Master Card, American Express, or Discover card
  668.     by calling toll-free at 1-800-242-4PSL (overseas: 713-524-6394) or by
  669.     FAX to 713-524-6398, and even by Compuserve at 71355,470.  THESE
  670.     NUMBERS ARE FOR ORDERING ONLY.  I can NOT be reached at those numbers.
  671.     
  672.     24 hour shipping
  673.     ----------------
  674.     PSL will immediately ship the registered version within 24 hours of
  675.     receiving your registration fee.
  676.     
  677.     To registered users of Ucalc v1.2
  678.     ---------------------------------
  679.     Those who have registered Ucalc v1.2 are entitled to a free
  680.     registration for this version.  If you don't receive it within a few
  681.     weeks, please contact me.
  682.     
  683.     Support
  684.     -------
  685.     I will try to extend my support to unregistered users during their
  686.     evaluation period, however, I reserve the right to limit my support for
  687.     unregistered users if their requests become taxing for me.  I prefer to
  688.     communicate by e-mail.  If you wish to correspond by postal mail,
  689.     please send a self addressed stamped enveloped in order for me to
  690.     reply.
  691.     
  692.     FREE registration for qualified students
  693.     ----------------------------------------
  694.     If your school lab has a site license for the Ultimate Calculator for
  695.     use on 10 or more computers, then up to five students from your school
  696.     can receive a free registered copy of the program.  All you have to do
  697.     is send me a request for your free copy, along with the name of your
  698.     school.  Please check with the lab personnel first to make sure you are
  699.     one of the first five in your school to claim the free registration.
  700.     
  701.     This offer is good for up to two months after your school lab has
  702.     ordered its license, and may end when the next version of Ucalc is
  703.     released.
  704.     
  705.     License
  706.     -------
  707.     For this license agreement, a site is considered to be any corporation,
  708.     institution, government agency, computer lab, or non-personal
  709.     organization, with more than one computer capable of running the Ucalc
  710.     software, and with a locally accessible tech support person or team. 
  711.     This definition of a site is subject to change.
  712.     
  713.     A site may use the unregistered version for evaluation purposes only. 
  714.     If the site decides to continue using Ucalc after 30 days, a site
  715.     license must be purchased.  The site license arrangement provides for
  716.     volume discounts.  See the file named REGISTER.DOC for the low rates
  717.     that are available.
  718.     
  719.     A site license is for use of the software within your site, and is not
  720.     transferable.  This license allows the internal use and copying of the
  721.     software by as many computers as contracted for.  Distribution,
  722.     repackaging, or reselling of the licensed version to third parties is
  723.     not allowed under this agreement.  The unregistered version however may
  724.     be freely distributed.
  725.     
  726.     The LICENSOR (Daniel Corbier) warrants that it is the sole owner of the
  727.     Ucalc software and has full power and authority to grant this license
  728.     herein without consent of any other party.
  729.     
  730.     Disclaimer
  731.     ----------
  732.     The Ultimate Calculator (Ucalc) is provided on an "as is" basis without
  733.     warranty of any kind, expressed or implied.  The person using the
  734.     software bears all risk as to the quality and performance of the
  735.     software.  The author will not be held liable for any special,
  736.     incidental, consequential, direct or indirect damages due to any
  737.     malfunctions.
  738.     
  739.     Aside from the legal stuff, I'm eager to support this program as much
  740.     as possible.  I want to hear your suggestions for the next release.
  741.     
  742.     
  743.     22. My Address
  744.         ==========
  745.     
  746.     For information about dealer pricing, volume discounts, site licensing,
  747.     latest version, suggestions, or for technical information, you can
  748.     contact me through one of the following means:
  749.     
  750.     US Mail: (notice that this is a new address)
  751.       Daniel Corbier
  752.       11670 NE 20th Dr
  753.       Miami, FL  33181
  754.     
  755.     Internet:
  756.       corbier@andrews.edu    (This one is preferred)
  757.       corbier@starl.miami.fl.us
  758.     
  759.     Fidonet:
  760.       Daniel Corbier at 1:135/110 or Daniel Corbier at 1:135/23
  761.     
  762.     Compuserve:
  763.       INTERNET:  corbier@andrews.edu
  764.     
  765.     In the Miami area, I usually frequent the following BBSs daily:
  766.     
  767.     Telcom Central   305-828-7909
  768.     Starlight        305-948-0183
  769.     MACC             305-596-1854
  770.     SOX              305-821-3317
  771.     
  772.     
  773.     I usually read the following conferences on a daily basis:
  774.     
  775.     Fidonet:  Shareware, ECPROG, Science and more
  776.     Internet:  various comp.sys, and sci.math newsgroups
  777.     
  778.     
  779.     23. Distribution
  780.         ============
  781.     
  782.     You are encouraged to distribute the shareware version of the Ultimate
  783.     Calculator.  The following files must all be present and unmodified
  784.     when distributed:
  785.     
  786.     UCALC.DEF     Definition file
  787.     UCALC.EXE     Executable
  788.     UCALC.DOC     Documentation
  789.     QUEST.DOC     Questionnaire
  790.     EXAMPLES.DOC  Examples for Ucalc
  791.     REGISTER.DOC  Registration form
  792.     WHATSNEW.DOC  List of new features in this version
  793.     CONVERT.DEF   Conversion functions
  794.     FILE_ID.DIZ   Descriptions for BBS use
  795.     
  796.     The compressed file name must be UCALC18.??? or UCAL18.??? (replace ???
  797.     with ARJ, ZIP, LZH or whatever compression suffix being used).
  798.     
  799.     Vendors
  800.     -------
  801.     Vendors may distribute Ucalc, as long as it is not labeled "free",
  802.     "cheap", "copyright free", or "public domain".  It must be made clear
  803.     to customers that this program is shareware, and that a payment must be
  804.     made to the author if they continue using it.  All ASP distributors in
  805.     good standing may distribute the Ultimate Calculator without my written
  806.     permission (although I would appreciate a copy of your catalog).  Other
  807.     distributors who sell a disk containing Ucalc for more than $6 should
  808.     obtain my written permission (through postal or electronic mail).
  809.     
  810.     
  811.     24. Acknowledgments
  812.         ===============
  813.     
  814.     I would like to thank all those who have registered the previous
  815.     version of Ucalc, and have sent suggestions.  The new features in Ucalc
  816.     1.8 are a direct result of these suggestions.  I would also like to
  817.     thank the following people for being beta testers for the Ultimate
  818.     Calculator:
  819.     
  820.     Jonathan Borwein   University of Waterloo
  821.     David G. Caraballo Princeton University
  822.     Elan Feingold      Cornell University
  823.     Daryl Gungadoo     Andrews University
  824.     James Hague
  825.     Rich Holland       Kansas State University
  826.     Willie Hutton      University of Colorado
  827.     Mark W Jacobs      Stanford University
  828.     Michael D. Lawler  Ball State University
  829.     Chris Long         Rutgers University
  830.     Mark E. Mallett
  831.     Peter Paul Meiler  TNO Physics & Electronics Lab, the Netherlands
  832.     Marty Milette      Mitel Corporation
  833.     Matt Pardo         North Carolina Medical Center
  834.     Alexander Pruss    University of British Columbia
  835.     Glauber Ribeiro    O.C. International, Brazil
  836.     Dave Sklar         Temple University
  837.     John Steele        Video Business Systems
  838.     David Steinman     University of Toronto
  839.     Sue Widemark
  840.     Shi-Chang Wooh     Northwestern University, Illinois
  841.     
  842.                     <<<<  END OF UCALC DOCUMENTATION  >>>>
  843.