## SYNOPSIS

**ev 'expr' ..**

## DESCRIPTION

*Ev*evaluates expressions given on the command line, and sends the results to the standard output, one per line. An expression contains real numbers, function calls, and the following operators:

` `+ - * / ^

Operators are evaluated left to right, except '^', which is right associative. Powers have the highest precedence; multiplication and division are evaluated before addition and subtraction. Expressions can be grouped with parentheses. All values are double precision real.

The following library of functions is available:

**if(cond, then, else)**- if cond is greater than zero, then is evaluated, otherwise else is evaluated.
**select(N, a1, a2, ..)**-
return aN (N is rounded to the nearest integer).
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).

## EXAMPLE

To pass the square root of two and the sine of .5 to a program:- program `ev 'sqrt(2)' 'sin(.5)'`