#include <Numeric.hpp>
Public Types | |
enum | State { NEG_INF = 0, NEG_NUM = 1, NUM = 2, INF = 3, NaN = 4 } |
typedef RefCountPointer< const Numeric > | Ptr |
Public Member Functions | |
virtual bool | isNumericValue () const |
virtual const XMLCh * | getPrimitiveTypeName () const =0 |
virtual const XMLCh * | getTypeURI () const =0 |
virtual const XMLCh * | getTypeName () const =0 |
virtual const XMLCh * | asString (const DynamicContext *context) const =0 |
virtual Numeric::Ptr | promoteTypeIfApplicable (AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext *context) const =0 |
virtual bool | equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const |
virtual bool | lessThan (const Numeric::Ptr &other, const DynamicContext *context) const |
Returns true if this is less than other, false otherwise. | |
virtual bool | greaterThan (const Numeric::Ptr &other, const DynamicContext *context) const |
Returns true if this is greater than other, false otherwise. | |
virtual int | compare (const Numeric::Ptr &other, const DynamicContext *context) const |
Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise. | |
virtual Numeric::Ptr | add (const Numeric::Ptr &other, const DynamicContext *context) const =0 |
Returns a Numeric object which is the sum of this and other. | |
virtual Numeric::Ptr | subtract (const Numeric::Ptr &other, const DynamicContext *context) const =0 |
Returns a Numeric object which is the difference of this and other. | |
virtual Numeric::Ptr | multiply (const Numeric::Ptr &other, const DynamicContext *context) const =0 |
Returns a Numeric object which is the product of this and other. | |
virtual Numeric::Ptr | divide (const Numeric::Ptr &other, const DynamicContext *context) const =0 |
Returns a Numeric object which is the quotient of this and other. | |
virtual Numeric::Ptr | mod (const Numeric::Ptr &other, const DynamicContext *context) const =0 |
Returns the arithmetic product of its operands as a Numeric. | |
virtual Numeric::Ptr | floor (const DynamicContext *context) const =0 |
Returns the floor of this Numeric. | |
virtual Numeric::Ptr | ceiling (const DynamicContext *context) const =0 |
Returns the ceiling of this Numeric. | |
virtual Numeric::Ptr | round (const DynamicContext *context) const =0 |
Rounds this Numeric. | |
virtual Numeric::Ptr | roundHalfToEven (const Numeric::Ptr &precision, const DynamicContext *context) const =0 |
Rounds this Numeric to the given precision, and rounds a half to even. | |
virtual Numeric::Ptr | invert (const DynamicContext *context) const =0 |
Returns the Additive inverse of this Numeric. | |
virtual bool | isZero () const =0 |
Does this Numeric have value 0? | |
virtual bool | isPositive () const =0 |
Is this Numeric positive? | |
virtual bool | isNegative () const =0 |
Is this Numeric negative? | |
virtual bool | isNaN () const =0 |
virtual bool | isInfinite () const =0 |
virtual AnyAtomicType::AtomicObjectType | getPrimitiveTypeIndex () const =0 |
virtual const MAPM & | asMAPM () const =0 |
virtual double | asDouble () const |
virtual int | asInt () const |
virtual State | getState () const =0 |
Static Public Member Functions | |
static void | checkFloatLimits (Numeric::State &state, MAPM &value) |
static void | checkDoubleLimits (Numeric::State &state, MAPM &value) |
static const XMLCh * | asDecimalString (const MAPM &value, int significantDigits, const StaticContext *context) |
static const XMLCh * | asDoubleString (State state, const MAPM &value, int significantDigits, const StaticContext *context) |
Static Public Attributes | |
static const XMLCh | NaN_string [] |
static const XMLCh | NAN_string [] |
static const XMLCh | INF_string [] |
static const XMLCh | NegINF_string [] |
static const XMLCh | NegZero_string [] |
static const XMLCh | PosZero_string [] |
Protected Member Functions | |
virtual AnyAtomicType::Ptr | castAsInternal (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const |
const XMLCh * | asDecimalString (int significantDigits, const StaticContext *context) const |
const XMLCh * | asDoubleString (int significantDigits, const StaticContext *context) const |
typedef RefCountPointer<const Numeric> Numeric::Ptr |
Reimplemented from AnyAtomicType.
Reimplemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.
enum Numeric::State |
virtual Numeric::Ptr Numeric::add | ( | const Numeric::Ptr & | other, | |
const DynamicContext * | context | |||
) | const [pure virtual] |
Returns a Numeric object which is the sum of this and other.
Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.
const XMLCh* Numeric::asDecimalString | ( | int | significantDigits, | |
const StaticContext * | context | |||
) | const [protected] |
static const XMLCh* Numeric::asDecimalString | ( | const MAPM & | value, | |
int | significantDigits, | |||
const StaticContext * | context | |||
) | [static] |
virtual double Numeric::asDouble | ( | ) | const [virtual] |
const XMLCh* Numeric::asDoubleString | ( | int | significantDigits, | |
const StaticContext * | context | |||
) | const [protected] |
static const XMLCh* Numeric::asDoubleString | ( | State | state, | |
const MAPM & | value, | |||
int | significantDigits, | |||
const StaticContext * | context | |||
) | [static] |
virtual int Numeric::asInt | ( | ) | const [virtual] |
virtual const MAPM& Numeric::asMAPM | ( | ) | const [pure virtual] |
Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.
virtual const XMLCh* Numeric::asString | ( | const DynamicContext * | context | ) | const [pure virtual] |
Implements AnyAtomicType.
Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.
virtual AnyAtomicType::Ptr Numeric::castAsInternal | ( | AtomicObjectType | targetIndex, | |
const XMLCh * | targetURI, | |||
const XMLCh * | targetType, | |||
const DynamicContext * | context | |||
) | const [protected, virtual] |
Reimplemented from AnyAtomicType.
virtual Numeric::Ptr Numeric::ceiling | ( | const DynamicContext * | context | ) | const [pure virtual] |
Returns the ceiling of this Numeric.
Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.
static void Numeric::checkDoubleLimits | ( | Numeric::State & | state, | |
MAPM & | value | |||
) | [static] |
static void Numeric::checkFloatLimits | ( | Numeric::State & | state, | |
MAPM & | value | |||
) | [static] |
virtual int Numeric::compare | ( | const Numeric::Ptr & | other, | |
const DynamicContext * | context | |||
) | const [virtual] |
Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.
virtual Numeric::Ptr Numeric::divide | ( | const Numeric::Ptr & | other, | |
const DynamicContext * | context | |||
) | const [pure virtual] |
Returns a Numeric object which is the quotient of this and other.
Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.
virtual bool Numeric::equals | ( | const AnyAtomicType::Ptr & | target, | |
const DynamicContext * | context | |||
) | const [virtual] |
Implements AnyAtomicType.
virtual Numeric::Ptr Numeric::floor | ( | const DynamicContext * | context | ) | const [pure virtual] |
Returns the floor of this Numeric.
Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.
virtual AnyAtomicType::AtomicObjectType Numeric::getPrimitiveTypeIndex | ( | ) | const [pure virtual] |
Implements AnyAtomicType.
Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.
virtual const XMLCh* Numeric::getPrimitiveTypeName | ( | ) | const [pure virtual] |
Implements AnyAtomicType.
Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.
virtual State Numeric::getState | ( | ) | const [pure virtual] |
Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.
virtual const XMLCh* Numeric::getTypeName | ( | ) | const [pure virtual] |
Implements AnyAtomicType.
Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.
virtual const XMLCh* Numeric::getTypeURI | ( | ) | const [pure virtual] |
Implements AnyAtomicType.
Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.
virtual bool Numeric::greaterThan | ( | const Numeric::Ptr & | other, | |
const DynamicContext * | context | |||
) | const [virtual] |
Returns true if this is greater than other, false otherwise.
virtual Numeric::Ptr Numeric::invert | ( | const DynamicContext * | context | ) | const [pure virtual] |
Returns the Additive inverse of this Numeric.
Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.
virtual bool Numeric::isInfinite | ( | ) | const [pure virtual] |
Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.
virtual bool Numeric::isNaN | ( | ) | const [pure virtual] |
Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.
virtual bool Numeric::isNegative | ( | ) | const [pure virtual] |
Is this Numeric negative?
Implemented in ATDecimalOrDerived, and ATFloatOrDerived.
virtual bool Numeric::isNumericValue | ( | ) | const [inline, virtual] |
Reimplemented from AnyAtomicType.
virtual bool Numeric::isPositive | ( | ) | const [pure virtual] |
Is this Numeric positive?
Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.
virtual bool Numeric::isZero | ( | ) | const [pure virtual] |
Does this Numeric have value 0?
Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.
virtual bool Numeric::lessThan | ( | const Numeric::Ptr & | other, | |
const DynamicContext * | context | |||
) | const [virtual] |
Returns true if this is less than other, false otherwise.
virtual Numeric::Ptr Numeric::mod | ( | const Numeric::Ptr & | other, | |
const DynamicContext * | context | |||
) | const [pure virtual] |
Returns the arithmetic product of its operands as a Numeric.
Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.
virtual Numeric::Ptr Numeric::multiply | ( | const Numeric::Ptr & | other, | |
const DynamicContext * | context | |||
) | const [pure virtual] |
Returns a Numeric object which is the product of this and other.
Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.
virtual Numeric::Ptr Numeric::promoteTypeIfApplicable | ( | AnyAtomicType::AtomicObjectType | typeIndex, | |
const DynamicContext * | context | |||
) | const [pure virtual] |
Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.
virtual Numeric::Ptr Numeric::round | ( | const DynamicContext * | context | ) | const [pure virtual] |
Rounds this Numeric.
Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.
virtual Numeric::Ptr Numeric::roundHalfToEven | ( | const Numeric::Ptr & | precision, | |
const DynamicContext * | context | |||
) | const [pure virtual] |
Rounds this Numeric to the given precision, and rounds a half to even.
Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.
virtual Numeric::Ptr Numeric::subtract | ( | const Numeric::Ptr & | other, | |
const DynamicContext * | context | |||
) | const [pure virtual] |
Returns a Numeric object which is the difference of this and other.
Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.
const XMLCh Numeric::INF_string[] [static] |
const XMLCh Numeric::NAN_string[] [static] |
const XMLCh Numeric::NaN_string[] [static] |
const XMLCh Numeric::NegINF_string[] [static] |
const XMLCh Numeric::NegZero_string[] [static] |
const XMLCh Numeric::PosZero_string[] [static] |