Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

double abs(double) missing in .NET?

0 views
Skip to first unread message

Mark Gilbert

unread,
Jan 21, 2002, 4:40:23 PM1/21/02
to
double abs(double) seems to be missing from the C++ standard library in
.NET. I believe this was in the Dinkumware library that I bought to use
with MSVC 6.0. Is there some reason it couldn't be added to the .NET
release? Must I continue to use my Dinkumware library (or part of it) with
MSVC++ .NET?

Thanks,
Mark Gilbert

Mark Gilbert

unread,
Jan 21, 2002, 7:23:46 PM1/21/02
to
Now I see that double abs(double) is defined in math.h, but only if
_MSC_EXTENSIONS is not defined. That is, I have to disable the
Microsoft-specific extensions to get the standard library! That makes no
sense at all. Why would double abs(double) only be present if the Microsoft
extensions are absent?

I can't disable the Microsoft extensions because Microsoft's include files
don't work if I do. And, I can't use fabs, because I am calling from inside
a template and I don't know the type explicitly.

Anybody know what's going on?
Mark Gilbert


"Mark Gilbert" <markg...@spamcop.net> wrote in message
news:uX249QsoBHA.2484@tkmsftngp04...

Robin Message

unread,
Jan 22, 2002, 1:07:54 PM1/22/02
to
double abs(double var)
{
return fabs(var);
}


"Mark Gilbert" <markg...@spamcop.net> wrote in message

news:#fcMRstoBHA.2080@tkmsftngp07...

Mark Gilbert

unread,
Jan 22, 2002, 2:32:58 PM1/22/02
to
Thanks Robin, but my point is that the function is in the standard library,
while Microsoft's library fails to provide it unless /Za is specified (thus
rendering the library useless). Here is the whole section from math.h. All
these functions should be defined and aren't:

#ifndef _MSC_EXTENSIONS

inline long __cdecl abs(long _X)

{return (labs(_X)); }

inline double __cdecl abs(double _X)

{return (fabs(_X)); }

inline double __cdecl pow(double _X, int _Y)

{return (_Pow_int(_X, _Y)); }

inline double __cdecl pow(int _X, int _Y)

{return (_Pow_int(_X, _Y)); }

inline float __cdecl abs(float _X)

{return (fabsf(_X)); }

inline float __cdecl acos(float _X)

{return (acosf(_X)); }

inline float __cdecl asin(float _X)

{return (asinf(_X)); }

inline float __cdecl atan(float _X)

{return (atanf(_X)); }

inline float __cdecl atan2(float _Y, float _X)

{return (atan2f(_Y, _X)); }

inline float __cdecl ceil(float _X)

{return (ceilf(_X)); }

inline float __cdecl cos(float _X)

{return (cosf(_X)); }

inline float __cdecl cosh(float _X)

{return (coshf(_X)); }

inline float __cdecl exp(float _X)

{return (expf(_X)); }

inline float __cdecl fabs(float _X)

{return (fabsf(_X)); }

inline float __cdecl floor(float _X)

{return (floorf(_X)); }

inline float __cdecl fmod(float _X, float _Y)

{return (fmodf(_X, _Y)); }

inline float __cdecl frexp(float _X, int * _Y)

{return (frexpf(_X, _Y)); }

inline float __cdecl ldexp(float _X, int _Y)

{return (ldexpf(_X, _Y)); }

inline float __cdecl log(float _X)

{return (logf(_X)); }

inline float __cdecl log10(float _X)

{return (log10f(_X)); }

inline float __cdecl modf(float _X, float * _Y)

{return (modff(_X, _Y)); }

inline float __cdecl pow(float _X, float _Y)

{return (powf(_X, _Y)); }

inline float __cdecl pow(float _X, int _Y)

{return (_Pow_int(_X, _Y)); }

inline float __cdecl sin(float _X)

{return (sinf(_X)); }

inline float __cdecl sinh(float _X)

{return (sinhf(_X)); }

inline float __cdecl sqrt(float _X)

{return (sqrtf(_X)); }

inline float __cdecl tan(float _X)

{return (tanf(_X)); }

inline float __cdecl tanh(float _X)

{return (tanhf(_X)); }

inline long double __cdecl abs(long double _X)

{return (fabsl(_X)); }

inline long double __cdecl acos(long double _X)

{return (acosl(_X)); }

inline long double __cdecl asin(long double _X)

{return (asinl(_X)); }

inline long double __cdecl atan(long double _X)

{return (atanl(_X)); }

inline long double __cdecl atan2(long double _Y, long double _X)

{return (atan2l(_Y, _X)); }

inline long double __cdecl ceil(long double _X)

{return (ceill(_X)); }

inline long double __cdecl cos(long double _X)

{return (cosl(_X)); }

inline long double __cdecl cosh(long double _X)

{return (coshl(_X)); }

inline long double __cdecl exp(long double _X)

{return (expl(_X)); }

inline long double __cdecl fabs(long double _X)

{return (fabsl(_X)); }

inline long double __cdecl floor(long double _X)

{return (floorl(_X)); }

inline long double __cdecl fmod(long double _X, long double _Y)

{return (fmodl(_X, _Y)); }

inline long double __cdecl frexp(long double _X, int * _Y)

{return (frexpl(_X, _Y)); }

inline long double __cdecl ldexp(long double _X, int _Y)

{return (ldexpl(_X, _Y)); }

inline long double __cdecl log(long double _X)

{return (logl(_X)); }

inline long double __cdecl log10(long double _X)

{return (log10l(_X)); }

inline long double __cdecl modf(long double _X, long double * _Y)

{return (modfl(_X, _Y)); }

inline long double __cdecl pow(long double _X, long double _Y)

{return (powl(_X, _Y)); }

inline long double __cdecl pow(long double _X, int _Y)

{return (_Pow_int(_X, _Y)); }

inline long double __cdecl sin(long double _X)

{return (sinl(_X)); }

inline long double __cdecl sinh(long double _X)

{return (sinhl(_X)); }

inline long double __cdecl sqrt(long double _X)

{return (sqrtl(_X)); }

inline long double __cdecl tan(long double _X)

{return (tanl(_X)); }

inline long double __cdecl tanh(long double _X)

{return (tanhl(_X)); }

#endif /* _MSC_EXTENSIONS */

"Robin Message" <robinm...@breathe.com> wrote in message
news:a2k9sn$e1j$1...@news5.svr.pol.co.uk...

0 new messages