18 #if !defined(DOUBLESUPPORT_HEADER_GUARD_1357924680)
19 #define DOUBLESUPPORT_HEADER_GUARD_1357924680
34 #ifdef XALAN_HAVE_STD_ISNAN
49 using xercesc::MemoryManager;
85 #ifdef XALAN_HAVE_STD_ISNAN
86 return std::isnan(theNumber) != 0;
87 #elif XALAN_HAVE_ISNAN
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);
338 negative(
double theDouble);
348 abs(
double theDouble);
356 const double& theLHS,
357 const double& theRHS)
const
359 return equal(theLHS, theRHS);
367 const double& theLHS,
368 const double& theRHS)
const
370 return notEqual(theLHS, theRHS);
378 const double& theLHS,
379 const double& theRHS)
const
381 return lessThan(theLHS, theRHS);
389 const double& theLHS,
390 const double& theRHS)
const
392 return lessThanOrEqual(theLHS, theRHS);
400 const double& theLHS,
401 const double& theRHS)
const
403 return greaterThan(theLHS, theRHS);
411 const double& theLHS,
412 const double& theRHS)
const
414 return greaterThanOrEqual(theLHS, theRHS);
422 const double& theLHS,
423 const double& theRHS)
const
425 return add(theLHS, theRHS);
433 const double& theLHS,
434 const double& theRHS)
const
436 return subtract(theLHS, theRHS);
444 const double& theLHS,
445 const double& theRHS)
const
447 return multiply(theLHS, theRHS);
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);
478 return negative(theDouble);
500 isValid(
const XalanDOMChar* theString);
514 MemoryManager& theManager);
527 const XalanDOMChar* theString,
528 MemoryManager& theManager);
538 round(
double theValue);
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;
601 #endif // DOUBLESUPPORT_HEADER_GUARD_1357924680
static double floor(double theValue)
Returns the floor of a number according to the XPath rules.
static bool isNegativeInfinity(double theNumber)
Determine if target is negative infinity.
double operator()(const double &theLHS, const double &theRHS) const
static bool isNegativeZero(double theNumber)
Determine if target is negative 0.
bool operator()(const double &theLHS, const double &theRHS) const
static double getPositiveInfinity()
Double value that represents positive infinity.
double operator()(const double &theLHS, const double &theRHS) const
static bool notEqual(double theLHS, double theRHS)
Compare two double values, taking into account the fact that we must support IEEE 754...
#define XALAN_CPP_NAMESPACE
Xalan-C++ namespace, including major and minor version.
static bool isPositiveInfinity(double theNumber)
Determine if target is positive infinity.
double operator()(const double &theDouble) const
bool 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
struct xalanc::DoubleSupport::NumberUnion::@7 dwords
static double getNaN()
Double value that represents "not a number".
static double ceiling(double theValue)
Returns the ceiling of a number according to the XPath rules.
bool operator==(double theNumber) const
static bool isPositiveZero(double theNumber)
Determine if target is positive 0.
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
static bool isNaN(double theNumber)
Determine if target is not a number.
static double getNegativeInfinity()
Double value that represents negative infinity.
bool operator()(const double &theLHS, const double &theRHS) const
bool operator()(const double &theLHS, const double &theRHS) const