Boost logo

Boost :

From: Jonathan Wakely (cow_at_[hidden])
Date: 2004-09-22 04:21:02


On Tue, Sep 21, 2004 at 06:58:23PM +0200, Guillaume Melquiond wrote:

> Le mar 21/09/2004 ? 18:16, Bronek Kozicki a ?crit :
> > Guillaume Melquiond wrote:
> > > To fix these problems, I need to know where (header, namespace) the
> > > inverse hyperbolic functions acosh, asinh, atanh are defined for this
> > > platform/compiler/standard library. As a side note, the same question
> >
> > it's not defined in MinGW at all. Here's relevant part of math.h
> >
> > /*
> > * TODO: asinh, acosh, atanh
> > */
> >
> > This math.h belongs to MinGW runtime. I have most recent version,
> > mingw-runtime-3.3, released May 02, 2004. MD5 of my math.h is
> > fad9df375a225e55f7b399c1481e683e, file size 21194 bytes, file time
> > 2004-05-02 11:43.
> >
> > Interestingly, the same mingw-runtime is used with GCC 3.3.1 (toolset
> > "mingw" in tests I'm running) and all tests pass on this compiler. I
> > guess some workaround is applied here?
>
> The logic behind the inverse hyperbolic functions is in the
> numeric/interval/detail/bugs.hpp header. There are two parts: first
> finding if the three functions exist, then defining the namespace they
> lie in. The first part is:
>
> #if defined(__GLIBC__) && !defined(__GLIBCPP__) && (defined(__USE_MISC) || defined(__USE_XOPEN_EXTENDED) || defined(__USE_ISOC99)) && !defined(__ICC)
> # define BOOST_HAS_INV_HYPERBOLIC
> #endif

This test is outdated, GCC 3.4 changed the stdlib macro from __GLIBCPP__
to __GLIBCXX__, so this test fails to catch GCC 3.4's stdlib.

> However, in the meantime, could you tell me which test to add to the
> line so that the macro is not defined when MinGW is used?

Something like this:

#if defined(__GLIBC__) && !(defined(__GLIBCPP__) || defined(__GLIBCXX__)) && (defined(__USE_MISC) || defined(__USE_XOPEN_EXTENDED) || defined(__USE_ISOC99)) && !defined(__ICC)
# define BOOST_HAS_INV_HYPERBOLIC
#endif

jon

-- 
"It is useless to attempt to reason a man out of a thing
 he was never reasoned into."
	- Jonathan Swift

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk