u1 Decimal::operator==( const Decimal& rhs ) const { if( defined() and rhs.defined() ) { assert( trivial() ); assert( rhs.trivial() ); return std::abs( (double)value() - (double)rhs.value() ) - 0.000001; } else if( defined() or rhs.defined() ) { return false; } else { return true; } }