dc(1) CLIX dc(1)
NAME
dc - Runs a desk calculator
SYNOPSIS
dc [file]
DESCRIPTION
The dc utility is an arbitrary precision arithmetic package. Ordinarily
it operates on decimal integers, but one may specify an input base, output
base, and a number of fractional digits to be maintained. (See bc, a
preprocessor for dc that provides infix notation and a C-like syntax that
implements functions. The bc function also provides reasonable control
structures for programs.) The overall structure of dc is a stacking
(reverse Polish) calculator. If an argument is given, input is taken from
that file until its end, then from stdin. The following constructions are
recognized:
number Pushes the value of number on the stack. A number is an unbroken
string of the digits 0-9. It may be preceded by an underscore
(_) to input a negative number. Numbers may contain decimal
points.
+ - / * % ^
Adds (+), subtracts (-), multiplies (*), divides (/), remainders
(%), or exponentiates (^) the top two values on the stack. The
two entries are popped off the stack; the result is pushed on the
stack in their place. Any fractional part of an exponent is
ignored.
sx Pops the top of the stack and stores it into a register named x,
where x may be any character. If the s is capitalized, x is
treated as a stack and the value is pushed on it.
lx Pushes the value in register x on the stack. The register x is
not altered. All registers start with zero value. If the l is
capitalized, register x is treated as a stack and its top value
is popped onto the main stack.
d Duplicates the top value on the stack.
p Displays the top value on the stack. The top value remains
unchanged.
P Interprets the top of the stack as an ASCII string, removes it,
and displays it.
f Displays all values on the stack.
2/94 - Intergraph Corporation 1
dc(1) CLIX dc(1)
q Exits the command. If executing a string, the recursion level is
popped by two.
Q Exits the command. The top value on the stack is popped and the
string execution level is popped by that value.
x Treats the top element of the stack as a character string and
executes it as a string of dc commands.
X Replaces the number on the top of the stack with its scale
factor.
[ ... ] Puts the bracketed ASCII string onto the top of the stack.
< x >x =x
Pops and compares the top two elements of the stack. Register x
is evaluated if they obey the stated relation.
v Replaces the top element on the stack by its square root. Any
existing fractional part of the argument is taken into account,
but otherwise the scale factor is ignored.
! Interprets the rest of the line as a UNIX system command. All
values on the stack are popped.
c Pops all values on the stack.
i Pops the top value on the stack and uses it as the number radix
for further input. I Pushes the input base on the top of the
stack.
o Pops the top value on the stack and uses it as the number radix
for further output.
O Pushes the output base on the top of the stack.
k Pops the top of the stack, and uses that value as a non-negative
scale factor: the appropriate number of places are displayed on
output, and maintained during multiplication, division, and
exponentiation. The interaction of scale factor, input base, and
output base will be reasonable if all are changed together.
z Pushes the stack level onto the stack.
Z Replaces the number on the top of the stack with its length.
? Takes and executes a line of input from the input source (usually
the terminal).
; : Indicate array operations to bc.
2 Intergraph Corporation - 2/94
dc(1) CLIX dc(1)
EXAMPLE
To display the first ten values of n!:
[la1+dsa*pla10>y]sy
0sa1
lyx
DIAGNOSTICS
x is unimplemented
Where x is an octal number.
stack empty
Not enough elements on the stack to do what was asked.
Out of space
The free list is exhausted (too many digits).
Out of headers
Too many numbers being kept around.
Out of pushdown
Too many items on the stack.
Nesting Depth
Too many levels of nested execution.
EXIT VALUES
Exit values are invalid.
RELATED INFORMATION
Commands: bc(1)
2/94 - Intergraph Corporation 3