This is the command icalc that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

**PROGRAM:**

**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).

Use icalc online using onworks.net services