25 #include "ndCoreStdafx.h"
30 #include "ndClassAlloc.h"
31 #include "ndTemplateVector.h"
35 #define ND_GOOGOL_SIZE 4
40 D_OPERATOR_NEW_AND_DELETE
45 operator double()
const;
54 bool operator> (
const ndGoogol &A)
const;
55 bool operator>= (
const ndGoogol &A)
const;
56 bool operator< (
const ndGoogol &A)
const;
57 bool operator<= (
const ndGoogol &A)
const;
58 bool operator== (
const ndGoogol &A)
const;
59 bool operator!= (
const ndGoogol &A)
const;
67 void ToString (
char*
const string)
const;
70 void InitFloatFloat (ndFloat64 value);
71 void NegateMantissa (ndUnsigned64*
const mantissa)
const;
72 void CopySignedMantissa (ndUnsigned64*
const mantissa)
const;
73 ndInt32 NormalizeMantissa (ndUnsigned64*
const mantissa)
const;
74 ndUnsigned64 CheckCarrier (ndUnsigned64 a, ndUnsigned64 b)
const;
75 void ShiftRightMantissa (ndUnsigned64*
const mantissa, ndInt32 bits)
const;
77 ndInt32 LeadingZeros (ndUnsigned64 a)
const;
78 void ExtendeMultiply (ndUnsigned64 a, ndUnsigned64 b, ndUnsigned64& high, ndUnsigned64& low)
const;
79 void ScaleMantissa (ndUnsigned64*
const out, ndUnsigned64 scale)
const;
83 ndUnsigned64 m_mantissa[ND_GOOGOL_SIZE];
111 ndHugeVector (ndFloat64 x, ndFloat64 y, ndFloat64 z, ndFloat64 w)
124 return DotProduct(point).GetScalar();