18#if !defined(DOUBLESUPPORT_HEADER_GUARD_1357924680)
19#define DOUBLESUPPORT_HEADER_GUARD_1357924680
34#ifdef XALAN_HAVE_STD_ISNAN
49using xercesc::MemoryManager;
85#ifdef XALAN_HAVE_STD_ISNAN
86 return std::isnan(theNumber) != 0;
88 return isnan(theNumber) != 0;
89#elif XALAN_HAVE__ISNAN
90 return _isnan(theNumber) != 0;
92 return s_NaN == theNumber;
105 return s_positiveInfinity == theNumber;
117 return s_negativeInfinity == theNumber;
129 return s_positiveZero == theNumber;
141 return s_negativeZero == theNumber;
168 return s_positiveInfinity.d;
179 return s_negativeInfinity.d;
208 return !
equal(theLHS, theRHS);
356 const double& theLHS,
357 const double& theRHS)
const
359 return equal(theLHS, theRHS);
367 const double& theLHS,
368 const double& theRHS)
const
378 const double& theLHS,
379 const double& theRHS)
const
389 const double& theLHS,
390 const double& theRHS)
const
400 const double& theLHS,
401 const double& theRHS)
const
411 const double& theLHS,
412 const double& theRHS)
const
422 const double& theLHS,
423 const double& theRHS)
const
425 return add(theLHS, theRHS);
433 const double& theLHS,
434 const double& theRHS)
const
444 const double& theLHS,
445 const double& theRHS)
const
455 const double& theLHS,
456 const double& theRHS)
const
458 return divide(theLHS, theRHS);
466 const double& theLHS,
467 const double& theRHS)
const
469 return modulus(theLHS, theRHS);
514 MemoryManager& theManager);
527 const XalanDOMChar* theString,
528 MemoryManager& theManager);
550 return std::ceil(theValue);
563 return std::floor(theValue);
587 static const NumberUnion s_NaN;
589 static const NumberUnion s_positiveInfinity;
590 static const NumberUnion s_negativeInfinity;
591 static const NumberUnion s_positiveZero;
592 static const NumberUnion s_negativeZero;
static bool equal(double theLHS, double theRHS)
Compare two double values, taking into account the fact that we must support IEEE 754.
static double getPositiveInfinity()
Double value that represents positive infinity.
static bool lessThan(double theLHS, double theRHS)
Compare two double values, taking into account the fact that we must support IEEE 754.
static bool isPositiveInfinity(double theNumber)
Determine if target is positive infinity.
static bool lessThanOrEqual(double theLHS, double theRHS)
Compare two double values, taking into account the fact that we must support IEEE 754.
static double getNegativeInfinity()
Double value that represents negative infinity.
static bool isValid(const XalanDOMString &theString)
Determine whether or not a string contains a valid floating point number.
static double divide(double theLHS, double theRHS)
Divide two double values, taking into account the fact that we must support IEEE 754.
static double toDouble(const XalanDOMString &theString, MemoryManager &theManager)
Convert a string to a double value.
static double multiply(double theLHS, double theRHS)
Multiply two double values, taking into account the fact that we must support IEEE 754.
static bool isNaN(double theNumber)
Determine if target is not a number.
static double abs(double theDouble)
Return the absolute value of theDouble.
static void initialize()
Perform static initialization.
static bool isNegativeZero(double theNumber)
Determine if target is negative 0.
static double ceiling(double theValue)
Returns the ceiling of a number according to the XPath rules.
static bool notEqual(double theLHS, double theRHS)
Compare two double values, taking into account the fact that we must support IEEE 754.
static double modulus(double theLHS, double theRHS)
Determine the modulus two double values, taking into account the fact that we must support IEEE 754.
static bool isValid(const XalanDOMChar *theString)
Determine whether or not a string contains a valid floating point number.
static bool isPositiveZero(double theNumber)
Determine if target is positive 0.
static double subtract(double theLHS, double theRHS)
Subtract two double values, taking into account the fact that we must support IEEE 754.
static double round(double theValue)
Round a number according to the XPath rules.
static bool greaterThanOrEqual(double theLHS, double theRHS)
Compare two double values, taking into account the fact that we must support IEEE 754.
static bool isNegativeInfinity(double theNumber)
Determine if target is negative infinity.
static double toDouble(const XalanDOMChar *theString, MemoryManager &theManager)
Convert a string to a double value.
static double negative(double theDouble)
Determine the negative of a double value, taking into account the fact that we must support IEEE 754.
static double add(double theLHS, double theRHS)
Add two double values, taking into account the fact that we must support IEEE 754.
static void terminate()
Perform static shut down.
static double floor(double theValue)
Returns the floor of a number according to the XPath rules.
static double getNaN()
Double value that represents "not a number".
static bool greaterThan(double theLHS, double theRHS)
Compare two double values, taking into account the fact that we must support IEEE 754.
double operator()(const double &theLHS, const double &theRHS) const
double operator()(const double &theLHS, const double &theRHS) const
bool operator()(const double &theLHS, const double &theRHS) const
bool operator()(const double &theLHS, const double &theRHS) const
bool operator()(const double &theLHS, const double &theRHS) const
bool operator()(const double &theLHS, const double &theRHS) const
bool operator()(const double &theLHS, const double &theRHS) const
double operator()(const double &theLHS, const double &theRHS) const
double operator()(const double &theLHS, const double &theRHS) const
double operator()(const double &theDouble) const
bool operator()(const double &theLHS, const double &theRHS) const
double operator()(const double &theLHS, const double &theRHS) const
struct xalanc::DoubleSupport::NumberUnion::@104036220073070163350227375110210030005205211330 dwords
bool operator==(double theNumber) const