Annotation of 43BSDTahoe/man/man1/dc.1, revision 1.1

1.1     ! root        1: .\"    @(#)dc.1        6.1 (Berkeley) 4/29/85
        !             2: .\"
        !             3: .TH DC 1 "April 29, 1985"
        !             4: .AT 3
        !             5: .SH NAME
        !             6: dc \- desk calculator
        !             7: .SH SYNOPSIS
        !             8: .B dc
        !             9: [ file ]
        !            10: .SH DESCRIPTION
        !            11: .I Dc
        !            12: is an arbitrary precision arithmetic package.
        !            13: Ordinarily it operates on decimal integers,
        !            14: but one may specify an input base, output base,
        !            15: and a number of fractional digits to be maintained.
        !            16: The overall structure of
        !            17: .I dc
        !            18: is
        !            19: a stacking (reverse Polish) calculator.
        !            20: If an argument is given,
        !            21: input is taken from that file until its end,
        !            22: then from the standard input.
        !            23: The following constructions are recognized:
        !            24: .HP 6
        !            25: number
        !            26: .br
        !            27: The value of the number is pushed on the stack.
        !            28: A number is an unbroken string of the digits 0-9.
        !            29: It may be preceded by an underscore _ to input a
        !            30: negative number.
        !            31: Numbers may contain decimal points.
        !            32: .HP 6
        !            33: +  \- /  *  %  ^
        !            34: .br
        !            35: The
        !            36: top two values on the stack are added
        !            37: (+),
        !            38: subtracted
        !            39: (\-),
        !            40: multiplied (*),
        !            41: divided (/),
        !            42: remaindered (%),
        !            43: or exponentiated (^).
        !            44: The two entries are popped off the stack;
        !            45: the result is pushed on the stack in their place.
        !            46: Any fractional part of an exponent is ignored.
        !            47: .TP
        !            48: .BI s x
        !            49: The
        !            50: top of the stack is popped and stored into
        !            51: a register named
        !            52: .I x,
        !            53: where
        !            54: .I x
        !            55: may be any character.
        !            56: If
        !            57: the
        !            58: .B s
        !            59: is capitalized,
        !            60: .I x
        !            61: is treated as a stack and the value is pushed on it.
        !            62: .TP
        !            63: .BI l x
        !            64: The
        !            65: value in register
        !            66: .I x
        !            67: is pushed on the stack.
        !            68: The register
        !            69: .I x
        !            70: is not altered.
        !            71: All registers start with zero value.
        !            72: If the
        !            73: .B l
        !            74: is capitalized,
        !            75: register
        !            76: .I x
        !            77: is treated as a stack and its top value is popped onto the main stack.
        !            78: .TP
        !            79: .B  d
        !            80: The
        !            81: top value on the stack is duplicated.
        !            82: .TP
        !            83: .B  p
        !            84: The top value on the stack is printed.
        !            85: The top value remains unchanged.
        !            86: .B P
        !            87: interprets the top of the stack as an ascii string,
        !            88: removes it, and prints it.
        !            89: .TP
        !            90: .B  f
        !            91: All values on the stack and in registers are printed.
        !            92: .TP
        !            93: .B  q
        !            94: exits the program.
        !            95: If executing a string, the recursion level is
        !            96: popped by two.
        !            97: If
        !            98: .B q
        !            99: is capitalized,
        !           100: the top value on the stack is popped and the string execution level is popped
        !           101: by that value.
        !           102: .TP
        !           103: .B  x
        !           104: treats the top element of the stack as a character string
        !           105: and executes it as a string of dc commands.
        !           106: .TP
        !           107: .B  X
        !           108: replaces the number on the top of the stack with its scale factor.
        !           109: .TP
        !           110: .B  "[ ... ]"
        !           111: puts the bracketed ascii string onto the top of the stack.
        !           112: .HP 6
        !           113: .I  "<x  >x  =x"
        !           114: .br
        !           115: The
        !           116: top two elements of the stack are popped and compared.
        !           117: Register
        !           118: .I x
        !           119: is executed if they obey the stated
        !           120: relation.
        !           121: .TP
        !           122: .B  v
        !           123: replaces the top element on the stack by its square root.
        !           124: Any existing fractional part of the argument is taken
        !           125: into account, but otherwise the scale factor is ignored.
        !           126: .TP
        !           127: .B  !
        !           128: interprets the rest of the line as a UNIX command.
        !           129: .TP
        !           130: .B  c
        !           131: All values on the stack are popped.
        !           132: .TP
        !           133: .B  i
        !           134: The top value on the stack is popped and used as the
        !           135: number radix for further input.
        !           136: .B I
        !           137: pushes the input base on the top of the stack.
        !           138: .TP
        !           139: .B  o
        !           140: The top value on the stack is popped and used as the
        !           141: number radix for further output.
        !           142: .TP
        !           143: .SM
        !           144: .B O
        !           145: pushes the output base on the top of the stack.
        !           146: .TP
        !           147: .B  k
        !           148: the top of the stack is popped, and that value is used as
        !           149: a non-negative scale factor:
        !           150: the appropriate number of places
        !           151: are printed on output,
        !           152: and maintained during multiplication, division, and exponentiation.
        !           153: The interaction of scale factor,
        !           154: input base, and output base will be reasonable if all are changed
        !           155: together.
        !           156: .TP
        !           157: .B  z
        !           158: The stack level is pushed onto the stack.
        !           159: .TP
        !           160: .SM
        !           161: .B  Z
        !           162: replaces the number on the top of the stack with its length.
        !           163: .TP
        !           164: .B  ?
        !           165: A line of input is taken from the input source (usually the terminal)
        !           166: and executed.
        !           167: .TP
        !           168: .B "; :"
        !           169: are used by 
        !           170: .I bc
        !           171: for array operations.
        !           172: .PP
        !           173: An example which prints the first ten values of n! is
        !           174: .nf
        !           175: .PP
        !           176: .in +3
        !           177: [la1+dsa*pla10>y]sy
        !           178: .br
        !           179: 0sa1
        !           180: .br
        !           181: lyx
        !           182: .fi
        !           183: .SH "SEE ALSO"
        !           184: bc(1),
        !           185: which is a preprocessor for
        !           186: .I dc
        !           187: providing infix notation and a C-like syntax
        !           188: which implements functions and reasonable control
        !           189: structures for programs.
        !           190: .SH DIAGNOSTICS
        !           191: `x is unimplemented' where x is an octal number.
        !           192: .br
        !           193: `stack empty' for not enough elements on the stack to do what was asked.
        !           194: .br
        !           195: `Out of space' when the free list is exhausted (too many digits).
        !           196: .br
        !           197: `Out of headers' for too many numbers being kept around.
        !           198: .br
        !           199: `Out of pushdown' for too many items on the stack.
        !           200: .br
        !           201: `Nesting Depth' for too many levels of nested execution.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.