ev - evaluate expressions |
ev 'expr' .. |
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). |
To pass the square root of two and the sine of .5 to a program: |
program `ev 'sqrt(2)' 'sin(.5)'` |
Greg Ward |
calc(1), rcalc(1) |