From 78e51a8c6678b6e3dff3d619aa786669f531f4bc Mon Sep 17 00:00:00 2001 From: rsc Date: Fri, 14 Jan 2005 03:45:44 +0000 Subject: checkpoint --- man/man1/bc.html | 272 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 272 insertions(+) create mode 100644 man/man1/bc.html (limited to 'man/man1/bc.html') diff --git a/man/man1/bc.html b/man/man1/bc.html new file mode 100644 index 00000000..c4f7e7ba --- /dev/null +++ b/man/man1/bc.html @@ -0,0 +1,272 @@ + +bc(1) - Plan 9 from User Space + + + + +
+
+
BC(1)BC(1) +
+
+

NAME
+ +
+ + bc – arbitrary-precision arithmetic language
+ +
+

SYNOPSIS
+ +
+ + bc [ −c ] [ −l ] [ −s ] [ file ... ]
+ +
+

DESCRIPTION
+ +
+ + Bc is an interactive processor for a language that resembles C + but provides arithmetic on numbers of arbitrary length with up + to 100 digits right of the decimal point. 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 + −s + argument suppresses the automatic display of calculation results; + all output is via the print command. +
+ + The following syntax for bc programs is like that of C; L means + letter a-z, E means expression, S means statement.
+ Lexical
+ +
+ + +
+ + comments are enclosed in /* */
+
newlines end statements
+ +
+ +
+ 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)
+
function call
+ +
+ +
+ Operators
+ +
+ + +
+ + +    −    *    /    %    ^ (% is remainder; ^ is power)
+ ++    −−
+ ==    <=    >=    !=    <    >
+ =    +=    −=    *=    /=    %=    ^=
+
+
+ +
+ Statements
+ +
+ + +
+ + E
+
{ S ; ... ; S }
+ print
E
+
if ( E ) S
+
while ( E ) S
+
for ( E ; E ; E ) S
+
null statement
+ break
+ quit
+ "
text"
+
+
+ +
+ 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 an expression at the top level is printed unless + the main operator is an assignment or the −s command line argument + is given. Text in quotes, which may include newlines, is always + printed. Either semicolons or newlines 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. + +
+ + The same letter may be used as an array, a function, and a simple + variable simultaneously. All variables are global to the program. + Automatic variables are pushed down during function calls. In + a declaration of an array as a function argument or automatic + variable empty square brackets must follow 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.
+ +
+

EXAMPLE
+ +
+ + Define a function to compute an approximate value of the exponential. + Use it to print 10 values. (The exponential function in the library + gives better answers.) +
+ + scale = 20
+ define e(x) {
+ +
+ + auto a, b, c, i, s
+ a = 1
+ b = 1
+ s = 1
+ for(i=1; 1; i++) {
+ +
+ + a *= x
+ b *= i
+ c = a/b
+ if(c == 0) return s
+ s += c
+ +
+ }
+ +
+ }
+ for(i=1; i<=10; i++) print e(i)
+
+
+

FILES
+ +
+ + /usr/local/plan9/lib/bclib mathematical library
+ +
+

SOURCE
+ +
+ + /usr/local/plan9/src/cmd/bc.y
+
+
+

SEE ALSO
+ +
+ + dc(1), hoc(1)
+ +
+

BUGS
+ +
+ + No &&, ||, or ! operators. +
+ + A for statement must have all three Es. +
+ + A quit is interpreted when read, not when executed.
+ +
+ +

+
+
+ + +
+
+
+Space Glenda +
+
+ + -- cgit v1.2.3