1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-10 22:10:21 +02:00
guile/module
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
..
ice-9 Do not apply inf?' or nan?' to strings 2011-01-28 12:16:59 +01:00
language Parse Decimal Numbers 2011-01-26 23:47:29 +01:00
oop Fix GOOPS method compilation bug when no next-method exists 2011-01-30 13:30:08 +01:00
rnrs Add two new sets of fast quotient and remainder operators 2011-01-30 23:00:38 +01:00
scripts Have "frisk" recognize #:use-module' and #:autoload'. 2010-10-27 23:31:49 +02:00
srfi Get rid of `define-macro' in the SRFI 26 implementation 2010-12-07 23:13:55 +01:00
sxml sxml->xml fix 2010-12-02 22:24:26 +01:00
system more sensible error if compiled-file-name returns false in compile-file 2011-01-26 22:09:06 +01:00
texinfo stexi->shtml supports itemx 2011-01-25 17:59:45 +01:00
web request and response cleanups 2011-01-10 22:44:41 -08:00
Makefile.am store macro definitions in the function slot 2010-12-07 13:21:02 +01:00
rnrs.scm implement port-eof? 2011-01-21 08:27:08 +01:00
statprof.scm remove a number of debug options 2010-09-24 20:57:01 +02:00
texinfo.scm Remove unused top-level variables. 2010-01-11 01:21:14 +01:00