[ < ] [ > ] [ << ] [ Up ] [ >> ] [Top] [Contents] [Index] [ ? ]

# 10. Floating Point

 [ < ] [ > ] [ << ] [ Up ] [ >> ] [Top] [Contents] [Index] [ ? ]

## 10.1 Definitions for Floating Point

Function: bffac (expr, n)

Bigfloat version of the factorial (shifted gamma) function. The second argument is how many digits to retain and return, it's a good idea to request a couple of extra.

`load ("bffac")` loads this function.

Option variable: algepsilon

Default value: 10^8

`algepsilon` is used by `algsys`.

Function: bfloat (expr)

Converts all numbers and functions of numbers in expr to bigfloat numbers. The number of significant digits in the resulting bigfloats is specified by the global variable `fpprec`.

When `float2bf` is `false` a warning message is printed when a floating point number is converted into a bigfloat number (since this may lead to loss of precision).

Function: bfloatp (expr)

Returns `true` if expr is a bigfloat number, otherwise `false`.

Function: bfpsi (n, z, fpprec)
Function: bfpsi0 (z, fpprec)

`bfpsi` is the polygamma function of real argument z and integer order n. `bfpsi0` is the digamma function. `bfpsi0 (z, fpprec)` is equivalent to `bfpsi (0, z, fpprec)`.

These functions return bigfloat values. fpprec is the bigfloat precision of the return value.

`load ("bffac")` loads these functions.

Option variable: bftorat

Default value: `false`

`bftorat` controls the conversion of bfloats to rational numbers. When `bftorat` is `false`, `ratepsilon` will be used to control the conversion (this results in relatively small rational numbers). When `bftorat` is `true`, the rational number generated will accurately represent the bfloat.

Option variable: bftrunc

Default value: `true`

`bftrunc` causes trailing zeroes in non-zero bigfloat numbers not to be displayed. Thus, if `bftrunc` is `false`, `bfloat (1)` displays as `1.000000000000000B0`. Otherwise, this is displayed as `1.0B0`.

Function: cbffac (z, fpprec)

Complex bigfloat factorial.

`load ("bffac")` loads this function.

Function: float (expr)

Converts integers, rational numbers and bigfloats in expr to floating point numbers. It is also an `evflag`, `float` causes non-integral rational numbers and bigfloat numbers to be converted to floating point.

Option variable: float2bf

Default value: `false`

When `float2bf` is `false`, a warning message is printed when a floating point number is converted into a bigfloat number (since this may lead to loss of precision).

Function: floatnump (expr)

Returns `true` if expr is a floating point number, otherwise `false`.

Option variable: fpprec

Default value: 16

`fpprec` is the number of significant digits for arithmetic on bigfloat numbers. `fpprec` does not affect computations on ordinary floating point numbers.

See also `bfloat` and `fpprintprec`.

Option variable: fpprintprec

Default value: 0

`fpprintprec` is the number of digits to print when printing a bigfloat number, making it possible to compute with a large number of digits of precision, but have the answer printed out with a smaller number of digits.

When `fpprintprec` is 0, or greater than or equal to `fpprec`, then the value of `fpprec` controls the number of digits used for printing.

When `fpprintprec` has a value between 2 and `fpprec - 1`, then it controls the number of digits used. (The minimal number of digits used is 2, one to the left of the point and one to the right.

The value 1 for `fpprintprec` is illegal.

Lisp function: ?round (x)
Lisp function: ?round (x, divisor)

Round the floating point x to the nearest integer. The argument must be an ordinary float, not a bigfloat. The `?` beginning the name indicates this is a Lisp function.

 ```(%i1) ?round (-2.8); (%o1) - 3 ```
Lisp function: ?truncate (x)
Lisp function: ?truncate (x, divisor)

Truncate the floating point x towards 0, to become an integer. The argument must be an ordinary float, not a bigfloat. The `?` beginning the name indicates this is a Lisp function.

 ```(%i1) ?truncate (-2.8); (%o1) - 2 (%i2) ?truncate (2.4); (%o2) 2 (%i3) ?truncate (2.8); (%o3) 2 ```

 [ << ] [ >> ] [Top] [Contents] [Index] [ ? ]

This document was generated on March, 19 2006 using texi2html 1.76.