Next: , Up: Types of Numbers   [Contents][Index]


63.2.1 The Type ‘bigz

The type ‘bigz’ is an abstract C type for arbitrary-precision rational integers. Its actual library-specific implementation is chosen at configure time, and can be either GMP-MPZ or BSD-MP. In the former case the actual C type would be ‘mpz_t’, in the latter case it is ‘MINT’.

Any other library which implements something similar to MPZ, should be accessed via the abstract type ‘bigz’, too.

Lisp objects can be tested for the type ‘bigz’ by the following predicates.

Function: bigzp object

This predicate tests whether its argument is a big integer (as provided by GMP-MPZ or BSD-MP), and returns t if so, nil otherwise.

Function: bignump object

This is roughly the same as bigzp and is provided for compatibility to XEmacs.

The read syntax (and print syntax) of rational integers is the same as for ordinary emacs integers. If the mantissa is not sufficient to regard an integer as fixnum, that integer is automatically treated as ‘bigz’ integer and created as such.

There are no other forms of creation, especially there are no constructors for ‘bigz’ objects.

Although named ‘arbitrary’-precision integers there is no way to take influence on the precision or internal representation of ‘bigz’s (unlike the float types). The number of limbs used, read the precision, is administered solely by the underlying library implementation.