Provided by: radiance_4R1+20120125-1.1_amd64 bug

NAME

       icalc - interactive calculator

SYNOPSIS

       icalc [ file ]

DESCRIPTION

       Icalc  is  a  algebraic  calculator  designed primarily for interactive use.  Each formula
       definition file is read and compiled.  The standard input is then  read,  expressions  are
       evaluated  and  results  are sent to the standard output.  If a newline is escaped using a
       backslash, input is continued on the next line.

       An expression contains real numbers, variable names, function  calls,  and  the  following
       operators:

            +  -  *  /  ^

       Operators   are  evaluated  left  to  right,  except  '^',  which  is  right  associative.
       Exponentiation has the highest  precedence;  multiplication  and  division  are  evaluated
       before  addition  and  subtraction.   Expressions  can  be grouped with parentheses.  Each
       result is assigned a number, which can be used in future expressions.   For  example,  the
       expression  ($3*10)  is  the  result of the third calculation multiplied by ten.  A dollar
       sign by itself may be used for the previous result.  All values are double precision real.

       In addition, variables and functions can be defined by the user.   A  variable  definition
       has the form:

            var = expression ;

       Any  instance  of  the  variable in an expression will be replaced with its definition.  A
       function definition has the form:

            func(a1, a2, ..) = expression ;

       The expression can contain instances of the function arguments as well as other  variables
       and  functions.   Function  names  can be passed as arguments.  Recursive functions can be
       defined using calls to the  defined  function  or  other  functions  calling  the  defined
       function.

       To  define  a constant expression, simply replace the equals sign ('=') with a colon (':')
       in a definition.  Constant expressions are evaluated only once, the first  time  they  are
       used.  This avoids repeated evaluation of expressions whose values never change.  Ideally,
       a constant expression contains only numbers and references to previously defined  constant
       expressions  and functions.  Constant function definitions are are replaced by their value
       in any expression that uses them with constant arguments.  All  predefined  functions  and
       variables  have  the  constant  attribute.   Thus,  "sin(PI/4)"  in an expression would be
       immediately replaced by ".707108" unless sin() or PI were redefined by  the  user.   (Note
       that redefining constant expressions is not a recommended practice!)

       A variable or function's definition can be displayed with the '?'  command:

            ? name

       If no name is given, all definitions are printed.  The '>' command writes definitions to a
       file:

            > file

       Similarly, the '<' command loads definitions.

       The following library of predefined functions and variables is provided:

       PI        the ratio of a circle's circumference to its diameter.

       if(cond, then, else)
                 if cond is greater than zero, then is evaluated, otherwise  else  is  evaluated.
                 This function is necessary for recursive definitions.

       select(N, a1, a2, ..)
                 return  aN  (N is rounded to the nearest integer).  This function provides array
                 capabilities.  If N is zero, the number of available arguments is returned.

       rand(x)   compute a random number between 0 and 1 based on x.

       floor(x)  return largest integer not greater than x.

       ceil(x)   return smallest integer not less than x.

       sqrt(x)   return square root of x.

       exp(x)    compute e to the power of x (e approx = 2.718281828).

       log(x)    compute the logarithm of x to the base e.

       log10(x)  compute the logarithm of x to the base 10.

       sin(x), cos(x), tan(x)
                 trigonometric functions.

       asin(x), acos(x), atan(x)
                 inverse trigonometric functions.

       atan2(y, x)
                 inverse tangent of y/x (range -pi to pi).

AUTHOR

       Greg Ward

SEE ALSO

       ev(1), rcalc(1), tabfunc(1)