Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

ComPackSignedExpFloat Class Reference

#include <ComPackSignedExpFloat.h>

Inheritance diagram for ComPackSignedExpFloat:

ComPackBase< double > ComPackBase< double > ComPackBaseBase ComPackBaseBase ComPackBaseBase ComPackBaseBase List of all members.

Public Types

enum  StatusCode {
  TAG_OK, TAG_BAD, TAG_RANGE_ERROR, TAG_VAL_ROUND_DOWN,
  TAG_VAL_ROUND_UP
}
enum  StatusCode {
  TAG_OK, TAG_BAD, TAG_RANGE_ERROR, TAG_VAL_ROUND_DOWN,
  TAG_VAL_ROUND_UP
}

Public Member Functions

d_ULong bitMask () const
d_ULong bitMask () const
d_ULong bitRange () const
d_ULong bitRange () const
 ComPackSignedExpFloat (unsigned nbits, unsigned maxexponent, double maxval, bool invert=false, bool center=false)
 ComPackSignedExpFloat (unsigned nbits, unsigned maxexponent, double maxval, bool invert=false, bool center=false)
virtual const double & getMaxVal () const
virtual const double & getMaxVal () const
virtual const double & getMinVal () const
virtual const double & getMinVal () const
virtual const double & getRange () const
virtual const double & getRange () const
virtual StatusCode pack (const double, d_ULong &) const
virtual StatusCode pack (const double, d_ULong &) const
void print (std::ostream &s=std::cout) const
void print (std::ostream &s=std::cout) const
virtual StatusCode unpack (const d_ULong, double &) const
virtual StatusCode unpack (const d_ULong, double &) const
virtual ~ComPackSignedExpFloat ()
virtual ~ComPackSignedExpFloat ()

Protected Attributes

d_ULong _bitMask
d_ULong _bitRange
double _maxVal
double _minVal
double _valRange

Private Attributes

ComPackExpFloat _packer
unsigned _signbit
unsigned _signmask

Member Enumeration Documentation

enum ComPackBaseBase::StatusCode [inherited]
 

Enumeration values:
TAG_OK 
TAG_BAD 
TAG_RANGE_ERROR 
TAG_VAL_ROUND_DOWN 
TAG_VAL_ROUND_UP 
00035                   {
00036     TAG_OK, TAG_BAD, TAG_RANGE_ERROR, TAG_VAL_ROUND_DOWN, TAG_VAL_ROUND_UP 
00037   };

enum ComPackBaseBase::StatusCode [inherited]
 

Enumeration values:
TAG_OK 
TAG_BAD 
TAG_RANGE_ERROR 
TAG_VAL_ROUND_DOWN 
TAG_VAL_ROUND_UP 
00035                   {
00036     TAG_OK, TAG_BAD, TAG_RANGE_ERROR, TAG_VAL_ROUND_DOWN, TAG_VAL_ROUND_UP 
00037   };


Constructor & Destructor Documentation

ComPackSignedExpFloat::ComPackSignedExpFloat unsigned  nbits,
unsigned  maxexponent,
double  maxval,
bool  invert = false,
bool  center = false
 

00034                                                           :
00035   ComPackBase<double>(-maxval,maxval,nbits),
00036   _packer(nbits-1,maxexponent,invert?maxval:0.0,
00037           invert?0.0:maxval, center),
00038   _signbit(1<<nbits-1),_signmask(~(1<<nbits-1))
00039 {
00040   assert(maxval>0.0);
00041 }

ComPackSignedExpFloat::~ComPackSignedExpFloat  )  [virtual]
 

00044 {;}

ComPackSignedExpFloat::ComPackSignedExpFloat unsigned  nbits,
unsigned  maxexponent,
double  maxval,
bool  invert = false,
bool  center = false
 

virtual ComPackSignedExpFloat::~ComPackSignedExpFloat  )  [virtual]
 


Member Function Documentation

d_ULong ComPackBase< double >::bitMask  )  const [inline, inherited]
 

00075 { return _bitMask; }

d_ULong ComPackBase< double >::bitMask  )  const [inline, inherited]
 

00075 { return _bitMask; }

d_ULong ComPackBase< double >::bitRange  )  const [inline, inherited]
 

00074 { return _bitRange; }

d_ULong ComPackBase< double >::bitRange  )  const [inline, inherited]
 

00074 { return _bitRange; }

virtual const double & ComPackBase< double >::getMaxVal  )  const [inline, virtual, inherited]
 

00071 { return _maxVal;};

virtual const double & ComPackBase< double >::getMaxVal  )  const [inline, virtual, inherited]
 

00071 { return _maxVal;};

virtual const double & ComPackBase< double >::getMinVal  )  const [inline, virtual, inherited]
 

00070 { return _minVal;};

virtual const double & ComPackBase< double >::getMinVal  )  const [inline, virtual, inherited]
 

00070 { return _minVal;};

virtual const double & ComPackBase< double >::getRange  )  const [inline, virtual, inherited]
 

00072 { return _valRange;};

virtual const double & ComPackBase< double >::getRange  )  const [inline, virtual, inherited]
 

00072 { return _valRange;};

virtual StatusCode ComPackSignedExpFloat::pack const   double,
d_ULong
const [virtual]
 

Implements ComPackBase< double >.

ComPackBase< double >::StatusCode ComPackSignedExpFloat::pack const   double,
d_ULong
const [virtual]
 

Implements ComPackBase< double >.

00047                                                                          {
00048 // first, pack the absolute value
00049   ComPackBase<double>::StatusCode retval =
00050     _packer.pack(fabs(value),packdata);
00051   if(retval != TAG_BAD){
00052     if(value>0)
00053       packdata &= _signmask;
00054     else
00055       packdata |= _signbit;
00056   }
00057   return retval;
00058 }

void ComPackSignedExpFloat::print std::ostream s = std::cout  )  const
 

void ComPackSignedExpFloat::print std::ostream s = std::cout  )  const
 

00072                                               {
00073   os << "Signed exponential packer using exponential packer as follows:"<<endl;
00074   _packer.print(os);
00075 }

virtual StatusCode ComPackSignedExpFloat::unpack const   d_ULong,
double & 
const [virtual]
 

Implements ComPackBase< double >.

ComPackBase< double >::StatusCode ComPackSignedExpFloat::unpack const   d_ULong,
double & 
const [virtual]
 

Implements ComPackBase< double >.

00061                                                                            {
00062   ComPackBase<double>::StatusCode retval =
00063     _packer.unpack(packdata,value);
00064   if (value < 0)
00065     value = 0;
00066   else if(packdata&_signbit)
00067     value *= -1.0;
00068   return retval;
00069 }


Member Data Documentation

d_ULong ComPackBase< double >::_bitMask [protected, inherited]
 

d_ULong ComPackBase< double >::_bitRange [protected, inherited]
 

double ComPackBase< double >::_maxVal [protected, inherited]
 

double ComPackBase< double >::_minVal [protected, inherited]
 

ComPackExpFloat ComPackSignedExpFloat::_packer [private]
 

unsigned ComPackSignedExpFloat::_signbit [private]
 

unsigned ComPackSignedExpFloat::_signmask [private]
 

double ComPackBase< double >::_valRange [protected, inherited]
 


The documentation for this class was generated from the following files:
Generated on Wed Feb 2 15:56:30 2011 for BOSS6.5.5 by  doxygen 1.3.9.1