TRealX Class Reference
A class encapsulating an extended precision real value.
This class provides 64 bit precision and a dynamic range of approximately 1E-9863 to 1E+9863. All member functions are optimized for speed.
Constructor & Destructor Documentation
TRealX()
Constructs a default extended precision object.
This sets the value to zero.
TRealX(TInt)
Constructs an extended precision object from a signed integer value.
TRealX(TUint)
IMPORT_C | TRealX | ( | TUint | aInt | ) | |
Constructs an extended precision object from an unsigned integer value.
TRealX(TUint, TUint, TUint)
Constructs an extended precision object from an explicit exponent and a 64 bit mantissa.
Parameters
TUint aExp | |
TUint aMantHi | The high order 32 bits of the 64 bit mantissa |
TUint aMantLo | The low order 32 bits of the 64 bit mantissa |
TRealX(const TInt64 &)
IMPORT_C | TRealX | ( | const TInt64 & | aInt | ) | |
Constructs an extended precision object from a 64 bit integer.
TRealX(TReal32)
Constructs an extended precision object from a single precision floating point number.
Parameters
TReal32 aReal | The single precision floating point value. |
TRealX(TReal64)
Constructs an extended precision object from a double precision floating point number.
Parameters
TReal64 aReal | The double precision floating point value. |
Member Functions Documentation
Add(TRealX &, const TRealX &)
Adds an extended precision value to this extended precision number.
Parameters
TRealX & aResult | On return, a reference to an extended precision object containing the result of the operation. |
const TRealX & aVal | The extended precision value to be added. |
AddEq(const TRealX &)
Adds an extended precision value to this extended precision number.
Parameters
const TRealX & aVal | The extended precision value to be added. |
Div(TRealX &, const TRealX &)
Divides this extended precision number by an extended precision value.
Parameters
TRealX & aResult | On return, a reference to an extended precision object containing the result of the operation. |
const TRealX & aVal | The extended precision value to be used as the divisor. |
DivEq(const TRealX &)
Divides this extended precision number by an extended precision value.
Parameters
const TRealX & aVal | The extended precision value to be used as the divisor. |
GetTReal(TReal32 &)
Extracts the extended precision value as a single precision floating point value.
Parameters
TReal32 & aVal | A reference to a single precision object which contains the result of the operation. |
GetTReal(TReal64 &)
Extracts the extended precision value as a double precision floating point value.
Parameters
TReal64 & aVal | A reference to a double precision object which contains the result of the operation. |
IsFinite()
IMPORT_C TBool | IsFinite | ( | ) | const |
Determines whether the extended precision value has a finite value.
IsInfinite()
IMPORT_C TBool | IsInfinite | ( | ) | const |
Determines whether the extended precision value has a finite value.
IsNaN()
IMPORT_C TBool | IsNaN | ( | ) | const |
Determines whether the extended precision value is 'not a number'.
IsZero()
IMPORT_C TBool | IsZero | ( | ) | const |
Determines whether the extended precision value is zero.
Mod(TRealX &, const TRealX &)
Modulo-divides this extended precision number by an extended precision value.
Parameters
TRealX & aResult | On return, a reference to an extended precision object containing the result of the operation. |
const TRealX & aVal | The extended precision value to be used as the divisor. |
ModEq(const TRealX &)
Modulo-divides this extended precision number by an extended precision value.
Parameters
const TRealX & aVal | The extended precision value to be used as the divisor. |
Mult(TRealX &, const TRealX &)
Multiplies this extended precision number by an extended precision value.
Parameters
TRealX & aResult | On return, a reference to an extended precision object containing the result of the operation. |
const TRealX & aVal | The extended precision value to be used as the multiplier. |
MultEq(const TRealX &)
Multiplies this extended precision number by an extended precision value.
Parameters
const TRealX & aVal | The extended precision value to be used as the multiplier. |
Set(TInt)
Gives this extended precision object a new value taken from a signed integer.
Set(TUint)
Gives this extended precision object a new value taken from an unsigned integer.
Set(const TInt64 &)
Gives this extended precision object a new value taken from a 64 bit integer.
Set(TReal32)
Gives this extended precision object a new value taken from a single precision floating point number.
Parameters
TReal32 aReal | The single precision floating point value. |
Set(TReal64)
Gives this extended precision object a new value taken from a double precision floating point number.
Parameters
TReal64 aReal | The double precision floating point value. |
SetInfinite(TBool)
IMPORT_C void | SetInfinite | ( | TBool | aNegative | ) | |
Sets the value of this extended precision object to infinity.
Parameters
TBool aNegative | ETrue, the value is a negative zero; EFalse, the value is a positive zero. |
SetNaN()
Sets the value of this extended precision object to 'not a number'.
SetZero(TBool)
IMPORT_C void | SetZero | ( | TBool | aNegative = EFalse | ) | |
Sets the value of this extended precision object to zero.
Parameters
TBool aNegative = EFalse | ETrue, the value is a negative zero; EFalse, the value is a positive zero, this is the default. |
Sub(TRealX &, const TRealX &)
Subtracts an extended precision value from this extended precision number.
Parameters
TRealX & aResult | On return, a reference to an extended precision object containing the result of the operation. |
const TRealX & aVal | The extended precision value to be subtracted. |
SubEq(const TRealX &)
Subtracts an extended precision value from this extended precision number.
Parameters
const TRealX & aVal | The extended precision value to be subtracted. |
operator TInt()
IMPORT_C | operator TInt | ( | ) | const |
Gets the extended precision value as a signed integer value.
The operator returns:
1. zero , if the extended precision value is not a number
2. 0x7FFFFFFF, if the value is positive and too big to fit into a TInt.
3. 0x80000000, if the value is negative and too big to fit into a TInt.
operator TInt64()
IMPORT_C | operator TInt64 | ( | ) | const |
Returns the extended precision value as a 64 bit integer value.
The operator returns:
1. zero, if the extended precision value is not a number
2. 0x7FFFFFFF FFFFFFFF, if the value is positive and too big to fit into a TInt64
3. 0x80000000 00000000, if the value is negative and too big to fit into a TInt.
operator TReal32()
IMPORT_C | operator TReal32 | ( | ) | const |
Returns the extended precision value as a single precision floating point value.
operator TReal64()
IMPORT_C | operator TReal64 | ( | ) | const |
Returns the extended precision value as a double precision floating point value.
operator TUint()
IMPORT_C | operator TUint | ( | ) | const |
Returns the extended precision value as an unsigned signed integer value.
The operator returns:
1. zero, if the extended precision value is not a number
2. 0xFFFFFFFF, if the value is positive and too big to fit into a TUint.
3. zero, if the value is negative and too big to fit into a TUint.
operator!=(const TRealX &)
Compares this extended precision number for in-equality with another.
Parameters
const TRealX & aVal | A reference to the extended precision value to be compared. |
operator%(const TRealX &)
Modulo-divides this extended precision number by an extended precision value.
-
panic
- MATHX KErrTotalLossOfPrecision if precision is lost.
-
panic
- MATHX KErrUnderflow if the operation results in underflow.
Parameters
const TRealX & aVal | The extended precision value to be used as the divisor. |
operator%=(const TRealX &)
Modulo-divides this extended precision number by an extended precision value.
-
panic
- MATHX KErrTotalLossOfPrecision panic if precision is lost.
-
panic
- MATHX KErrUnderflow if the operation results in underflow.
Parameters
const TRealX & aVal | The extended precision value to be used as the divisor. |
operator*(const TRealX &)
Multiplies this extended precision number by an extended precision value.
-
panic
- MATHX KErrOverflow if the operation results in overflow.
-
panic
- MATHX KErrUnderflow if the operation results in underflow.
Parameters
const TRealX & aVal | The extended precision value to be used as the multiplier. |
operator*=(const TRealX &)
Multiplies this extended precision number by an extended precision value.
-
panic
- MATHX KErrOverflow if the operation results in overflow.
-
panic
- MATHX KErrUnderflow if the operation results in underflow.
Parameters
const TRealX & aVal | The extended precision value to be subtracted. |
operator+()
IMPORT_C TRealX | operator+ | ( | ) | const |
Returns this extended precision number unchanged.
Note that this may also be referred to as a unary plus operator.
operator+(const TRealX &)
Adds an extended precision value to this extended precision number.
-
panic
- MATHX KErrOverflow if the operation results in overflow.
-
panic
- MATHX KErrUnderflow if the operation results in underflow.
Parameters
const TRealX & aVal | The extended precision value to be added. |
operator++()
Increments this extended precision number by one, and then returns a reference to it.
This is also referred to as a prefix operator.
-
panic
- MATHX KErrOverflow if the operation results in overflow.
-
panic
- MATHX KErrUnderflow if the operation results in underflow.
operator++(TInt)
Returns this extended precision number before incrementing it by one.
This is also referred to as a postfix operator.
-
panic
- MATHX KErrOverflow if the operation results in overflow.
-
panic
- MATHX KErrUnderflow if the operation results in underflow.
operator+=(const TRealX &)
Adds an extended precision value to this extended precision number.
-
panic
- MATHX KErrOverflow if the operation results in overflow.
-
panic
- MATHX KErrUnderflow if the operation results in underflow.
Parameters
const TRealX & aVal | The extended precision value to be added. |
operator-()
IMPORT_C TRealX | operator- | ( | ) | const |
Negates this extended precision number.
This may also be referred to as a unary minus operator.
operator-(const TRealX &)
Subtracts an extended precision value from this extended precision number.
-
panic
- MATHX KErrOverflow if the operation results in overflow.
-
panic
- MATHX KErrUnderflow if the operation results in underflow.
Parameters
const TRealX & aVal | The extended precision value to be subtracted. |
operator--()
Decrements this extended precision number by one, and then returns a reference to it.
This is also referred to as a prefix operator.
-
panic
- MATHX KErrOverflow if the operation results in overflow.
-
panic
- MATHX KErrUnderflow if the operation results in underflow.
operator--(TInt)
Returns this extended precision number before decrementing it by one.
This is also referred to as a postfix operator.
-
panic
- MATHX KErrOverflow if the operation results in overflow.
-
panic
- MATHX KErrUnderflow if the operation results in underflow.
operator-=(const TRealX &)
Subtracts an extended precision value from this extended precision number.
-
panic
- MATHX KErrOverflow if the operation results in overflow.
-
panic
- MATHX KErrUnderflow if the operation results in underflow.
Parameters
const TRealX & aVal | The extended precision value to be subtracted. |
operator/(const TRealX &)
Divides this extended precision number by an extended precision value.
-
panic
- MATHX KErrOverflow if the operation results in overflow.
-
panic
- MATHX KErrUnderflow if the operation results in underflow.
-
panic
- MATHX KErrDivideByZero if the divisor is zero.
Parameters
const TRealX & aVal | The extended precision value to be used as the divisor. |
operator/=(const TRealX &)
Divides this extended precision number by an extended precision value.
-
panic
- MATHX KErrOverflow if the operation results in overflow.
-
panic
- MATHX KErrUnderflow if the operation results in underflow.
-
panic
- MATHX KErrDivideByZero if the divisor is zero.
Parameters
const TRealX & aVal | The extended precision value to be used as the divisor. |
operator<(const TRealX &)
Compares this extended precision number for being less than another.
Parameters
const TRealX & aVal | A reference to the extended precision value to be compared. |
operator<=(const TRealX &)
Compares this extended precision number for being less than or equal to another.
Parameters
const TRealX & aVal | A reference to the extended precision value to be compared. |
operator=(TInt)
Assigns the specified signed integer value to this extended precision object.
operator=(TUint)
Assigns the specified unsigned integer value to this extended precision object.
operator=(const TInt64 &)
Assigns the specified 64 bit integer value to this extended precision object.
operator=(TReal32)
Assigns the specified single precision floating point number to this extended precision object.
Parameters
TReal32 aReal | The single precision floating point value. |
operator=(TReal64)
Assigns the specified double precision floating point number to this extended precision object.
Parameters
TReal64 aReal | The double precision floating point value. |
operator==(const TRealX &)
Compares this extended precision number for equality with another.
Parameters
const TRealX & aVal | A reference to the extended precision value to be compared. |
operator>(const TRealX &)
Compares this extended precision number for being greater than another.
Parameters
const TRealX & aVal | A reference to the extended precision value to be compared. |
operator>=(const TRealX &)
Compares this extended precision number for being greater than or equal to another.
Parameters
const TRealX & aVal | A reference to the extended precision value to be compared. |
Member Enumerations Documentation
Enum TRealXOrder
Enumerators
ELessThan = 1 | |
EEqual = 2 | |
EGreaterThan = 4 | |
EUnordered = 8 | |
Member Data Documentation
TUint16
iExp
Exponent: biased by 32767, iExp=0 => zero, +65535 => infinity or NaN
TUint8
iFlag
Flags: 0 for exact, 1 for rounded down, 2 for rounded up
TInt8
iSign
The sign: 0 for +, 1 for -
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.