43 #include "Teuchos_Assert.hpp"
50 #ifdef HAVE_TEUCHOSCORE_QUADMATH
54 operator<< (std::ostream& out,
const __float128& x)
56 const size_t bufSize = 128;
59 const int numCharPrinted = quadmath_snprintf (buf, bufSize,
"%.30Qe", x);
60 if (static_cast<size_t> (numCharPrinted) >= bufSize) {
61 std::ostringstream os;
62 os <<
"Failed to print __float128 value: buffer has " << bufSize
63 <<
" characters, but quadmath_snprintf wanted " << numCharPrinted
65 throw std::runtime_error (os.str ());
72 operator>> (std::istream& in, __float128& x)
78 x = strtoflt128 (tmpStr.c_str (), NULL);
83 #endif // HAVE_TEUCHOSCORE_QUADMATH
85 void Teuchos::throwScalarTraitsNanInfError(
const std::string &errMsg )
88 #ifdef TEUCHOS_SCALAR_TRAITS_THROW_NAN_INF_ERR
93 #ifdef HAVE_TEUCHOS_GNU_MP
94 gmp_randclass Teuchos::gmp_rng ( gmp_randinit_default );
97 #ifdef HAVE_TEUCHOS_QD
98 bool Teuchos::operator&&(
const dd_real &a,
const dd_real &b) {
99 return !a.is_zero() && !b.is_zero();
101 bool Teuchos::operator&&(
const qd_real &a,
const qd_real &b) {
102 return !a.is_zero() && !b.is_zero();
109 const float flt_nan = std::numeric_limits<float>::quiet_NaN();
110 const double dbl_nan = std::numeric_limits<double>::quiet_NaN();
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
Macro for throwing an exception with breakpointing to ease debugging.
Defines basic traits for the scalar field type.