# Numeric Class Reference

`#include <Numeric.hpp>`

Inheritance diagram for Numeric:

[legend]
List of all members.

## Public Types

typedef RefCountPointer< const Numeric > | Ptr
enum | State { NEG_INF = 0, NEG_NUM = 1, NUM = 2, INF = 3, NaN = 4 }

## 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 (const XMLCh *typeURI, const XMLCh *typeName, 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 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

## Member Typedef Documentation

typedef RefCountPointer<const Numeric> Numeric::Ptr

| Reimplemented from AnyAtomicType. Reimplemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

## Member Enumeration Documentation

enum Numeric::State

Enumerator:

  NEG_INF |
  NEG_NUM |
  NUM |
  INF |
  NaN |

## Member Function Documentation

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]`

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 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]`

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 | ( | const XMLCh * | typeURI,
|  | const XMLCh * | typeName,
|  | 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.

## Member Data Documentation

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]`

The documentation for this class was generated from the following file:

- Numeric.hpp