13 return std::isfinite( x );
20 return (mTYPE) c >= 1 ? 0 : (c <= -1 ? mTYPE(
M_PI) : acos( c ));
26 return (mTYPE) s >= 1 ? mTYPE(
M_PI_2)
27 : (s <= -1 ? -mTYPE(
M_PI_2) : asin( s ));
33 return (mTYPE) s <= 0 ?
mUdf(mTYPE) : log( s );
39 return (mTYPE) s <= 0 ?
mUdf(mTYPE) : log10( s );
47 return (mTYPE) s <= 0 ? 0 : sqrt ( s );
52 return (mTYPE) s <= 0 ?
mUdf(mTYPE) : 20*log10( s );
62 return (mTYPE) (y ? 0 : 1);
64 const bool isneg = x < 0 ? 1 : 0;
67 mTYPE ret = exp( y * log(x) );
68 return isneg ? -ret : ret;
78 return y ? (mTYPE)0 : (mTYPE)1;
80 if ( x > 1.5 || x < -1.5 )
82 if ( y > 150 )
return mUdf(mTYPE);
83 if ( y < -150 )
return (mTYPE) 0;
84 if ( x > 1.99 || x < -1.99 )
86 if ( y > 100 )
return mUdf(mTYPE);
87 if ( y < -100 )
return (mTYPE) 0;
90 else if ( x < 0.5 && x > -0.5 )
92 if ( y > 100 )
return (mTYPE) 0;
93 if ( y < -100 )
return (mTYPE) 1;
113 double xx = (mTYPE)x;
118 while ( ds > s * DBL_EPSILON )
float PowerOf(float, float)
#define mIsUdf(val)
Use mIsUdf to check for undefinedness of simple types.
Definition: undefval.h:285
#define M_PI
Definition: commondefs.h:66
#define mUdf(type)
Use this macro to get the undefined for simple types.
Definition: undefval.h:270
#define finite
Definition: msvcdefs.h:40
#define M_PI_2
Definition: commondefs.h:75
bool IsNormalNumber(float)
iT IntPowerOf(iT i, iPOW p)
Definition: math2.h:126