From 78e51a8c6678b6e3dff3d619aa786669f531f4bc Mon Sep 17 00:00:00 2001 From: rsc Date: Fri, 14 Jan 2005 03:45:44 +0000 Subject: checkpoint --- man/man1/dc.html | 199 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 199 insertions(+) create mode 100644 man/man1/dc.html (limited to 'man/man1/dc.html') diff --git a/man/man1/dc.html b/man/man1/dc.html new file mode 100644 index 00000000..95b7fd24 --- /dev/null +++ b/man/man1/dc.html @@ -0,0 +1,199 @@ + +dc(1) - Plan 9 from User Space + + + + +
+
+
DC(1)DC(1) +
+
+

NAME
+ +
+ + dc – desk calculator
+ +
+

SYNOPSIS
+ +
+ + dc [ file ]
+ +
+

DESCRIPTION
+ +
+ + Dc is an arbitrary precision desk calculator. Ordinarily it operates + on decimal integers, but one may specify an input base, output + base, and a number of fractional digits to be maintained. 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 the standard input. The following constructions + are recognized:
+ number
+ +
+ + The value of the number is pushed on the stack. A number is an + unbroken string of the digits 0−9A−F or 0−9a−f. A hexadecimal + number beginning with a lower case letter must be preceded by + a zero to distinguish it from the command associated with the + letter. It may be preceded by an underscore _ to + input a negative number. Numbers may contain decimal points.
+ +
+ +    − /    *    %    ^
+
+
+ + Add +, subtract , multiply *, divide /, remainder %, or exponentiate + ^ 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
+
Sx    Pop the top of the stack and store into a register named x, + where x may be any character. Under operation S register x is + treated as a stack and the value is pushed on it.
+ lx
+
Lx    Push the value in register x onto the stack. The register x + is not altered. All registers start with zero value. Under operation + L register x is treated as a stack and its top value is popped + onto the main stack.
+ d     Duplicate the top value on the stack.
+ p     Print the top value on the stack. The top value remains unchanged. + P interprets the top of the stack as an text string, removes it, + and prints it.
+ f     Print the values on the stack.
+ q
+ Q
     Exit the program. If executing a string, the recursion level + is popped by two. Under operation Q the top value on the stack + is popped and the string execution level is popped by that value.
+ x     Treat the top element of the stack as a character string and + execute it as a string of dc commands.
+ X     Replace the number on the top of the stack with its scale factor.
+ [ ... ]
+
+
+ + Put the bracketed text string on the top of the stack.
+ +
+ <x
+
>x
+
=x    Pop and compare the top two elements of the stack. Register + x is executed if they obey the stated relation.
+ v     Replace 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.
+ !     Interpret the rest of the line as a shell command.
+ c     Clear the stack.
+ i     The top value on the stack is popped and used as the number base + for further input.
+ I     Push the input base on the top of the stack.
+ o     The top value on the stack is popped and used as the number base + for further output. In bases larger than 10, each ‘digit’ prints + as a group of decimal digits.
+ O     Push the output base on the top of the stack.
+ k     Pop the top of the stack, and use that value as a non-negative + scale factor: the appropriate number of places are printed 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     Push the stack level onto the stack.
+ Z     Replace the number on the top of the stack with its length.
+ ?     A line of input is taken from the input source (usually the terminal) + and executed.
+ ; :   Used by bc for array operations. +
+ + The scale factor set by k determines how many digits are kept + to the right of the decimal point. If s is the current scale factor, + sa is the scale of the first operand, sb is the scale of the second, + and b is the (integer) second operand, results are truncated to + the following scales.
+ +
+ + +,    max(sa,sb)
+ *      min(sa+sb , max(s,sa,sb))
+ /      s
+
%      so that dividend = divisor*quotient + remainder; remainder has + sign of dividend
+ ^      min(sa×|b|, max(s,sa))
+ v      max(s,sa)
+ +
+ +
+

EXAMPLES
+ +
+ + +
+ + Print the first ten values of n!
+ +
+ + [la1+dsa*pla10>y]sy
+ 0sa1
+ lyx
+
+
+ +
+

SOURCE
+ +
+ + /usr/local/plan9/src/cmd/dc.c
+
+
+

SEE ALSO
+ +
+ + bc(1), hoc(1)
+ +
+

DIAGNOSTICS
+ +
+ + x is unimplemented, where x is an octal number: an internal error.
+ ‘Out of headers’ for too many numbers being kept around.
+ ‘Nesting depth’ for too many levels of nested execution.
+ +
+

BUGS
+ +
+ + When the input base exceeds 16, there is no notation for digits + greater than F. +
+ + Past its time.
+ +
+ +

+
+
+ + +
+
+
+Space Glenda +
+
+ + -- cgit v1.2.3