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>
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;
136 out_.flags (originalFlags_);
144 std::ios_base::fmtflags originalFlags_;
147 std::streamsize originalPrecision_;
151template<
class Scalar>
152class SetScientific<Scalar, false> {
154 typedef Scalar scalar_type;
155 SetScientific(std::ostream&) {}
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.
TypeTo as(const TypeFrom &t)
Convert from one value type to another.
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.