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.