Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ bc(1) — DG/UX R4.11MU05

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

dc(1)



bc(1)                          DG/UX R4.11MU05                         bc(1)


NAME
       bc - arbitrary-precision arithmetic language

SYNOPSIS
       bc [ -c ] [ -l ] [ file ... ]

DESCRIPTION
       Bc is an interactive processor for a language that resembles C but
       provides essentially unlimited precision arithmetic.  It takes input
       from any files given, then reads the standard input.  The -l argument
       stands for the name of an arbitrary precision math library.  The
       syntax for bc programs is as follows; L means letters a-z, E means
       expression, and S means statement.

       Comments    Enclosed in /* and */.

       Names       Simple variables: L
                   Array elements: L [ E ]
                   The words ibase, obase, and scale

       Other operands
                   Arbitrarily long numbers with optional sign and decimal
                   point.
                   ( E )
                   sqrt ( E )
                   length ( E )   number of significant decimal digits
                   scale ( E )    number of digits right of decimal point
                   L ( E , ... , E )

       Operators   +  -  *  /  %  ^ (% is remainder; ^ is power)
                   ++  --    (prefix and postfix; apply to names)
                   ==  <=  >=  !=  <  >
                   =  =+  =-  =*  =/ =% =^

       Statements  E
                   { S ; ... ; S }
                   if ( E ) S
                   while ( E ) S
                   for ( E ; E ; E ) S
                   null statement
                   break
                   quit

       Function definitions
                   define L ( L ,..., L ) {
                        auto L, ... , L
                        S; ... S
                        return ( E )
                   }

       Functions in -l math library
                   s(x) Sine
                   c(x) Cosine
                   e(x) Exponential
                   l(x) Log
                   a(x) Arctangent
                   j(n,x)    Bessel function

       All function arguments are passed by value.

       The value of a statement that is an expression is printed unless the
       main operator is an assignment.  Either semicolons or new lines may
       separate statements.  Assignment to scale influences the number of
       digits to be retained on arithmetic operations in the manner of
       dc(1).  Assignments to ibase or obase set the input and output number
       radix respectively.

       A number is an unbroken string of the digits 0-9 and possibly,
       extended digits, for radices greater than 10.  Extended digits, e.g.
       A-F in base 16, must be specified as capital letters only.

       You can use the same letter as an array, a function, and a simple
       variable simultaneously.  All variables are global to the program.
       "Auto" variables are pushed down during function calls.  When using
       arrays as function arguments or defining them as automatic variables,
       you must place empty square brackets after the array name.

       Bc is actually a preprocessor for dc(1), which it invokes
       automatically, unless the -c (compile only) option is present.  In
       this case, the dc input is sent to the standard output instead.  bc
       is terminated by Ctrl-D (^d).

EXAMPLES
       $ bc
       scale=5 <NL>
       12567/234 <NL>
       53.70512
       $

       This example divides 12567 by 234 and prints the result with a
       precision of 5 decimal places.

FILES
       /usr/lib/lib.b  Mathematical library
       /usr/bin/dc     Desk calculator

SEE ALSO
       dc(1).

NOTES
       && and || are not implemented in the DG/UX System.
       A for statement must have all three expressions.
       Quit is interpreted when read, not when executed.


Licensed material--property of copyright holder(s)

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026