Main Page | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals

ExtReal Class Reference

#include <extreal.h>


Public Member Functions

ExtReal operator+ (const ExtReal &) const
ExtReal operator- (const ExtReal &) const
ExtReal operator * (const ExtReal &) const
ExtReal operator- () const
 ExtReal (Real v)
 ExtReal (const EXT_REAL_CODE &cx)
 ExtReal ()
Real Value () const
bool IsReal () const
EXT_REAL_CODE Code () const

Private Attributes

Real value
EXT_REAL_CODE c


Constructor & Destructor Documentation

ExtReal::ExtReal Real  v  )  [inline]
 

Definition at line 28 of file extreal.h.

References Finite.

00028 { c=Finite; value=v; }

ExtReal::ExtReal const EXT_REAL_CODE cx  )  [inline]
 

Definition at line 29 of file extreal.h.

00029 { c = cx; }

ExtReal::ExtReal  )  [inline]
 

Definition at line 30 of file extreal.h.

References Missing.

Referenced by operator *(), operator+(), and operator-().

00030 { c = Missing; }


Member Function Documentation

EXT_REAL_CODE ExtReal::Code  )  const [inline]
 

Definition at line 33 of file extreal.h.

References EXT_REAL_CODE.

00033 { return c; }

bool ExtReal::IsReal  )  const [inline]
 

Definition at line 32 of file extreal.h.

References Finite.

00032 { return c==Finite; }

ExtReal ExtReal::operator * const ExtReal  )  const
 

Definition at line 46 of file extreal.cpp.

References c, ExtReal(), Finite, Indefinite, Missing, PlusInfinity, and value.

00047 {
00048    if (c==Finite && er.c==Finite) return ExtReal(value*er.value);
00049    if (c==Missing || er.c==Missing) return ExtReal(Missing);
00050    if (c==Indefinite || er.c==Indefinite) return ExtReal(Indefinite);
00051    if (c==Finite)
00052    {
00053       if (value==0.0) return ExtReal(Indefinite);
00054       if (value>0.0) return er;
00055       return (-er);
00056    }
00057    if (er.c==Finite)
00058    {
00059       if (er.value==0.0) return ExtReal(Indefinite);
00060       if (er.value>0.0) return *this;
00061       return -(*this);
00062    }
00063    if (c==PlusInfinity) return er;
00064    return (-er);
00065 }

ExtReal ExtReal::operator+ const ExtReal  )  const
 

Definition at line 10 of file extreal.cpp.

References c, ExtReal(), Finite, Indefinite, MinusInfinity, Missing, PlusInfinity, and value.

00011 {
00012    if (c==Finite && er.c==Finite) return ExtReal(value+er.value);
00013    if (c==Missing || er.c==Missing) return ExtReal(Missing);
00014    if (c==Indefinite || er.c==Indefinite) return ExtReal(Indefinite);
00015    if (c==PlusInfinity)
00016    {
00017       if (er.c==MinusInfinity) return ExtReal(Indefinite);
00018       return *this;
00019    }
00020    if (c==MinusInfinity)
00021    {
00022       if (er.c==PlusInfinity) return ExtReal(Indefinite);
00023       return *this;
00024    }
00025    return er;
00026 }

ExtReal ExtReal::operator-  )  const
 

Definition at line 67 of file extreal.cpp.

References c, ExtReal(), Finite, Indefinite, MinusInfinity, Missing, PlusInfinity, and value.

00068 {
00069    switch (c)
00070    {
00071       case Finite:        return ExtReal(-value);
00072       case PlusInfinity:  return ExtReal(MinusInfinity);
00073       case MinusInfinity: return ExtReal(PlusInfinity);
00074       case Indefinite:    return ExtReal(Indefinite);
00075       case Missing:       return ExtReal(Missing);
00076    }
00077    return 0.0;
00078 }

ExtReal ExtReal::operator- const ExtReal  )  const
 

Definition at line 28 of file extreal.cpp.

References c, ExtReal(), Finite, Indefinite, MinusInfinity, Missing, PlusInfinity, and value.

00029 {
00030    if (c==Finite && er.c==Finite) return ExtReal(value-er.value);
00031    if (c==Missing || er.c==Missing) return ExtReal(Missing);
00032    if (c==Indefinite || er.c==Indefinite) return ExtReal(Indefinite);
00033    if (c==PlusInfinity)
00034    {
00035       if (er.c==PlusInfinity) return ExtReal(Indefinite);
00036       return *this;
00037    }
00038    if (c==MinusInfinity)
00039    {
00040       if (er.c==MinusInfinity) return ExtReal(Indefinite);
00041       return *this;
00042    }
00043    return er;
00044 }

Real ExtReal::Value  )  const [inline]
 

Definition at line 31 of file extreal.h.

References Real.

00031 { return value; }


Field Documentation

EXT_REAL_CODE ExtReal::c [private]
 

Definition at line 21 of file extreal.h.

Referenced by operator *(), operator+(), and operator-().

Real ExtReal::value [private]
 

Definition at line 20 of file extreal.h.

Referenced by operator *(), operator+(), and operator-().


The documentation for this class was generated from the following files:
Generated on Fri Dec 5 04:06:20 2003 for Borqueror by doxygen 1.3.3