Annotation of coherent/a/usr/man/COHERENT/bc, revision 1.1.1.1

1.1       root        1: 
                      2: 
                      3: bc                           Command                           bc
                      4: 
                      5: 
                      6: 
                      7: 
                      8: Interactive calculator with arbitrary precision
                      9: 
                     10: bbcc [ -ll ] [ _f_i_l_e ... ]
                     11: 
                     12: bc is  a language that  performs calculations on  numbers with an
                     13: arbitrary number  of digits.  bc is most commonly  used as an in-
                     14: teractive calculator, where the user types arithmetic expressions
                     15: in a syntax reminiscent of C.   If bc is invoked with no file ar-
                     16: guments on  its command line,  it reads the  standard input.  For
                     17: example:
                     18: 
                     19: 
                     20:      _I_n_p_u_t        _O_u_t_p_u_t
                     21:      bc
                     22:      (1000+23)*42 42966
                     23:      k = 2^10
                     24:      16 * k       16384
                     25:      2 ^ 100      1267650600228229401496703205376
                     26: 
                     27: 
                     28: bc may also be invoked with one or more file arguments.  After bc
                     29: reads each  file, it reads  the standard input.   This provides a
                     30: convenient way to access  programs in files.  A library of mathe-
                     31: matical functions is available, obtained by using the -l option.
                     32: 
                     33: The following  summarizes briefly the facilities  provided by bc.
                     34: More information  is available in the tutorial to  bbcc that is in-
                     35: cluded with this manual.
                     36: 
                     37: Comments  are  enclosed between  the  delimiters  `/*' and  `*/'.
                     38: Names of variables or functions must begin with a lower-case let-
                     39: ter, and  may have  any number  of subsequent letters  or digits.
                     40: Names  may not  begin with an  upper-case letter  because numbers
                     41: with a base greater than ten may need need upper-case letters for
                     42: their notation.   The three built-in variables  obase, ibase, and
                     43: scale represent  the number  base for printing  numbers (default,
                     44: ten), the number base for reading numbers (default, ten), and the
                     45: number of digits after the decimal (radix) point (default, zero),
                     46: respectively.  Variables  may be simple variables  or arrays, and
                     47: need not be  pre-declared, with the exception of variables inter-
                     48: nal to functions.   Some examples of variables and array elements
                     49: are x25, array[10], and number.
                     50: 
                     51: Numbers are any string of digits, and may have one decimal point.
                     52: Digits are taken from the  ordinary digits (0-9) and then the up-
                     53: per-case letters (A-F), in that order.
                     54: 
                     55: Certain names  are reserved for use as key  words.  The key words
                     56: recognized by bc include the following:
                     57: 
                     58: iiff, ffoorr, ddoo, wwhhiillee
                     59:      Test conditions and define loops, with syntax identical to C
                     60: 
                     61: 
                     62: 
                     63: 
                     64: COHERENT Lexicon                                           Page 1
                     65: 
                     66: 
                     67: 
                     68: 
                     69: bc                           Command                           bc
                     70: 
                     71: 
                     72: 
                     73: bbrreeaakk, ccoonnttiinnuuee
                     74:      Alter control flow within for and while loops.
                     75: 
                     76: qquuiitt Tell bc to exit immediately
                     77: 
                     78: ddeeffiinnee _f_u_n_c_t_i_o_n (_a_r_g, ..., _a_r_g)
                     79:      Define a bc function by a compound statement, as in C.
                     80: 
                     81: aauuttoo _v_a_r, ..., _v_a_r
                     82:      Define variables  that are local to  a function, rather than
                     83:      having global scope.
                     84: 
                     85: rreettuurrnn (_v_a_l_u_e)
                     86:      Return a value from a function.
                     87: 
                     88: ssccaallee (_v_a_l_u_e)
                     89:      Return  the number  of digits  to the  right of  the decimal
                     90:      point in value.
                     91: 
                     92: ssqqrrtt (_v_a_l_u_e)
                     93:      Return the square root of value
                     94: 
                     95: lleennggtthh (_v_a_l_u_e)
                     96:      Return the number of decimal digits in value.
                     97: 
                     98: The following operators are recognized:
                     99: 
                    100: 
                    101:      +            -* / % ^ ++
                    102:      --           =+= -= *= /= %=
                    103:      ^=           ==!= < <= > >=
                    104: 
                    105: 
                    106: These operators are similar to  those in C, with the exception of
                    107: ^ and ^=, which are exponentiation operators.  Expressions can be
                    108: grouped  with parentheses.  Statements  are separated  with semi-
                    109: colons or newlines, and may be made into compound statements with
                    110: braces.  bc prints the value  of any statement that is an expres-
                    111: sion but is not an assignment.
                    112: 
                    113: As in  the editor ed,  an `!' at  the beginning of  a line causes
                    114: that line to be sent as a command to the COHERENT shell sh.
                    115: 
                    116: The built-in mathematics library contains the following functions
                    117: and variables:
                    118: 
                    119: 
                    120:      aattaann(_z) Arctangent of _z
                    121:      ccooss(_z)  Cosine of _z
                    122:      eexxpp(_z)  Exponential function of _z
                    123:      jj(_n,_z)  _nth order Bessel function of _z
                    124:      llnn(_z)   Natural logarithm of _z
                    125:      ppii      Value of pi to 100 digits
                    126:      ssiinn(_z)  Sine of _z
                    127: 
                    128: 
                    129: 
                    130: COHERENT Lexicon                                           Page 2
                    131: 
                    132: 
                    133: 
                    134: 
                    135: bc                           Command                           bc
                    136: 
                    137: 
                    138: 
                    139: 
                    140: ***** Examples *****
                    141: 
                    142: The first  example calculates the  factorial of its  positive in-
                    143: teger argument by recursion.
                    144: 
                    145: 
                    146: /*
                    147:  * Factorial function implemented by recursion.
                    148:  */
                    149: define fact(n) {
                    150:         if (n <= 1) return (n);
                    151:         return (n * fact(n-1));
                    152: }
                    153: 
                    154: 
                    155: The second example  also calculates the factorial of its positive
                    156: integer argument, this time by iteration.
                    157: 
                    158: 
                    159: /*
                    160:  * Factorial function implemented by iteration.
                    161:  */
                    162: define fact(n) {
                    163:         auto result;
                    164: 
                    165:         result = 1;
                    166:         for (i=1; i<=n; i++) result *= i;
                    167:         return (result);
                    168: }
                    169: 
                    170: 
                    171: ***** Files *****
                    172: 
                    173: /uussrr/lliibb/lliibb.bb -- Source code for the library
                    174: 
                    175: ***** See Also *****
                    176: 
                    177: commands, conv, dc, multi-precision arithmetic
                    178: _b_c _D_e_s_k _C_a_l_c_u_l_a_t_o_r _L_a_n_g_u_a_g_e, tutorial
                    179: 
                    180: ***** Notes *****
                    181: 
                    182: Line numbers do not accompany error messages in source files.
                    183: 
                    184: 
                    185: 
                    186: 
                    187: 
                    188: 
                    189: 
                    190: 
                    191: 
                    192: 
                    193: 
                    194: 
                    195: 
                    196: COHERENT Lexicon                                           Page 3
                    197: 
                    198: 

unix.superglobalmegacorp.com

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