10#ifndef TEUCHOS_SET_SCIENTIFIC_HPP
11#define TEUCHOS_SET_SCIENTIFIC_HPP
40template<typename Scalar, const bool isFloatingPoint = ! Teuchos::ScalarTraits<Scalar>::isOrdinal>
49template<
typename Scalar>
56 originalFlags_(out.flags()),
57 originalPrecision_(out.precision())
60 out << std::scientific;
66 out.precision(
static_cast<std::streamsize
>(prec));
69 static inline int getDefaultPrecision() {
71 typedef typename STS::magnitudeType magnitude_type;
89 const magnitude_type numDecDigits = STM::t() * STM::log10 (STM::base());
94 const magnitude_type one = STM::one();
95 const magnitude_type two = one + one;
104 out_.flags (originalFlags_);
112 std::ios_base::fmtflags originalFlags_;
115 std::streamsize originalPrecision_;
119template<
class Scalar>
120class SetScientific<Scalar, false> {
122 typedef Scalar scalar_type;
123 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.