[ODE] 0.6-RC1 is Released
Bram Stolk
bram at sara.nl
Thu May 25 01:13:52 MST 2006
Rodrigo Hernandez wrote:
> There are 3 Versions:
>
> HAS___ISNANF means use __isnanf
> HAS__ISNANF means use _isnanf
> HAS_ISNANF means use isnanf
>
> I am not sure which one VC++ uses, probably one of the later 2, you may
> replace the default one in common.h to use whichever VC++ uses too.
I thought that the default VC was the _isnanf variant?
If that is so, the common.h looks good to me:
#ifdef HAVE___ISNANF
#define dIsNan(x) (__isnanf(x))
#elif defined(HAVE__ISNANF)
#define dIsNan(x) (_isnanf(x))
#elif defined(HAVE_ISNANF)
#define dIsNan(x) (isnanf(x))
#else
/*
fall back to _isnanf which is the VC way,
this may seem redundant since we already checked
for _isnan before, but if isnan is detected by
configure but is not found during compilation
we should always make sure we check for __isnanf,
_isnan and isnan in that order before falling
back to a default
*/
#define dIsNan(x) (_isnanf(x))
#endif
Because:
If I grep on NAN in build/config-default.h I get no matches,
so it should be using _isnanf()
This is weird...
If we can't solve this, I'll yank the asserts from
test_basket.
The isnan was only used as paranoia asserting there.
(Which normally is a good thing, but not if isnan is
unreliable)
Bram
> Cheers.
> _______________________________________________
> ODE mailing list
> ODE at q12.org
> http://q12.org/mailman/listinfo/ode
More information about the ODE
mailing list