Small simplification to maybe_adjust_large_object()
[sbcl.git] / contrib / sb-gmp / README.md
blobaacf7257993b2bc7f259187e030683cc7b9fd040
1 SB-GMP
2 ======
4 GMP integration for SBCL
6 This contrib enables the use of bignum computation routines from the
7 GMP library for SBCL internal bignum calculations.
9 Some functions can be transparently replaced within SBCL, namely:
11  - sb-bignum:multiply-bignum
12  - sb-bignum:bignum-truncate
13  - sb-bignum:bignum-gcd
14  - sb-kernel::two-arg-lcm
15  - cl:isqrt
16  - sb-kernel::intexp
18 and for making use of the GMP rational arithmetic:
20  - sb-kernel::two-arg-+
21  - sb-kernel::two-arg--
22  - sb-kernel::two-arg-*
23  - sb-kernel::two-arg-/
25 Most of the other SBCL bignum routines rely on these functions for the
26 heavy computational lifting.
28 However, SB-GMP also provides easy and transparent access to several
29 other functions of the GMP library and may be able to replace other
30 parts of the SBCL bignum machinery in the future. Refer to the GMP
31 documentation for the respective function specification [1]. The
32 higher-level Lisp interface are the ones exported from the package
33 SB-GMP.
35 The transparent SBCL integration is activated by calling
37     (SB-GMP:INSTALL-GMP-FUNS)
39 in a similar way it can be deactivated via
41     (SB-GMP:UNINSTALL-GMP-FUNS)
43 An additional contrib using SB-GMP is SB-MPFR [2] which provides
44 support for arbitrary precision floating-point numbers. Refer to the
45 file README.md of SB-MPFR for details.
48 [1] http://gmplib.org/manual/
49 [2] https://github.com/sfrank/sb-mpfr