1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-06 23:50:18 +02:00
guile/module/rnrs
Mark H Weaver ff62c16828 Add two new sets of fast quotient and remainder operators
* libguile/numbers.c (scm_euclidean_quo_and_rem, scm_euclidean_quotient,
  scm_euclidean_remainder, scm_centered_quo_and_rem,
  scm_centered_quotient, scm_centered_remainder): New extensible
  procedures `euclidean/', `euclidean-quotient', `euclidean-remainder',
  `centered/', `centered-quotient', `centered-remainder'.

* libguile/numbers.h: Add function prototypes.

* module/rnrs/base.scm: Remove incorrect stub implementations of `div',
  `mod', `div-and-mod', `div0', `mod0', and `div0-and-mod0'.  Instead do
  renaming imports of `euclidean-quotient', `euclidean-remainder',
  `euclidean/', `centered-quotient', `centered-remainder', and
  `centered/', which are equivalent to the R6RS operators.

* module/rnrs/arithmetic/fixnums.scm (fxdiv, fxmod, fxdiv-and-mod,
  fxdiv0, fxmod0, fxdiv0-and-mod0): Remove redundant checks for division
  by zero and unnecessary complexity.
  (fx+/carry): Remove unneeded calls to `inexact->exact'.

* module/rnrs/arithmetic/flonums.scm (fldiv, flmod, fldiv-and-mod,
  fldiv0, flmod0, fldiv0-and-mod0): Remove redundant checks for division
  by zero and unnecessary complexity.  Remove unneeded calls to
  `inexact->exact' and `exact->inexact'

* test-suite/tests/numbers.test: (test-eqv?): New internal predicate for
  comparing numerical outputs with expected values.

  Add extensive test code for `euclidean/', `euclidean-quotient',
  `euclidean-remainder', `centered/', `centered-quotient',
  `centered-remainder'.

* test-suite/tests/r6rs-arithmetic-fixnums.test: Fix some broken test
  cases, and remove `unresolved' test markers for `fxdiv', `fxmod',
  `fxdiv-and-mod', `fxdiv0', `fxmod0', and `fxdiv0-and-mod0'.

* test-suite/tests/r6rs-arithmetic-flonums.test: Remove `unresolved'
  test markers for `fldiv', `flmod', `fldiv-and-mod', `fldiv0',
  `flmod0', and `fldiv0-and-mod0'.

* doc/ref/api-data.texi (Arithmetic): Document `euclidean/',
  `euclidean-quotient', `euclidean-remainder', `centered/',
  `centered-quotient', and `centered-remainder'.

  (Operations on Integer Values): Add cross-references to `euclidean/'
  et al, from `quotient', `remainder', and `modulo'.

* doc/ref/r6rs.texi (rnrs base): Improve documentation for `div', `mod',
  `div-and-mod', `div0', `mod0', and `div0-and-mod0'.  Add
  cross-references to `euclidean/' et al.

* NEWS: Add NEWS entry.
2011-01-30 23:00:38 +01:00
..
arithmetic Add two new sets of fast quotient and remainder operators 2011-01-30 23:00:38 +01:00
io implement port-eof? 2011-01-21 08:27:08 +01:00
records Some tweaks to the R6RS support 2010-11-25 23:04:12 +01:00
base.scm Add two new sets of fast quotient and remainder operators 2011-01-30 23:00:38 +01:00
bytevectors.scm add #:version (6) to rnrs bytevectors and ports 2010-06-02 22:19:40 +02:00
conditions.scm Some tweaks to the R6RS support 2010-11-25 23:04:12 +01:00
control.scm rnrs control only depends on (guile) 2010-12-10 18:04:02 +01:00
enums.scm Enumeration set universe comparisons should be done with `equal?' 2010-11-21 15:35:44 -05:00
eval.scm remove encoding of versions into the file system (for now?) 2010-06-16 22:20:28 +02:00
exceptions.scm Several fixes to R6RS libraries 2010-08-28 10:16:30 -07:00
files.scm Reorganize the R6RS I/O condition types 2010-11-24 23:04:24 +01:00
hashtables.scm Fix argument passing for external hash functions in `(rnrs hashtables)'. 2010-07-14 01:16:19 -04:00
lists.scm Explicit definitions for memp' and assp' in `(rnrs list)'; the predicate 2010-08-08 20:23:14 -04:00
mutable-pairs.scm fix ^L typo 2010-06-19 14:45:03 +02:00
mutable-strings.scm typo in mutable-strings 2010-06-19 15:40:25 +02:00
programs.scm remove encoding of versions into the file system (for now?) 2010-06-16 22:20:28 +02:00
r5rs.scm remove encoding of versions into the file system (for now?) 2010-06-16 22:20:28 +02:00
sorting.scm remove encoding of versions into the file system (for now?) 2010-06-16 22:20:28 +02:00
syntax-case.scm Fix make-variable-transformer export 2010-09-19 12:15:37 +02:00
unicode.scm remove encoding of versions into the file system (for now?) 2010-06-16 22:20:28 +02:00