Collaboration diagram for ExactFloat:Classes | |
| class | BigNum |
Public Types | |
| enum | RoundingMode { kRoundTiesToEven, kRoundTiesAwayFromZero, kRoundTowardZero, kRoundAwayFromZero, kRoundTowardPositive, kRoundTowardNegative } |
Public Member Functions | |
| ExactFloat (double v) | |
| ExactFloat (int v) | |
| ExactFloat (const char *s) | |
| ExactFloat (const ExactFloat &b) | |
| int | max_prec () const |
| int | prec () const |
| int | exp () const |
| void | set_zero (int sign) |
| void | set_inf (int sign) |
| void | set_nan () |
| bool | is_zero () const |
| bool | is_inf () const |
| bool | is_nan () const |
| bool | is_normal () const |
| bool | is_finite () const |
| bool | sign_bit () const |
| int | sgn () const |
| double | ToDouble () const |
| string | ToString () const |
| string | ToStringWithMaxDigits (int max_digits) const |
| string | ToUniqueString () const |
| ExactFloat | RoundToMaxPrec (int max_prec, RoundingMode mode) const |
| ExactFloat & | operator= (const ExactFloat &b) |
| ExactFloat | operator+ () const |
| ExactFloat | operator- () const |
| ExactFloat & | operator+= (const ExactFloat &b) |
| ExactFloat & | operator-= (const ExactFloat &b) |
| ExactFloat & | operator *= (const ExactFloat &b) |
Static Public Member Functions | |
| static ExactFloat | SignedZero (int sign) |
| static ExactFloat | Infinity (int sign) |
| static ExactFloat | NaN () |
| static int | NumSignificantDigitsForPrec (int prec) |
Static Public Attributes | |
| static const int | kMaxExp = 200*1000*1000 |
| static const int | kMinExp = -kMaxExp |
| static const int | kMaxPrec = 64 << 20 |
Protected Member Functions | |
| double | ToDoubleHelper () const |
| ExactFloat | RoundToPowerOf2 (int bit_exp, RoundingMode mode) const |
| int | GetDecimalDigits (int max_digits, string *digits) const |
| void | Canonicalize () |
| int | ScaleAndCompare (const ExactFloat &b) const |
| bool | UnsignedLess (const ExactFloat &b) const |
| ExactFloat | CopyWithSign (int sign) const |
| template<class T > | |
| T | ToInteger (RoundingMode mode) const |
Static Protected Member Functions | |
| static ExactFloat | SignedSum (int a_sign, const ExactFloat *a, int b_sign, const ExactFloat *b) |
| static ExactFloat | Unimplemented () |
Protected Attributes | |
| int32 | sign_ |
| int32 | bn_exp_ |
| BigNum | bn_ |
Static Protected Attributes | |
| static const int32 | kExpNaN = INT_MAX |
| static const int32 | kExpInfinity = INT_MAX - 1 |
| static const int32 | kExpZero = INT_MAX - 2 |
| static const int | kDoubleMantissaBits = 53 |
Friends | |
| std::ostream & | operator<< (std::ostream &o, ExactFloat const &f) |
| ExactFloat | operator+ (const ExactFloat &a, const ExactFloat &b) |
| ExactFloat | operator- (const ExactFloat &a, const ExactFloat &b) |
| ExactFloat | operator * (const ExactFloat &a, const ExactFloat &b) |
| bool | operator== (const ExactFloat &a, const ExactFloat &b) |
| bool | operator< (const ExactFloat &a, const ExactFloat &b) |
| bool | operator!= (const ExactFloat &a, const ExactFloat &b) |
| bool | operator<= (const ExactFloat &a, const ExactFloat &b) |
| bool | operator> (const ExactFloat &a, const ExactFloat &b) |
| bool | operator>= (const ExactFloat &a, const ExactFloat &b) |
| ExactFloat | fabs (const ExactFloat &a) |
| ExactFloat | abs (const ExactFloat &a) |
| ExactFloat | fmax (const ExactFloat &a, const ExactFloat &b) |
| ExactFloat | fmin (const ExactFloat &a, const ExactFloat &b) |
| ExactFloat | fdim (const ExactFloat &a, const ExactFloat &b) |
| ExactFloat | ceil (const ExactFloat &a) |
| ExactFloat | floor (const ExactFloat &a) |
| ExactFloat | trunc (const ExactFloat &a) |
| ExactFloat | round (const ExactFloat &a) |
| ExactFloat | rint (const ExactFloat &a) |
| ExactFloat | nearbyint (const ExactFloat &a) |
| long | lrint (const ExactFloat &a) |
| long long | llrint (const ExactFloat &a) |
| long | lround (const ExactFloat &a) |
| long long | llround (const ExactFloat &a) |
| ExactFloat | fmod (const ExactFloat &a, const ExactFloat &b) |
| ExactFloat | remainder (const ExactFloat &a, const ExactFloat &b) |
| ExactFloat | drem (const ExactFloat &a, const ExactFloat &b) |
| ExactFloat | modf (const ExactFloat &a, ExactFloat *i_ptr) |
| ExactFloat | copysign (const ExactFloat &a, const ExactFloat &b) |
| ExactFloat | frexp (const ExactFloat &a, int *exp) |
| ExactFloat | ldexp (const ExactFloat &a, int exp) |
| ExactFloat | scalbn (const ExactFloat &a, int exp) |
| ExactFloat | scalbln (const ExactFloat &a, long exp) |
| int | ilogb (const ExactFloat &a) |
| ExactFloat | logb (const ExactFloat &a) |
Definition at line 125 of file exactfloat.h.
1.8.15