summaryrefslogtreecommitdiff
path: root/module/rnrs
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2011-04-06 15:09:42 -0400
committerMark H Weaver <mhw@netris.org>2011-04-09 16:11:49 -0400
commit882c89636a2a4afa26cff17c7cdbc1d8c1cb2745 (patch)
tree7e713f3a5fc0521fca326a160794021d05d315ad /module/rnrs
parentb1e13fb530e0f80334862e440860c054b61dbdd0 (diff)
downloadguile-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.scm3
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))))