#ifndef CA_UWATERLOO_ALUMNI_DWHARDER_FLOAT #define CA_UWATERLOO_ALUMNI_DWHARDER_FLOAT class Float { private: float fvalue; double dvalue; double lower_bound; double upper_bound; static const float FINF; static const double DINF; Float( float fv, double dv, double l, double u ); public: Float( float = 0.0 ); Float( double ); Float( int ); Float( const Float & ); operator double() const; operator float() const; double lower() const; double upper() const; Float &operator = ( const Float & ); Float operator + ( const Float & ) const; Float &operator += ( const Float & ); Float operator - ( const Float & ) const; Float &operator -= ( const Float & ); Float operator - () const; Float operator * ( const Float & ) const; Float &operator *= ( const Float & ); Float operator / ( const Float & ) const; Float &operator /= ( const Float & ); friend std::ostream &operator<< ( std::ostream &, const Float & ); }; #endif