42#ifndef TEUCHOS_SET_SCIENTIFIC_HPP
43#define TEUCHOS_SET_SCIENTIFIC_HPP
72template<typename Scalar, const bool isFloatingPoint = ! Teuchos::ScalarTraits<Scalar>::isOrdinal>
81template<
typename Scalar>
84 typedef Scalar scalar_type;
88 originalFlags_(out.flags()),
89 originalPrecision_(out.precision())
92 out << std::scientific;
98 out.precision(
static_cast<std::streamsize
>(prec));
101 static inline int getDefaultPrecision() {
103 typedef typename STS::magnitudeType magnitude_type;
121 const magnitude_type numDecDigits = STM::t() * STM::log10 (STM::base());
126 const magnitude_type one = STM::one();
127 const magnitude_type two = one + one;
131 Teuchos::as<int>(magnitude_type((two*numDecDigits + one) / two));
136 out_.flags (originalFlags_);
144 std::ios_base::fmtflags originalFlags_;
147 std::streamsize originalPrecision_;
151template<
class Scalar>
154 typedef Scalar scalar_type;
Defines basic traits for the scalar field type.
Definition of Teuchos::as, for conversions between types.
Temporarily make an output stream use scientific notation with sufficient precision.
The Teuchos namespace contains all of the classes, structs and enums used by Teuchos,...
This structure defines some basic traits for a scalar field type.