18 #if !defined(DOUBLESUPPORT_HEADER_GUARD_1357924680)
19 #define DOUBLESUPPORT_HEADER_GUARD_1357924680
40 XALAN_CPP_NAMESPACE_BEGIN
81 return _isnan(theNumber) != 0;
82 #elif defined(XALAN_POSIX2_AVAILABLE) && !defined(CYGWIN) && !defined(MINGW)
83 #if defined(XALAN_NO_STD_NAMESPACE)
84 return isnam(theNumber) != 0;
86 return std::isnan(theNumber) != 0;
89 return s_NaN == theNumber;
102 return s_positiveInfinity == theNumber;
114 return s_negativeInfinity == theNumber;
126 return s_positiveZero == theNumber;
138 return s_negativeZero == theNumber;
165 return s_positiveInfinity.d;
176 return s_negativeInfinity.d;
205 return !equal(theLHS, theRHS);
335 negative(
double theDouble);
345 abs(
double theDouble);
349 #if defined(XALAN_NO_STD_NAMESPACE)
350 struct equalFunction :
public binary_function<const double&, const double&, bool>
352 struct
equalFunction :
public std::binary_function<const double&, const double&, bool>
357 first_argument_type theLHS,
358 second_argument_type theRHS)
const
360 return equal(theLHS, theRHS);
364 #if defined(XALAN_NO_STD_NAMESPACE)
365 struct notEqualFunction :
public binary_function<const double&, const double&, bool>
372 first_argument_type theLHS,
373 second_argument_type theRHS)
const
375 return notEqual(theLHS, theRHS);
379 #if defined(XALAN_NO_STD_NAMESPACE)
380 struct lessThanFunction :
public binary_function<const double&, const double&, bool>
387 first_argument_type theLHS,
388 second_argument_type theRHS)
const
390 return lessThan(theLHS, theRHS);
394 #if defined(XALAN_NO_STD_NAMESPACE)
395 struct lessThanOrEqualFunction :
public binary_function<const double&, const double&, bool>
402 first_argument_type theLHS,
403 second_argument_type theRHS)
const
405 return lessThanOrEqual(theLHS, theRHS);
409 #if defined(XALAN_NO_STD_NAMESPACE)
410 struct greaterThanFunction :
public binary_function<const double&, const double&, bool>
417 first_argument_type theLHS,
418 second_argument_type theRHS)
const
420 return greaterThan(theLHS, theRHS);
424 #if defined(XALAN_NO_STD_NAMESPACE)
425 struct greaterThanOrEqualFunction :
public binary_function<const double&, const double&, bool>
432 first_argument_type theLHS,
433 second_argument_type theRHS)
const
435 return greaterThanOrEqual(theLHS, theRHS);
439 #if defined(XALAN_NO_STD_NAMESPACE)
440 struct addFunction :
public binary_function<const double&, const double&, double>
442 struct
addFunction :
public std::binary_function<const double&, const double&, double>
447 first_argument_type theLHS,
448 second_argument_type theRHS)
const
450 return add(theLHS, theRHS);
454 #if defined(XALAN_NO_STD_NAMESPACE)
455 struct subtractFunction :
public binary_function<const double&, const double&, double>
457 struct
subtractFunction :
public std::binary_function<const double&, const double&, double>
462 first_argument_type theLHS,
463 second_argument_type theRHS)
const
465 return subtract(theLHS, theRHS);
469 #if defined(XALAN_NO_STD_NAMESPACE)
470 struct multiplyFunction :
public binary_function<const double&, const double&, double>
472 struct
multiplyFunction :
public std::binary_function<const double&, const double&, double>
477 first_argument_type theLHS,
478 second_argument_type theRHS)
const
480 return multiply(theLHS, theRHS);
484 #if defined(XALAN_NO_STD_NAMESPACE)
485 struct divideFunction :
public binary_function<const double&, const double&, double>
487 struct
divideFunction :
public std::binary_function<const double&, const double&, double>
492 first_argument_type theLHS,
493 second_argument_type theRHS)
const
495 return divide(theLHS, theRHS);
499 #if defined(XALAN_NO_STD_NAMESPACE)
500 struct modulusFunction :
public binary_function<const double&, const double&, double>
502 struct
modulusFunction :
public std::binary_function<const double&, const double&, double>
507 first_argument_type theLHS,
508 second_argument_type theRHS)
const
510 return modulus(theLHS, theRHS);
514 #if defined(XALAN_NO_STD_NAMESPACE)
515 struct negativeFunction :
public unary_function<const double&, double>
523 return negative(theDouble);
545 isValid(
const XalanDOMChar* theString);
559 MemoryManager& theManager);
572 const XalanDOMChar* theString,
573 MemoryManager& theManager);
583 round(
double theValue);
595 #if defined(XALAN_STRICT_ANSI_HEADERS)
596 return std::ceil(theValue);
598 return ceil(theValue);
612 #if defined(XALAN_STRICT_ANSI_HEADERS)
613 return std::floor(theValue);
615 return ::floor(theValue);
640 #if defined(XALAN_NO_STD_NUMERIC_LIMITS)
641 static NumberUnion s_NaN;
643 static const NumberUnion s_NaN;
646 static const NumberUnion s_positiveInfinity;
647 static const NumberUnion s_negativeInfinity;
648 static const NumberUnion s_positiveZero;
649 static const NumberUnion s_negativeZero;
654 XALAN_CPP_NAMESPACE_END
658 #endif // DOUBLESUPPORT_HEADER_GUARD_1357924680
result_type operator()(first_argument_type theLHS, second_argument_type theRHS) const
result_type operator()(first_argument_type theLHS, second_argument_type theRHS) const
static double getNegativeInfinity()
Double value that represents negative infinity.
struct DoubleSupport::NumberUnion::@20 dwords
result_type operator()(first_argument_type theLHS, second_argument_type theRHS) const
static bool isPositiveInfinity(double theNumber)
Determine if target is positive infinity.
static bool isNegativeZero(double theNumber)
Determine if target is negative 0.
result_type operator()(first_argument_type theLHS, second_argument_type theRHS) const
static double getNaN()
Double value that represents "not a number".
bool operator==(double theNumber) const
result_type operator()(first_argument_type theLHS, second_argument_type theRHS) const
result_type operator()(first_argument_type theLHS, second_argument_type theRHS) const
result_type operator()(first_argument_type theLHS, second_argument_type theRHS) const
result_type operator()(first_argument_type theLHS, second_argument_type theRHS) const
result_type operator()(argument_type theDouble) const
static bool isNegativeInfinity(double theNumber)
Determine if target is negative infinity.
result_type operator()(first_argument_type theLHS, second_argument_type theRHS) const
result_type operator()(first_argument_type theLHS, second_argument_type theRHS) const
static bool isNaN(double theNumber)
Determine if target is not a number.
static double floor(double theValue)
Returns the floor 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 getPositiveInfinity()
Double value that represents positive infinity.
static bool isPositiveZero(double theNumber)
Determine if target is positive 0.
XALAN_CPP_NAMESPACE_BEGIN XALAN_USING_XERCES(Locator)
result_type operator()(first_argument_type theLHS, second_argument_type theRHS) const
static double ceiling(double theValue)
Returns the ceiling of a number according to the XPath rules.