43 #if defined(ARMA_HAVE_STD_ISFINITE) 45 return (std::isfinite(x) != 0);
49 const bool x_is_inf = ( (x == x) && ((x - x) != float(0)) );
50 const bool x_is_nan = (x != x);
52 return ( (x_is_inf ==
false) && (x_is_nan ==
false) );
64 #if defined(ARMA_HAVE_STD_ISFINITE) 66 return (std::isfinite(x) != 0);
70 const bool x_is_inf = ( (x == x) && ((x - x) != double(0)) );
71 const bool x_is_nan = (x != x);
73 return ( (x_is_inf ==
false) && (x_is_nan ==
false) );
128 #if defined(ARMA_USE_BOOST) 129 #define arma_boost_wrap(trig_fn, val) ( (boost::math::trig_fn)(val) ) 131 #define arma_boost_wrap(trig_fn, val) ( arma_stop( #trig_fn "(): need Boost libraries" ), val ) 140 #if defined(ARMA_HAVE_STD_TR1) 158 #if defined(ARMA_HAVE_STD_TR1) 176 #if defined(ARMA_HAVE_STD_TR1) 189 template<
typename eT>
194 #if defined(ARMA_HAVE_STD_TR1) 198 #elif defined(ARMA_USE_BOOST) 211 if(std::numeric_limits<eT>::has_quiet_NaN ==
true)
213 return -(std::numeric_limits<eT>::quiet_NaN());
226 template<
typename eT>
231 #if defined(ARMA_HAVE_STD_TR1) 235 #elif defined(ARMA_USE_BOOST) 249 template<
typename eT>
254 #if defined(ARMA_HAVE_STD_TR1) 258 #elif defined(ARMA_USE_BOOST) 264 if( (x >= eT(-1)) && (x <= eT(+1)) )
267 return std::log( ( eT(1)+x ) / ( eT(1)-x ) ) / eT(2);
271 if(std::numeric_limits<eT>::has_quiet_NaN ==
true)
273 return -(std::numeric_limits<eT>::quiet_NaN());
291 #if defined(ARMA_HAVE_STD_TR1) 309 #if defined(ARMA_HAVE_STD_TR1) 327 #if defined(ARMA_HAVE_STD_TR1) 340 #undef arma_boost_wrap arma_inline eT arma_asinh(const eT x)
arma_inline std::complex< T > arma_asin(const std::complex< T > &x)
arma_inline const eOp< T1, eop_sqrt > sqrt(const Base< typename T1::elem_type, T1 > &A)
arma_inline const eOp< T1, eop_acosh > acosh(const Base< typename T1::elem_type, T1 > &A)
arma_inline std::complex< T > arma_atan(const std::complex< T > &x)
arma_inline const eOp< T1, eop_atanh > atanh(const Base< typename T1::elem_type, T1 > &A)
arma_inline eT arma_acosh(const eT x)
arma_inline const eOp< T1, eop_atan > atan(const Base< typename T1::elem_type, T1 > &A)
#define arma_ignore(variable)
arma_inline const eOp< T1, eop_asin > asin(const Base< typename T1::elem_type, T1 > &A)
arma_inline const eOp< T1, eop_asinh > asinh(const Base< typename T1::elem_type, T1 > &A)
arma_inline const eOp< T1, eop_acos > acos(const Base< typename T1::elem_type, T1 > &A)
arma_inline const eOp< T1, eop_log > log(const Base< typename T1::elem_type, T1 > &A)
arma_inline std::complex< T > arma_acos(const std::complex< T > &x)
arma_inline eT arma_atanh(const eT x)
arma_inline bool arma_isfinite(eT val)
#define arma_boost_wrap(trig_fn, val)