SIMPLE MATH calculator This is
a basic calculator with some additional keys that are specific to data acquisition. Along with standard math operations, it contains keys for a number of surface and volume conversions frequently used by physiologists and other scientists.
The calculator has an RPN function with addition, subtraction, multiplication, and division (which should be familiar to users of HP desk calculators). Note that you should use the underline key (_) instead of the minus key () for subtraction (this is because the minus key is assumed to indicate a negative number, not subtraction).
Also note that when computing sines, cosines, or tangents, the calculator expects angles in degrees (not radians).

EXPRESSION EVALUATOR
This routine lets you write a mathematical expression,
enter numeric values for the expression variables, and have the computer
solve it. The program parses the expression into components and performs
the operations. The expression evaluator understands the following
symbols (upper or lower case entries are OK):
 Simple operators: +  * / ^ ( )
 Complex operators: EXP, LOG or
LN, LOG10, SIN, COS, TAN, ATN or ATAN, ABS, INT, SQR (square), SQRT (square
root)
 Two special variables (i.e., channels) named "X" and
"Y", chosen with pushbuttons (see image below)
 PI (or the equivalent Greek letter)
 Numbers (such as 5, 3.1889, and
1e10)
 You can add a comment at the end of your expression, delineated
with the " ` " character.
Some general considerations:
 The 'Check expression' button does a preliminary parsing of
the expression and indicates if there are any syntax errors (in the above
example, this button has been clicked).
 The 'Evaluate' button processes the X and Y values according to
the expression in the upper left window. Results are shown in the yellow text box at the bottom of the window. If any errors are found (see below), a warming message
is shown.
NOTE: This routine will only 'catch'
errors in the basic numeric expression. It may
not detect invalid or meaningless math operations that may be attempted
when data are processed, such as division by zero, or taking the
log or a noninteger exponent of a negative number. If such situations
occur, results may be unpredictable. The algorithm does find most such
errors during processing, however.
The underlying code for the expression evaluator
was developed by the late, great Robert
Purves (recently deceased and greatly missed). I 'borrowed' it  with his permission  and
made some modifications for LabHelper.
But Robert P. deserves all the credit. 
