Calc is an interactive calculator which provides for easy large numeric calculations, but which also can be easily programmed for difficult or long calculations.
It can accept a command line argument, in which case it executes that single command and exits. Otherwise, it enters interactive mode. I
n this mode, it accepts commands one at a time, processes them, and displays the answers. In the simplest case, commands are simply expressions which are evaluated. For example, the following line can be input:
3 * (4 + 1)
and the calculator will print:
Calc as the usual collection of arithmetic operators +, -, /, * as well as ^ (exponentiation), % (modulus) and // (integer divide). For example:
3 * 19^43 - 1
29075426613099201338473141505176993450849249622191102976Notice that calc values can be very large. For
402874115778988778181873329071 ... many digits ... 3779264511
The special '.' symbol (called dot), represents the result of the last command expression, if any. This is of great use when a series of partial results are calculated, or when the output mode is changed and the last result needs to be redisplayed. For example, the above result can be modified by typing:
. % (2^127-1)
and the calculator will print:
39614081257132168796771975167For more complex calculations, variables can be used to save the intermediate results. For example, the result of adding 7 to the previous result can be saved by typing:
curds = 15
whey = 7 + 2*curds
Functions can be used in expressions. There are a great number of pre-defined functions. For example, the following will calculate the factorial of the value of 'old':
fact(whey)and the calculator prints:
The calculator also knows about complex numbers, so that typing:
(2+3i) * (4-3i)
The calculator can calculate transcendental functions, and accept and display numbers in real or exponential format. For example, typing:
Calc can output values in terms of fractions, octal or hexadecimal. For example:
Commands are statements in a C-like language, where each input line is treated as the body of a procedure. Thus the command line can contain variable declarations, expressions, labels, conditional tests, and loops. Assignments to any variable name will automatically define that name as a global variable. The other important thing to know is that all non-assignment expressions which are evaluated are automatically printed. Thus, you can evaluate an expression's value by simply typing it in.
Many useful built-in mathematical functions are available. Use the:
help builtincommand to list them.
You can also define your own functions by using the 'define' keyword, followed by a function declaration very similar to C.
ans = 1;
while (n > 1)
ans *= (n -= 2);
Thus the input:
Functions which only need to return a simple expression can be defined using an equals sign, as in the example:
define sc(a,b) = a^3 + b^3Thus the input:
256772Variables in functions can be defined as either 'global', 'local', or 'static'. Global variables are common to all functions and the command line, whereas local variables are unique to each function level, and are destroyed when the function returns. Static variables are scoped within single input files, or within functions, and are never destroyed. Variables are not typed at definition time, but dynamically change as they are used.
For more information about the calc language and features, try:
help overviewIn particular, check out the other help functions listed in the overview help file.
If you liked this article, subscribe to the feed by clicking the image below to keep informed about new contents of the blog: