[Gmpcommit] /var/hg/gmp: 2 new changesets
mercurial at gmplib.org
mercurial at gmplib.org
Wed Jan 29 13:35:46 UTC 2014
details: /var/hg/gmp/rev/1ed31ba93338
changeset: 16268:1ed31ba93338
user: Torbjorn Granlund <tege at gmplib.org>
date: Wed Jan 29 14:35:36 2014 +0100
description:
(Floatingpoint Functions): Revise.
details: /var/hg/gmp/rev/09c2da8f0aed
changeset: 16269:09c2da8f0aed
user: Torbjorn Granlund <tege at gmplib.org>
date: Wed Jan 29 14:35:42 2014 +0100
description:
ChangeLog
diffstat:
ChangeLog  4 ++++
doc/gmp.texi  22 ++++++++++++
2 files changed, 16 insertions(+), 10 deletions()
diffs (63 lines):
diff r 6af4d636fc8b r 09c2da8f0aed ChangeLog
 a/ChangeLog Wed Jan 29 14:18:40 2014 +0100
+++ b/ChangeLog Wed Jan 29 14:35:42 2014 +0100
@@ 1,3 +1,7 @@
+20140129 Torbjorn Granlund <tege at gmplib.org>
+
+ * doc/gmp.texi (Floatingpoint Functions): Revise.
+
20140129 Niels MÃ¶ller <nisse at lysator.liu.se>
* README: Don't refer to specific COPYING* files, instead refer to
diff r 6af4d636fc8b r 09c2da8f0aed doc/gmp.texi
 a/doc/gmp.texi Wed Jan 29 14:18:40 2014 +0100
+++ b/doc/gmp.texi Wed Jan 29 14:35:42 2014 +0100
@@ 4563,7 +4563,7 @@
systems. In the current implementation the exponent is a count of limbs, so
for example on a 32bit system this means a range of roughly
@math{2^@W{68719476768}} to @math{2^@W{68719476736}}, or on a 64bit system
this will be greater. Note however @code{mpf_get_str} can only return an
+this will be greater. Note however that @code{mpf_get_str} can only return an
exponent which fits an @code{mp_exp_t} and currently @code{mpf_set_str}
doesn't accept exponents bigger than a @code{long}.
@@ 4576,21 +4576,19 @@
a truncation to the destination precision, but of course the work done is only
what's needed to determine a result under that definition.
The precision selected for a variable is a minimum value, GMP may increase it
a little to facilitate efficient calculation. Currently this means rounding
up to a whole limb, and then sometimes having a further partial limb,
depending on the high limb of the mantissa. But applications shouldn't be
concerned by such details.

The mantissa is stored in binary, as might be imagined from the fact
precisions are expressed in bits. One consequence of this is that decimal
+The precision selected by the user for a variable is a minimum value, GMP may
+increase it a little to facilitate efficient calculation. Currently this means
+rounding up to a whole limb, and then sometimes having a further partial limb,
+depending on the high limb of the mantissa.
+
+The mantissa is stored in binary. One consequence of this is that decimal
fractions like @math{0.1} cannot be represented exactly. The same is true of
plain IEEE @code{double} floats. This makes both highly unsuitable for
calculations involving money or other values that should be exact decimal
fractions. (Suitably scaled integers, or perhaps rationals, are better
choices.)
 at code{mpf} functions and variables have no special notion of infinity or
+The @code{mpf} functions and variables have no special notion of infinity or
notanumber, and applications must take care not to overflow the exponent or
results will be unpredictable. This might change in a future release.
@@ 4599,6 +4597,10 @@
computer often differ from the results on a computer with a different word
size.
+The GMP extension library MPFR (@url{http://mpfr.org}) is an alternative to
+GMP's @code{mpf} functions. MPFR provides welldefined precision and accurate
+rounding, and thereby naturally extends IEEE P754.
+
@menu
* Initializing Floats::
* Assigning Floats::
More information about the gmpcommit
mailing list