.SD;.FLAGS CAPITALIZE .TITLE . = greater than or equal to .INDENT 15 _<_> Not equal to .INDENT 15 _<= less than or equal to .INDENT 15 _> greater than .INDENT 15 _< less than .INDENT 15 == is equal to .INDENT 15 = arithmatic replacement .INDENT 15 .skip .INDENT 15 ^^UNARY FUNCTIONS\\ .INDENT 15 ^^SQRT\\(x) square root of x .INDENT 15 ^^LN\\(x) natural log of x .INDENT 15 ^^EXP\\(x) e to the x .INDENT 15 ^^NOT\\(x) the complement of x .INDENT 15 ^^ABS\\(x) the magnitude of x .INDENT 15 ^^CONF\\05(N) 95% CONFIDENCE INTERVAL .INDENT 15 ^^CONF\\0l(N) 99% CONFIDENCE INTERVAL .SKIP 1 .INDENT 15 ^^BUILT IN CONTANTS\\ .INDENT 15 ^^PIE\\------3.1415927 .INDENT 15 E ---------2.7182818 .INDENT 15 ^^true\\ ----1.0 .INDENT 15 ^^FALSE\\-----0.0 .PAGE .SKIP 1 .SK;.I -10;^^PRECEDENCE OF THE OPERATORS IN ^&CALC\&\\ .SKIP .INDENT -4 1. ^FIRST, ANYTHING ENCLOSED IN PARENTHESES. .SKIP .INDENT -4 2. ^UNARY OPERATIONS: - (WHEN USED AS "CHANGE SIGN" OR NEGATION), ^^SQRT\\, ^^LN\\, ^^EXP\\, ^^NOT\\, AND ^^ABS\\. .SKIP .INDENT -4 3. ^EXPONENTIATION HAS THE NEXT PRIORITY DOWN. .SKIP .INDENT -4 4. ^MULTIPLICATION AND DIVISION. .SKIP .INDENT -4 5. ^ADDITION AND SUBTRACTION. .SKIP .INDENT -4 6. ^LOGICAL ^^AND\\ (_&) AND ^^OR\\ (| OR _\). .SKIP .INDENT -4 7. ^RELATIONAL OPERATIONS. .SKIP .INDENT -4 8. ^AND LAST, BUT NOT LEAST, ARITHMETIC REPLACEMENT, (=). .SKIP ^NOTE -- ^OPERATORS THAT HAVE EQUAL PRECEDENCE, LIKE MULTIPLY AND DIVIDE, ARE PROCESSED FROM LEFT TO RIGHT. .SKIP 5 .TEST PAGE 20 .CENTER ^^SPECIAL OPERATIORS IN ^&CALC\&\\ .SKIP .INDENT 5 ^BECAUSE ARITHMETIC EXPRESSIONS IN CALC ARE TREATED TOTALLY AS EXPRESSIONS INVOLVING \&REAL\& NUMBERS, THE MEANING OF SOME OF THE OPERATORS NEEDS A LITTLE EXPLANATION. .SKIP .INDENT -3 ^^LOGICAL VALUES\\ .INDENT 5 ^THE LOGIC VALUE ^^TRUE\\ IS REPRESENTED BY A REAL VALUE 1.0, AND ^^FALSE\\ IS REPRESENTED BY 0.0. ^HOWEVER, WHEN YOU PERFORM A LOGICAL OPERATION, ANY OTHER NON-ZERO VALUE IS ALSO CONSIDERED TO BE "^^TRUE\\". .SKIP .INDENT -3 ^^LOGICAL OPERATIONS\\ .INDENT 5 ^IN THE EXPRESSION ^^A_&B\\ THE ^^AND\\ SYMBOL MEANS RETURN THE VALUE OF ^B IF ^A IS NON ZERO, OTHERWISE RETURN ZERO. ^THE REASON FOR THIS CHOICE WAS TO ALLOW "^^IF STATEMENT\\" LIKE EXPRESSIONS IN ^^CALC\\. ^ALSO, IF YOU WERE TO TRY ALL COMBINATIONS OF LOGICAL INPUTS TO THE EXPRESSION, YOU WOULD FIND THAT IT DOES GIVE THE CORRECT LOGICAL RESULT. .INDENT 5 ^IN THE EXPRESSION ^A_\^B (OR ^A|^B), THE ^^OR\\ SYMBOL MEANS TO RETURN ^A IF ^B IS ZERO, OR ^B IF ^A IS ZERO. ^IF BOTH ARE NON-ZERO (^^TRUE\\), THE VALUE OF ^A IS RETURNED. .SKIP .INDENT -3 ^^RELATIONAL OPERATIONS\\ .INDENT 5 ^THE RELATIONAL OPERATIONS WILL SIMPLY RETURN A ^^TRUE\\ IF THE EXPRESSION IS CORRECT, AND A FALSE IF IT IS NOT. ^THE ONLY PITFALL TO LOOK OUT FOR IS TO MAKE SURE YOU USE "==" WHEN YOU MEAN "IS EQUAL TO" AND NOT "=", WHICH MEANS "IS REPLACED BY". .SKIP .INDENT -3 ^^UNARY OPERATIONS\\ ^ALL UNARY OPERATONS EXCEPT NEGATION (-) REQUIRE PARENTHESES AROUND THEIR ARGUMENT. .SKIP ^HERE IS AN EXPRESSION THAT USES ALL THE SPECIAL FEATURES OF ^^CALC\\, AND AN EXPLANATION OF WHAT THE EXPRESSION WILL DO: .SKIP ^^((A=BLANKS==0)_&REALS/BLANKS)|(NOT(A)_&REALS)\\ .SKIP .INDENT 5 ^THE EXPRESSION ^^BLANKS==0\\ IS EVALUATED FIRST AND THE RESULT, EITHER ^^TRUE\\ OR ^^FALSE\\ IS STORED IN ^A FOR USE LATER. ^IF THE RESULT WAS ^^TRUE\\, THEN THE EXPRESSION ^^REALS/BLANKS\\ IS EVALUATED TO GIVE THE RESULT OF THE WHOLE EXPRESSION. ^WHEN THE RESULT IN ^A IS ^^FALSE\\, (AND OF COURSE ^^NOT(A)\\ IS ^^TRUE\\), THE RESULT OF THE WHOLE EXPRESSION BECOMES JUST ^^REALS\\. .SKIP 1 .INDENT -10 ^^ROUTINES USED:\\ ^THE ARITHMATIC PACKAGE .SKIP 1 .INDENT -10 ^^EXAMPLE:\\ ^^CAL 3+6 .BR THE RESULT IS 9.0 .BR > .SKIP 1 .INDENT -10 ^^AUTHOR:\\ ^JACK ^MARTINELLI