Hi,
I'm a little bit confused about the documentation in
http://www.boost.org/libs/numeric/interval/doc/rounding.htm, in the
subsection "Transcendental functions". Does the "Please note" paragraph means
that the provided classes for transcendal functions (_opp and _std) do not
guarantee the inclusion property?
From what I understood it says that it depends on the implementation of the
std::* math functions, that, in most cases, don't obey current rounding mode.
Am I getting this right?
In case I am, does anyone knows if I'm safe with gcc std library (perhaps by
using the -frounding-math switch)?
Thanks!
Marco
--
Marco Correia
Le mardi 20 février 2007 à 18:56 +0000, Marco Correia a écrit :
Hi,
I'm a little bit confused about the documentation in http://www.boost.org/libs/numeric/interval/doc/rounding.htm, in the subsection "Transcendental functions". Does the "Please note" paragraph means that the provided classes for transcendal functions (_opp and _std) do not guarantee the inclusion property?
Yes.
From what I understood it says that it depends on the implementation of the std::* math functions, that, in most cases, don't obey current rounding mode. Am I getting this right?
Yes.
In case I am, does anyone knows if I'm safe with gcc std library (perhaps by using the -frounding-math switch)?
No, unfortunately. You have to rely either on a library that provides functions rounded in accordance with the rounding mode of the processor like Sun's libmcr, or on a library that provides functions with explicit rounding direction like MPFR or CRlibm. The transc.cpp example file of the library shows how to write a class relying on MPFR; for Boost 1.35, it may be replaced / extended with a class relying on CRlibm. Best regards, Guillaume
On Wednesday 21 February 2007 09:27, Guillaume Melquiond wrote:
Le mardi 20 février 2007 à 18:56 +0000, Marco Correia a écrit :
Hi,
I'm a little bit confused about the documentation in http://www.boost.org/libs/numeric/interval/doc/rounding.htm, in the subsection "Transcendental functions". Does the "Please note" paragraph means that the provided classes for transcendal functions (_opp and _std) do not guarantee the inclusion property?
Yes.
From what I understood it says that it depends on the implementation of the
std::* math functions, that, in most cases, don't obey current rounding mode. Am I getting this right?
Yes.
In case I am, does anyone knows if I'm safe with gcc std library (perhaps by using the -frounding-math switch)?
No, unfortunately.
You have to rely either on a library that provides functions rounded in accordance with the rounding mode of the processor like Sun's libmcr, or on a library that provides functions with explicit rounding direction like MPFR or CRlibm. The transc.cpp example file of the library shows how to write a class relying on MPFR; for Boost 1.35, it may be replaced / extended with a class relying on CRlibm.
Best regards,
Guillaume
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
Thanks a lot!
Marco
--
Marco Correia
participants (2)
-
Guillaume Melquiond
-
Marco Correia