Computable Real Numbers

This is a Common Lisp package that supports computations with computable real numbers, at infinite precision. More precisely, every computable number carries with it the rule that permits to compute any number of digits.

This package was written by Michael Stoll in June 1989.

Download: reals.tar.gz

Here is an example use of the package:

[1]> (load "reals")
;; Loading file /home/bruno/lisp/fertig/reals/reals.fas ...
;; Loaded file /home/bruno/lisp/fertig/reals/reals.fas
T
[2]> (use-package "REALS")
T
[3]> (setq a (sqrt-r 3))
+1.73205080756887729353...
[4]> (setq b (tan-r (/r pi-r 3)))
+1.73205080756887729353...
[5]> (setq diff (-r a b))
+0.00000000000000000000...
[6]> (setq *print-prec* 70)
70
[7]> diff
+0.0000000000000000000000000000000000000000000000000000000000000000000000...
[8]> a
+1.7320508075688772935274463415058723669428052538103806280558069794519330...
[9]> b
+1.7320508075688772935274463415058723669428052538103806280558069794519330...

As you can see, the user can set the precision of the result a posteriori, and have all numbers recompute themselves to the necessary precision.


Computable Real Numbers
Bruno Haible <bruno@clisp.org>

Last modified: 19 December 2009.