30 #ifndef __CLAW_REAL_NUMBER_HPP__
31 #define __CLAW_REAL_NUMBER_HPP__
56 return std::abs(v) <= 1 ?
57 std::numeric_limits<T>::epsilon() :
58 std::abs(v) * std::numeric_limits<T>::epsilon();
70 std::istream& ::operator>> <>( std::istream& is,
real_number<T>& self );
81 self_type abs()
const;
83 bool operator<(
const self_type& that )
const;
84 bool operator<=(
const self_type& that )
const;
85 bool operator>(
const self_type& that )
const;
86 bool operator>=(
const self_type& that )
const;
87 bool operator==(
const self_type& that )
const;
88 bool operator!=(
const self_type& that )
const;
90 self_type operator+(
const self_type& that )
const;
91 self_type operator-(
const self_type& that )
const;
92 self_type operator*(
const self_type& that )
const;
93 self_type operator/(
const self_type& that )
const;
95 self_type& operator+=(
const self_type& that );
96 self_type& operator-=(
const self_type& that );
97 self_type& operator*=(
const self_type& that );
98 self_type& operator/=(
const self_type& that );
100 std::ostream& output( std::ostream& os )
const;
110 value_type m_epsilon;
118 struct numeric_limits<
claw::real_number<T> >:
119 public numeric_limits<T>
136 std::ostream& operator<<( std::ostream& os, const claw::real_number<T>& self );
140 #include "claw/impl/real_number.tpp"
142 #endif // __CLAW_REAL_NUMBER_HPP__
Custom precision real numbers.
This class generates an epsilon value of a given precision.
This is the main namespace.