guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NEWS for 1.9.15 -> 2.0.0


From: Mark H Weaver
Subject: Re: NEWS for 1.9.15 -> 2.0.0
Date: Tue, 15 Feb 2011 05:08:05 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux)

Andy Wingo <address@hidden> wrote:
> I was thinking that for 2.0, the NEWS that we would post would be
> cumulative: all the changes of note that a user of 1.8 will see when
> upgrading to 2.0.

Here is a combined NEWS entry for the new division operators.

    Mark


** Added new number-theoretic division operators

Added six new sets of fast quotient and remainder operators with
different semantics than the R5RS operators.  They support not only
integers, but all reals, including exact rationals and inexact
floating point numbers.

These procedures accept two real numbers N and D, where the divisor D
must be non-zero.  Each set of operators computes an integer quotient
Q and a real remainder R such that N = Q*D + R and |R| < |D|.  Four
sets are defined in terms of the rounding mode used to choose the
integer Q near N/D, and two are defined in terms of the allowable
range of R.

`floor-quotient' and `floor-remainder' compute Q and R, respectively,
where Q has been rounded toward negative infinity.  `floor/' returns
both Q and R, and is more efficient than computing each separately.
Note that when applied to integers, `floor-remainder' is equivalent to
the R5RS integer-only `modulo' operator.  `ceiling-quotient',
`ceiling-remainder', and `ceiling/' are similar except that Q is
rounded toward positive infinity.

For `truncate-quotient', `truncate-remainder', and `truncate/', Q is
rounded toward zero.  Note that when applied to integers,
`truncate-quotient' and `truncate-remainder' are equivalent to the
R5RS integer-only operators `quotient' and `remainder'.

For `round-quotient', `round-remainder', and `round/', Q is rounded to
the nearest integer, with ties going to the nearest even integer.

`euclidean-quotient', `euclidean-remainder', and `euclidean/' are
defined by the constraint 0 <= R < |D|.  They are equivalent to the
R6RS operators `div', `mod', and `div-and-mod'.

`centered-quotient', `centered-remainder', and `centered/' are defined
by the constraint -|D/2| <= R < |D/2|.  They are equivalent to the R6RS
operators `div0', `mod0', and `div-and-mod0'.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]