25 #include "dCoreStdafx.h"
30 #include "dClassAlloc.h"
31 #include "dTemplateVector.h"
35 #define DG_GOOGOL_SIZE 4
43 operator double()
const;
52 bool operator> (
const dGoogol &A)
const;
53 bool operator>= (
const dGoogol &A)
const;
54 bool operator< (
const dGoogol &A)
const;
55 bool operator<= (
const dGoogol &A)
const;
56 bool operator== (
const dGoogol &A)
const;
57 bool operator!= (
const dGoogol &A)
const;
65 void ToString (
char*
const string)
const;
68 void InitFloatFloat (dFloat64 value);
69 void NegateMantissa (dUnsigned64*
const mantissa)
const;
70 void CopySignedMantissa (dUnsigned64*
const mantissa)
const;
71 dInt32 NormalizeMantissa (dUnsigned64*
const mantissa)
const;
72 dUnsigned64 CheckCarrier (dUnsigned64 a, dUnsigned64 b)
const;
73 void ShiftRightMantissa (dUnsigned64*
const mantissa, dInt32 bits)
const;
75 dInt32 LeadingZeros (dUnsigned64 a)
const;
76 void ExtendeMultiply (dUnsigned64 a, dUnsigned64 b, dUnsigned64& high, dUnsigned64& low)
const;
77 void ScaleMantissa (dUnsigned64*
const out, dUnsigned64 scale)
const;
81 dUnsigned64 m_mantissa[DG_GOOGOL_SIZE];
84 D_CORE_API
static dGoogol m_zero;
85 D_CORE_API
static dGoogol m_one;
86 D_CORE_API
static dGoogol m_two;
87 D_CORE_API
static dGoogol m_three;
88 D_CORE_API
static dGoogol m_half;
109 dHugeVector (dFloat64 x, dFloat64 y, dFloat64 z, dFloat64 w)
122 return DotProduct(point).GetScalar();