diff options
author | Mark H Weaver <mhw@netris.org> | 2011-04-06 15:09:42 -0400 |
---|---|---|
committer | Mark H Weaver <mhw@netris.org> | 2011-04-09 16:11:49 -0400 |
commit | 882c89636a2a4afa26cff17c7cdbc1d8c1cb2745 (patch) | |
tree | 7e713f3a5fc0521fca326a160794021d05d315ad /module/rnrs | |
parent | b1e13fb530e0f80334862e440860c054b61dbdd0 (diff) | |
download | guile-882c89636a2a4afa26cff17c7cdbc1d8c1cb2745.tar.gz |
Fix the R6RS exact-integer-sqrt and import into core guile
* libguile/numbers.c (scm_exact_integer_sqrt): New C procedure to
compute exact integer square root and remainder.
(scm_i_exact_integer_sqrt): New Scheme procedure `exact-integer-sqrt'
from the R6RS, imported into core guile.
* libguile/numbers.h: Add prototypes.
* module/rnrs/base.scm: Remove broken stub implementation, which would
fail badly when applied to large integers.
* doc/ref/api-data.texi: Add documentation.
* doc/ref/r6rs.texi: Change documentation for `exact-integer-sqrt' to a
stub that xrefs the core docs, as is done for other operations
available in core.
* test-suite/tests/numbers.test: Add tests.
* NEWS: Add news entries.
Diffstat (limited to 'module/rnrs')
-rw-r--r-- | module/rnrs/base.scm | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/module/rnrs/base.scm b/module/rnrs/base.scm index 2f5a218de..b9dddab0b 100644 --- a/module/rnrs/base.scm +++ b/module/rnrs/base.scm @@ -103,9 +103,6 @@ (let ((sym (car syms))) (and (symbol? sym) (symbol=?-internal (cdr syms) sym))))) - (define (exact-integer-sqrt x) - (let* ((s (exact (floor (sqrt x)))) (e (- x (* s s)))) (values s e))) - (define (real-valued? x) (and (complex? x) (zero? (imag-part x)))) |