Cmath_wrap


Functions

template<typename eT >
arma_inline bool arma_isfinite (eT val)
arma_inline bool arma_isfinite (float x)
arma_inline bool arma_isfinite (double x)
template<typename T >
arma_inline bool arma_isfinite (const std::complex< T > &x)

Function Documentation

template<typename eT >
arma_inline bool arma_isfinite ( eT  val  )  [inline]

Definition at line 30 of file cmath_wrap.hpp.

Referenced by arma_isfinite(), and Mat< eT >::is_finite().

00031   {
00032   return true;
00033   }

arma_inline bool arma_isfinite ( float  x  ) 

Definition at line 39 of file cmath_wrap.hpp.

00040   {
00041   #if defined(_GLIBCXX_USE_C99_MATH)
00042     {
00043     return (std::isfinite(x) != 0);
00044     }
00045   #else
00046     {
00047     const bool x_is_inf = ( (x == x) && ((x - x) != float(0)) );
00048     const bool x_is_nan = (x != x);
00049 
00050     return ( (x_is_inf == false) && (x_is_nan == false) );
00051     }
00052   #endif
00053   }

arma_inline bool arma_isfinite ( double  x  ) 

Definition at line 59 of file cmath_wrap.hpp.

00060   {
00061   #if defined(_GLIBCXX_USE_C99_MATH)
00062     {
00063     return (std::isfinite(x) != 0);
00064     }
00065   #else
00066     {
00067     const bool x_is_inf = ( (x == x) && ((x - x) != double(0)) );
00068     const bool x_is_nan = (x != x);
00069 
00070     return ( (x_is_inf == false) && (x_is_nan == false) );
00071     }
00072   #endif
00073   }

template<typename T >
arma_inline bool arma_isfinite ( const std::complex< T > &  x  )  [inline]

Definition at line 80 of file cmath_wrap.hpp.

References arma_isfinite().

00081   {
00082   if( (arma_isfinite(x.real()) == false) || (arma_isfinite(x.imag()) == false) )
00083     {
00084     return false;
00085     }
00086   else
00087     {
00088     return true;
00089     }
00090   }