Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | List of all members
FIX::double_conversion::Double Class Reference

Public Member Functions

 Double ()
 
 Double (double d)
 
 Double (uint64_t d64)
 
 Double (DiyFp diy_fp)
 
DiyFp AsDiyFp () const
 
DiyFp AsNormalizedDiyFp () const
 
uint64_t AsUint64 () const
 
double NextDouble () const
 
double PreviousDouble () const
 
int Exponent () const
 
uint64_t Significand () const
 
bool IsDenormal () const
 
bool IsSpecial () const
 
bool IsNan () const
 
bool IsInfinite () const
 
int Sign () const
 
DiyFp UpperBoundary () const
 
void NormalizedBoundaries (DiyFp *out_m_minus, DiyFp *out_m_plus) const
 
bool LowerBoundaryIsCloser () const
 
double value () const
 

Static Public Member Functions

static int SignificandSizeForOrderOfMagnitude (int order)
 
static double Infinity ()
 
static double NaN ()
 

Static Public Attributes

static const uint64_t kSignMask = UINT64_2PART_C(0x80000000, 00000000)
 
static const uint64_t kExponentMask = UINT64_2PART_C(0x7FF00000, 00000000)
 
static const uint64_t kSignificandMask = UINT64_2PART_C(0x000FFFFF, FFFFFFFF)
 
static const uint64_t kHiddenBit = UINT64_2PART_C(0x00100000, 00000000)
 
static const int kPhysicalSignificandSize = 52
 
static const int kSignificandSize = 53
 

Private Member Functions

 DISALLOW_COPY_AND_ASSIGN (Double)
 

Static Private Member Functions

static uint64_t DiyFpToUint64 (DiyFp diy_fp)
 

Private Attributes

const uint64_t d64_
 

Static Private Attributes

static const int kExponentBias = 0x3FF + kPhysicalSignificandSize
 
static const int kDenormalExponent = -kExponentBias + 1
 
static const int kMaxExponent = 0x7FF - kExponentBias
 
static const uint64_t kInfinity = UINT64_2PART_C(0x7FF00000, 00000000)
 
static const uint64_t kNaN = UINT64_2PART_C(0x7FF80000, 00000000)
 

Detailed Description

Definition at line 42 of file FieldConvertors.cpp.

Constructor & Destructor Documentation

◆ Double() [1/4]

FIX::double_conversion::Double::Double ( )
inline

Definition at line 51 of file FieldConvertors.cpp.

◆ Double() [2/4]

FIX::double_conversion::Double::Double ( double  d)
inlineexplicit

Definition at line 52 of file FieldConvertors.cpp.

◆ Double() [3/4]

FIX::double_conversion::Double::Double ( uint64_t  d64)
inlineexplicit

Definition at line 53 of file FieldConvertors.cpp.

◆ Double() [4/4]

FIX::double_conversion::Double::Double ( DiyFp  diy_fp)
inlineexplicit

Definition at line 54 of file FieldConvertors.cpp.

Member Function Documentation

◆ AsDiyFp()

DiyFp FIX::double_conversion::Double::AsDiyFp ( ) const
inline

Definition at line 59 of file FieldConvertors.cpp.

64  {

◆ AsNormalizedDiyFp()

DiyFp FIX::double_conversion::Double::AsNormalizedDiyFp ( ) const
inline

Definition at line 66 of file FieldConvertors.cpp.

69  {
70  double_conversion::StringBuilder builder( buffer, size );
71  if( !g_dtoa_converter.ToPrecision( value, DoubleConvertor::SIGNIFICANT_DIGITS, &builder ) )
72  {
73  builder.Reset();
74  return 0;
75  }
76 
77  builder.TrimTrailingZeros();
78  return builder.position();
79  }
80 
static const int SIGNIFICANT_DIGITS
static double_conversion::DoubleToStringConverter g_dtoa_converter(double_conversion::DoubleToStringConverter::NO_FLAGS, "INF", "NAN", 'e', -DoubleConvertor::SIGNIFICANT_DIGITS, DoubleConvertor::SIGNIFICANT_DIGITS, DoubleConvertor::SIGNIFICANT_DIGITS - 1, 0)

◆ AsUint64()

uint64_t FIX::double_conversion::Double::AsUint64 ( ) const
inline

Definition at line 83 of file FieldConvertors.cpp.

85  {

◆ DISALLOW_COPY_AND_ASSIGN()

FIX::double_conversion::Double::DISALLOW_COPY_AND_ASSIGN ( Double  )
private

◆ DiyFpToUint64()

static uint64_t FIX::double_conversion::Double::DiyFpToUint64 ( DiyFp  diy_fp)
inlinestaticprivate

Definition at line 233 of file FieldConvertors.cpp.

◆ Exponent()

int FIX::double_conversion::Double::Exponent ( ) const
inline

Definition at line 111 of file FieldConvertors.cpp.

◆ Infinity()

static double FIX::double_conversion::Double::Infinity ( )
inlinestatic

Definition at line 216 of file FieldConvertors.cpp.

◆ IsDenormal()

bool FIX::double_conversion::Double::IsDenormal ( ) const
inline

Definition at line 131 of file FieldConvertors.cpp.

◆ IsInfinite()

bool FIX::double_conversion::Double::IsInfinite ( ) const
inline

Definition at line 149 of file FieldConvertors.cpp.

◆ IsNan()

bool FIX::double_conversion::Double::IsNan ( ) const
inline

Definition at line 143 of file FieldConvertors.cpp.

◆ IsSpecial()

bool FIX::double_conversion::Double::IsSpecial ( ) const
inline

Definition at line 138 of file FieldConvertors.cpp.

◆ LowerBoundaryIsCloser()

bool FIX::double_conversion::Double::LowerBoundaryIsCloser ( ) const
inline

Definition at line 187 of file FieldConvertors.cpp.

◆ NaN()

static double FIX::double_conversion::Double::NaN ( )
inlinestatic

Definition at line 220 of file FieldConvertors.cpp.

◆ NextDouble()

double FIX::double_conversion::Double::NextDouble ( ) const
inline

Definition at line 88 of file FieldConvertors.cpp.

◆ NormalizedBoundaries()

void FIX::double_conversion::Double::NormalizedBoundaries ( DiyFp out_m_minus,
DiyFp out_m_plus 
) const
inline

Definition at line 171 of file FieldConvertors.cpp.

◆ PreviousDouble()

double FIX::double_conversion::Double::PreviousDouble ( ) const
inline

Definition at line 101 of file FieldConvertors.cpp.

◆ Sign()

int FIX::double_conversion::Double::Sign ( ) const
inline

Definition at line 155 of file FieldConvertors.cpp.

◆ Significand()

uint64_t FIX::double_conversion::Double::Significand ( ) const
inline

Definition at line 120 of file FieldConvertors.cpp.

◆ SignificandSizeForOrderOfMagnitude()

static int FIX::double_conversion::Double::SignificandSizeForOrderOfMagnitude ( int  order)
inlinestatic

Definition at line 208 of file FieldConvertors.cpp.

◆ UpperBoundary()

DiyFp FIX::double_conversion::Double::UpperBoundary ( ) const
inline

Definition at line 162 of file FieldConvertors.cpp.

◆ value()

double FIX::double_conversion::Double::value ( ) const
inline

Definition at line 200 of file FieldConvertors.cpp.

Member Data Documentation

◆ d64_

const uint64_t FIX::double_conversion::Double::d64_
private

Definition at line 231 of file FieldConvertors.cpp.

◆ kDenormalExponent

const int FIX::double_conversion::Double::kDenormalExponent = -kExponentBias + 1
staticprivate

Definition at line 226 of file FieldConvertors.cpp.

◆ kExponentBias

const int FIX::double_conversion::Double::kExponentBias = 0x3FF + kPhysicalSignificandSize
staticprivate

Definition at line 225 of file FieldConvertors.cpp.

◆ kExponentMask

const uint64_t FIX::double_conversion::Double::kExponentMask = UINT64_2PART_C(0x7FF00000, 00000000)
static

Definition at line 45 of file FieldConvertors.cpp.

◆ kHiddenBit

const uint64_t FIX::double_conversion::Double::kHiddenBit = UINT64_2PART_C(0x00100000, 00000000)
static

Definition at line 47 of file FieldConvertors.cpp.

◆ kInfinity

const uint64_t FIX::double_conversion::Double::kInfinity = UINT64_2PART_C(0x7FF00000, 00000000)
staticprivate

Definition at line 228 of file FieldConvertors.cpp.

◆ kMaxExponent

const int FIX::double_conversion::Double::kMaxExponent = 0x7FF - kExponentBias
staticprivate

Definition at line 227 of file FieldConvertors.cpp.

◆ kNaN

const uint64_t FIX::double_conversion::Double::kNaN = UINT64_2PART_C(0x7FF80000, 00000000)
staticprivate

Definition at line 229 of file FieldConvertors.cpp.

◆ kPhysicalSignificandSize

const int FIX::double_conversion::Double::kPhysicalSignificandSize = 52
static

Definition at line 48 of file FieldConvertors.cpp.

◆ kSignificandMask

const uint64_t FIX::double_conversion::Double::kSignificandMask = UINT64_2PART_C(0x000FFFFF, FFFFFFFF)
static

Definition at line 46 of file FieldConvertors.cpp.

◆ kSignificandSize

const int FIX::double_conversion::Double::kSignificandSize = 53
static

Definition at line 49 of file FieldConvertors.cpp.

◆ kSignMask

const uint64_t FIX::double_conversion::Double::kSignMask = UINT64_2PART_C(0x80000000, 00000000)
static

Definition at line 44 of file FieldConvertors.cpp.


The documentation for this class was generated from the following file:

Generated on Wed Aug 28 2019 14:13:46 for QuickFIX by doxygen 1.8.13 written by Dimitri van Heesch, © 1997-2001