4.4BSD/usr/share/man/cat1/bc.0

Compare this file to the similar file:
Show the results in this format:

BC(1)                        BSD Reference Manual                        BC(1)

NNAAMMEE
     bbcc - arbitrary-precision arithmetic language and calculator

SSYYNNOOPPSSIISS
     bbcc [--cc] [--ll] _f_i_l_e _._._.

DDEESSCCRRIIPPTTIIOONN
     BBcc is an interactive processor for a language which resembles C but pro-
     vides unlimited precision arithmetic.  It takes input from any files giv-
     en, then reads the standard input.

     Options available:

     --ll    allow specification of an arbitrary precision math library.

     --cc    BBcc is actually a preprocessor for _d_c _1, which it invokes automati-
           cally, unless the --cc compile only option is present.  Here, the _d_c
           input is sent to the standard output instead.

     The syntax for bbcc programs is as follows; L means letter a-z, E means ex-
     pression, S means statement.

     Comments
           are 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 --ll 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 newlines may separate
     statements.  Assignment to _s_c_a_l_e influences the number of digits to be
     retained on arithmetic operations in the manner of dc(1).  Assignments to
     _i_b_a_s_e or _o_b_a_s_e set the input and output number radix respectively.

     The same letter may be used as an array, a function, and a simple vari-
     able 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, empty square
     brackets must follow the array name.

     For example

           scale = 20
           define e(x){
                   auto a, b, c, i, s
                   a = 1
                   b = 1
                   s = 1
                   for(i=1; 1==1; i++){
                           a = a*x
                           b = b*i
                           c = a/b
                           if(c == 0) return(s)
                           s = s+c
                   }
           }

     defines a function to compute an approximate value of the exponential
     function and

           for(i=1; i<=10; i++) e(i)

     prints approximate values of the exponential function of the first ten
     integers.

FFIILLEESS
     dc(1)  Desk calculator proper.

SSEEEE AALLSSOO
     dc(1)

     L. L. Cherry, and R. Morris, _B_C _- _A_n _a_r_b_i_t_r_a_r_y _p_r_e_c_i_s_i_o_n _d_e_s_k_-_c_a_l_c_u_l_a_t_o_r
     _l_a_n_g_u_a_g_e.

HHIISSTTOORRYY
     The bbcc command appeared in Version 6 AT&T UNIX.

BBUUGGSS
     No &&, ||, or ! operators.

     `For' statement must have all three E's.

     `Quit' is interpreted when read, not when executed.

AT&T 7th Edition                 June 29, 1993                               2