4.3BSD-Reno/share/man/cat1/bc.0

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

BC(1)			    UNIX 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
     given, then reads the standard input.  The

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

     --cc        BBcc is actually a preprocessor for _d_c _1, which it invokes au-
	       tomatically, unless the --cc compile only.  option is present.
	       In this case the _d_c input is sent to the standard output in-
	       stead.

     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
     _d_c(_1)     _d_e_s_k _c_a_l_c_u_l_a_t_o_r _p_r_o_p_e_r


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 7 AT&T UNIX.

BBUUGGSS
     No &&, |\(or, or ! operators.
     `For' statement must have all three E's.
     `Quit' is interpreted when read, not when executed.