Main Page   Packages   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

C:/temp/src/j2k/Beta/Math/nb/MCNumber.hpp File Reference

Go to the source code of this file.

Defines

#define MC_Number_Verify(cast, ZERO)
#define MC_Number_Operators1(Number, cast)
#define MC_Number_Operators2(Number, cast, number)

Functions

BOOL isEqualTo (const Number &l, const Number &r)
BOOL isLessThan (const Number &l, const Number &r)
BOOL isBiggerThan (const Number &l, const Number &r)
BOOL operator== (const Number &l, const Number &r)
BOOL operator!= (const Number &l, const Number &r)
BOOL operator< (const Number &l, const Number &r)
BOOL operator<= (const Number &l, const Number &r)
BOOL operator> (const Number &l, const Number &r)
BOOL operator>= (const Number &l, const Number &r)
Number add (const Number &l, const Number &r)
Number sub (const Number &l, const Number &r)
Number mult (const Number &l, const Number &r)
Number div (const Number &l, const Number &r)
Number operator+ (const Number &l, const Number &r)
Number operator- (const Number &l, const Number &r)
Number operator * (const Number &l, const Number &r)
Number operator/ (const Number &l, const Number &r)
const Number & operator= (const Number &N)
Number operator! ()
Number operator- ()
Number operator-- ()
Number operator-- (int)
Number operator++ ()
Number operator++ (int)
BOOL isEqualTo (const Number &l, const number &n)
BOOL isLessThan (const Number &l, const number &n)
BOOL isBiggerThan (const Number &l, const number &n)
BOOL operator== (const Number &l, const number n)
BOOL operator!= (const Number &l, const number n)
BOOL operator< (const Number &l, const number n)
BOOL operator<= (const Number &l, const number n)
BOOL operator> (const Number &l, const number n)
BOOL operator>= (const Number &l, const number n)
BOOL operator== (const number n, const Number &r)
BOOL operator!= (const number n, const Number &r)
BOOL operator< (const number n, const Number &r)
BOOL operator<= (const number n, const Number &r)
BOOL operator> (const number n, const Number &r)
BOOL operator>= (const number n, const Number &r)
Number add (const Number &l, const number n)
Number sub (const Number &l, const number n)
Number sub (const number n, const Number &r)
Number mult (const Number &l, const number n)
Number div (const Number &l, const number n)
Number div (const number n, const Number &r)
Number operator+ (number n, const Number &r)
Number operator- (number n, const Number &r)
Number operator * (number n, const Number &r)
Number operator/ (number n, const Number &r)
Number operator+ (const Number &l, const number n)
Number operator- (const Number &l, const number n)
Number operator * (const Number &l, const number n)
Number operator/ (const Number &l, const number n)
const Number & operator= (number n)
 operator number () const


Define Documentation

#define MC_Number_Operators1 Number,
cast   
 

Definition at line 29 of file MCNumber.hpp.

#define MC_Number_Operators2 Number,
cast,
number   
 

Definition at line 149 of file MCNumber.hpp.

#define MC_Number_Verify cast,
ZERO   
 

Value:

inline void verify() {                                                \
     if ( s != Valid ) return;                                          \
     if ( temp > ZERO ) {  status = Pos;  }                             \
     if ( temp < ZERO ) {  status = Neg;  }                             \
     status = Zero;                                                     \
  }                                                                     \
                                                                        \
  inline MathState verify( cast n ) {                                   \
     if ( n > ZERO ) return Pos;                                        \
     if ( n < ZERO ) return Neg;                                        \
     return  Zero;                                                      \
  }                                                                     \

Definition at line 14 of file MCNumber.hpp.


Function Documentation

friend Number add const Number &    l,
const number    n
 

Definition at line 221 of file MCNumber.hpp.

00221                                                        {                \
00222     cast v = (cast)n;                                                   \
00223     MathState s = MathStateAdd[ (int)l.state ][ (int)verify(v) ];       \
00224     return Number( l.value + v, s );                                    \
00225   }                                                                     \

friend Number add const Number &    l,
const Number &    r
 

Definition at line 74 of file MCNumber.hpp.

00074                                                         {               \
00075     MathState s = MathStateAdd[ (int)l.state ][ (int)r.state ];         \
00076     return Number( l.value + r.value, s );                              \
00077   }                                                                     \

friend Number div const number    n,
const Number &    r
 

Definition at line 252 of file MCNumber.hpp.

00252                                                        {                \
00253     cast v = (cast)n;                                                   \
00254     MathState s = MathStateDiv[ (int)verify(v) ][ (int)r.state ];       \
00255     if ( s != Valid ) return Number( v, s );                            \
00256     return Number( v / r.value, s );                                    \
00257   }                                                                     \

friend Number div const Number &    l,
const number    n
 

Definition at line 245 of file MCNumber.hpp.

00245                                                        {                \
00246     cast v = (cast)n;                                                   \
00247     MathState s = MathStateDiv[ (int)l.state ][ (int)verify(v) ];       \
00248     if ( s != Valid ) return Number( l.value, s );                      \
00249     return Number( l.value / v, s );                                    \
00250   }                                                                     \

friend Number div const Number &    l,
const Number &    r
 

Definition at line 89 of file MCNumber.hpp.

00089                                                         {               \
00090     MathState s = MathStateDiv[ (int)l.state ][ (int)r.state ];         \
00091     if ( s != Valid ) return Number( l.value, s );                      \
00092     return Number( l.value / r.value, s );                              \
00093   }                                                                     \

friend BOOL isBiggerThan const Number &    l,
const number   n
 

Definition at line 165 of file MCNumber.hpp.

00165                                                                {        \
00166     cast v = (cast)n;                                                   \
00167     int temp = MathStateBiggerThan[ (int)l.state ][ (int)verify(v) ];   \
00168     if ( temp < 2 ) return (BOOL)temp;                                  \
00169     return (l.value > v );                                              \
00170   }                                                                     \

friend BOOL isBiggerThan const Number &    l,
const Number &    r
 

Definition at line 43 of file MCNumber.hpp.

00043                                                                {        \
00044     int temp = MathStateBiggerThan[ (int)l.state ][ (int)r.state ];     \
00045     if ( temp < 2 ) return (BOOL)temp;                                  \
00046     return (l.value >  r.value);                                        \
00047   }                                                                     \

friend BOOL isEqualTo const Number &    l,
const number   n
 

Definition at line 151 of file MCNumber.hpp.

00151                                                             {           \
00152     cast v = (cast)n;                                                   \
00153     int temp = MathStateEqualTo[ (int)l.state ][ (int)verify(v) ];      \
00154     if ( temp < 2 ) return (BOOL)temp;                                  \
00155     return ( l.value == v );                                            \
00156   }                                                                     \

friend BOOL isEqualTo const Number &    l,
const Number &    r
 

Definition at line 31 of file MCNumber.hpp.

00031                                                             {           \
00032     int temp = MathStateEqualTo[ (int)l.state ][ (int)r.state ];        \
00033     if ( temp < 2 ) return (BOOL)temp;                                  \
00034     return ( l.value == r.value );                                      \
00035   }                                                                     \

friend BOOL isLessThan const Number &    l,
const number   n
 

Definition at line 158 of file MCNumber.hpp.

00158                                                              {          \
00159     cast v = (cast)n;                                                   \
00160     int temp = MathStateLessThan[ (int)l.state ][ (int)verify(v) ];     \
00161     if ( temp < 2 ) return (BOOL)temp;                                  \
00162     return ( l.value < v );                                             \
00163   }                                                                     \

friend BOOL isLessThan const Number &    l,
const Number &    r
 

Definition at line 37 of file MCNumber.hpp.

00037                                                              {          \
00038     int temp = MathStateLessThan[ (int)l.state ][ (int)r.state ];       \
00039     if ( temp < 2 ) return (BOOL)temp;                                  \
00040     return (l.value <  r.value);                                        \
00041   }                                                                     \

friend Number mult const Number &    l,
const number    n
 

Definition at line 239 of file MCNumber.hpp.

00239                                                         {               \
00240     cast v = (cast)n;                                                   \
00241     MathState s = MathStateMult[ (int)l.state ][ (int)verify(v) ];      \
00242     return Number( l.value * v, s );                                    \
00243   }                                                                     \

friend Number mult const Number &    l,
const Number &    r
 

Definition at line 84 of file MCNumber.hpp.

00084                                                          {              \
00085     MathState s = MathStateMult[ (int)l.state ][ (int)r.state ];        \
00086     return Number( l.value * r.value, s );                              \
00087   }                                                                     \

friend Number operator * const Number &    l,
const number    n
[inline]
 

Definition at line 284 of file MCNumber.hpp.

00284                                                                     {   \
00285     return mult( l, n );                                                \
00286   }                                                                     \

friend Number operator * number    n,
const Number &    r
[inline]
 

Definition at line 267 of file MCNumber.hpp.

00267                                                               {         \
00268     return mult( r, n );                                                \
00269   }                                                                     \

friend Number operator * const Number &    l,
const Number &    r
[inline]
 

Definition at line 103 of file MCNumber.hpp.

00103                                                                      {  \
00104     return mult( l, r );                                                \
00105   }                                                                     \

operator number   const [inline]
 

Definition at line 299 of file MCNumber.hpp.

00299 { return (number)value; }              \

Number operator!   [inline]
 

Definition at line 118 of file MCNumber.hpp.

00118                             {                                           \
00119     return Number( !value, status );                                    \
00120   }                                                                     \

friend BOOL operator!= const number    n,
const Number &    r
[inline]
 

Definition at line 200 of file MCNumber.hpp.

00200                                                                    {    \
00201     return !isEqualTo( r, n );                                          \
00202   }                                                                     \ 

friend BOOL operator!= const Number &    l,
const number    n
[inline]
 

Definition at line 176 of file MCNumber.hpp.

00176                                                                    {    \
00177     return !isEqualTo( l, n );                                          \
00178   }                                                                     \

friend BOOL operator!= const Number &    l,
const Number &    r
[inline]
 

Definition at line 53 of file MCNumber.hpp.

00053                                                                     {   \
00054     return  !isEqualTo( l, r );                                         \
00055   }                                                                     \

friend Number operator+ const Number &    l,
const number    n
[inline]
 

Definition at line 276 of file MCNumber.hpp.

00276                                                                     {   \
00277     return add( l, n );                                                 \
00278   }                                                                     \

friend Number operator+ number    n,
const Number &    r
[inline]
 

Definition at line 259 of file MCNumber.hpp.

00259                                                               {         \
00260     return add( r, n );                                                 \
00261   }                                                                     \

friend Number operator+ const Number &    l,
const Number &    r
[inline]
 

Definition at line 95 of file MCNumber.hpp.

00095                                                                      {  \
00096     return add( l, r );                                                 \
00097   }                                                                     \

Number operator++ int    [inline]
 

Definition at line 143 of file MCNumber.hpp.

00143                                   {                                     \
00144     value++;                                                            \
00145     return *this;                                                       \
00146   }                                                                     \

Number operator++   [inline]
 

Definition at line 138 of file MCNumber.hpp.

00138                              {                                          \
00139     ++value;                                                            \
00140     return *this;                                                       \
00141   }                                                                     \

friend Number operator- const Number &    l,
const number    n
[inline]
 

Definition at line 280 of file MCNumber.hpp.

00280                                                                     {   \
00281     return sub( l, n );                                                 \
00282   }                                                                     \

friend Number operator- number    n,
const Number &    r
[inline]
 

Definition at line 263 of file MCNumber.hpp.

00263                                                               {         \
00264     return sub( n, r );                                                 \
00265   }                                                                     \

Number operator-   [inline]
 

Definition at line 122 of file MCNumber.hpp.

00122                             {                                           \
00123     if ( (int)status < 4 ) return Number( (-1) * value, Valid );        \
00124     return Number( (-1) * value, status );                              \
00125   }                                                                     \

friend Number operator- const Number &    l,
const Number &    r
[inline]
 

Definition at line 99 of file MCNumber.hpp.

00099                                                                      {  \
00100     return sub( l, r );                                                 \
00101   }                                                                     \

Number operator-- int    [inline]
 

Definition at line 133 of file MCNumber.hpp.

00133                                   {                                     \
00134     value--;                                                            \
00135     return *this;                                                       \
00136   }                                                                     \

Number operator--   [inline]
 

Definition at line 128 of file MCNumber.hpp.

00128                              {                                          \
00129     --value;                                                            \
00130     return *this;                                                       \
00131   }                                                                     \

friend Number operator/ const Number &    l,
const number    n
[inline]
 

Definition at line 288 of file MCNumber.hpp.

00288                                                                     {   \
00289     return div( l, n );                                                 \
00290   }                                                                     \

friend Number operator/ number    n,
const Number &    r
[inline]
 

Definition at line 271 of file MCNumber.hpp.

00271                                                               {         \
00272     return div( n, r );                                                 \
00273   }                                                                     \

friend Number operator/ const Number &    l,
const Number &    r
[inline]
 

Definition at line 107 of file MCNumber.hpp.

00107                                                                      {  \
00108     return div( l, r );                                                 \
00109   }                                                                     \

friend BOOL operator< const number    n,
const Number &    r
[inline]
 

Definition at line 204 of file MCNumber.hpp.

00204                                                                    {    \
00205     return  isBiggerThan( r, n );                                       \
00206   }                                                                     \

friend BOOL operator< const Number &    l,
const number    n
[inline]
 

Definition at line 180 of file MCNumber.hpp.

00180                                                                    {    \
00181     return  isLessThan( l, n );                                         \
00182   }                                                                     \

friend BOOL operator< const Number &    l,
const Number &    r
[inline]
 

Definition at line 57 of file MCNumber.hpp.

00057                                                                     {   \
00058     return  isLessThan( l, r );                                         \
00059   }                                                                     \

friend BOOL operator<= const number    n,
const Number &    r
[inline]
 

Definition at line 208 of file MCNumber.hpp.

00208                                                                    {    \
00209     return ( isBiggerThan( r, n ) || isEqualTo( r, n ) );               \
00210   }                                                                     \

friend BOOL operator<= const Number &    l,
const number    n
[inline]
 

Definition at line 184 of file MCNumber.hpp.

00184                                                                    {    \
00185     return ( isLessThan( l, n ) || isEqualTo( l, n ) );                 \
00186   }                                                                     \

friend BOOL operator<= const Number &    l,
const Number &    r
[inline]
 

Definition at line 61 of file MCNumber.hpp.

00061                                                                     {   \
00062     return  ( isLessThan( l, r ) || isEqualTo( l, r ) );                \
00063   }                                                                     \

const Number& operator= number    n [inline]
 

Definition at line 293 of file MCNumber.hpp.

00293                                            {                            \
00294     value  = (cast)n;                                                   \
00295     status = verify( value );                                           \
00296     return *this;                                                       \
00297   }                                                                     \

const Number& operator= const Number &    N [inline]
 

Definition at line 112 of file MCNumber.hpp.

00112                                                    {                    \
00113     value  = N.value;                                                   \
00114     status = N.status;                                                  \
00115     return *this;                                                       \
00116   }                                                                     \

friend BOOL operator== const number    n,
const Number &    r
[inline]
 

Definition at line 196 of file MCNumber.hpp.

00196                                                                    {    \
00197     return  isEqualTo( r, n );                                          \
00198   }                                                                     \

friend BOOL operator== const Number &    l,
const number    n
[inline]
 

Definition at line 172 of file MCNumber.hpp.

00172                                                                    {    \
00173     return  isEqualTo( l, n );                                          \
00174   }                                                                     \

friend BOOL operator== const Number &    l,
const Number &    r
[inline]
 

Definition at line 49 of file MCNumber.hpp.

00049                                                                     {   \
00050     return   isEqualTo( l, r );                                         \
00051   }                                                                     \

friend BOOL operator> const number    n,
const Number &    r
[inline]
 

Definition at line 212 of file MCNumber.hpp.

00212                                                                    {    \
00213     return  isLessThan( r, n );                                         \
00214   }                                                                     \

friend BOOL operator> const Number &    l,
const number    n
[inline]
 

Definition at line 188 of file MCNumber.hpp.

00188                                                                    {    \
00189     return  isBiggerThan( l, n );                                       \
00190   }                                                                     \

friend BOOL operator> const Number &    l,
const Number &    r
[inline]
 

Definition at line 65 of file MCNumber.hpp.

00065                                                                     {   \
00066     return  isBiggerThan( l, r );                                       \
00067   }                                                                     \

friend BOOL operator>= const number    n,
const Number &    r
[inline]
 

Definition at line 216 of file MCNumber.hpp.

00216                                                                    {    \
00217     return ( isLessThan( r, n ) || isEqualTo( r, n ) );                 \
00218   }                                                                     \

friend BOOL operator>= const Number &    l,
const number    n
[inline]
 

Definition at line 192 of file MCNumber.hpp.

00192                                                                    {    \
00193     return ( isBiggerThan( l, n ) || isEqualTo( l, n ) );               \
00194   }                                                                     \

friend BOOL operator>= const Number &    l,
const Number &    r
[inline]
 

Definition at line 69 of file MCNumber.hpp.

00069                                                                     {   \
00070     return  ( isBiggerThan( l, r ) || isEqualTo( l, r ) );              \
00071   }                                                                     \

friend Number sub const number    n,
const Number &    r
 

Definition at line 233 of file MCNumber.hpp.

00233                                                        {                \
00234     cast v = (cast)n;                                                   \
00235     MathState s = MathStateSub[ (int)verify(v) ][ (int)r.state ]        \
00236     return Number( v - r.value, s );                                    \
00237   }                                                                     \

friend Number sub const Number &    l,
const number    n
 

Definition at line 227 of file MCNumber.hpp.

00227                                                        {                \
00228     cast v = (cast)n;                                                   \
00229     MathState s = MathStateSub[ (int)l.state ][ (int)verify(v) ];       \
00230     return Number( l.value - v, s );                                    \
00231   }                                                                     \

friend Number sub const Number &    l,
const Number &    r
 

Definition at line 79 of file MCNumber.hpp.

00079                                                         {               \
00080     MathState s = MathStateSub[ (int)l.state ][ (int)r.state ];         \
00081     return Number( l.value - r.value, s );                              \
00082   }                                                                     \


Generated on Sun Oct 14 18:46:58 2001 for Standard J2K Library by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001