BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
ComPackSignedExpFloat Class Reference

#include <ComPackSignedExpFloat.h>

Inheritance diagram for ComPackSignedExpFloat:

Public Member Functions

 ComPackSignedExpFloat (unsigned nbits, unsigned maxexponent, double maxval, bool invert=false, bool center=false)
virtual ~ComPackSignedExpFloat ()
virtual StatusCode pack (const double, d_ULong &) const
virtual StatusCode unpack (const d_ULong, double &) const
void print (std::ostream &s=std::cout) const
 ComPackSignedExpFloat (unsigned nbits, unsigned maxexponent, double maxval, bool invert=false, bool center=false)
virtual ~ComPackSignedExpFloat ()
virtual StatusCode pack (const double, d_ULong &) const
virtual StatusCode unpack (const d_ULong, double &) const
void print (std::ostream &s=std::cout) const
 ComPackSignedExpFloat (unsigned nbits, unsigned maxexponent, double maxval, bool invert=false, bool center=false)
virtual ~ComPackSignedExpFloat ()
virtual StatusCode pack (const double, d_ULong &) const
virtual StatusCode unpack (const d_ULong, double &) const
void print (std::ostream &s=std::cout) const
Public Member Functions inherited from ComPackBase< double >
 ComPackBase ()
virtual ~ComPackBase ()
virtual const double & getMinVal () const
virtual const double & getMaxVal () const
virtual const double & getRange () const
d_ULong bitRange () const
d_ULong bitMask () const
ComPackBaseoperator= (const ComPackBase &)

Additional Inherited Members

Public Types inherited from ComPackBaseBase
enum  StatusCode {
  TAG_OK , TAG_BAD , TAG_RANGE_ERROR , TAG_VAL_ROUND_DOWN ,
  TAG_VAL_ROUND_UP , TAG_OK , TAG_BAD , TAG_RANGE_ERROR ,
  TAG_VAL_ROUND_DOWN , TAG_VAL_ROUND_UP , 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 , TAG_OK , TAG_BAD , TAG_RANGE_ERROR ,
  TAG_VAL_ROUND_DOWN , TAG_VAL_ROUND_UP , 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 , TAG_OK , TAG_BAD , TAG_RANGE_ERROR ,
  TAG_VAL_ROUND_DOWN , TAG_VAL_ROUND_UP , TAG_OK , TAG_BAD ,
  TAG_RANGE_ERROR , TAG_VAL_ROUND_DOWN , TAG_VAL_ROUND_UP
}
Protected Types inherited from ComPackBase< double >
enum  
enum  
enum  
Protected Attributes inherited from ComPackBase< double >
double _minVal
double _maxVal
double _valRange
d_ULong _bitRange
d_ULong _bitMask

Detailed Description

Constructor & Destructor Documentation

◆ ComPackSignedExpFloat() [1/3]

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

Definition at line 30 of file ComPackSignedExpFloat.cxx.

32 : ComPackBase<double>( -maxval, maxval, nbits )
33 , _packer( nbits - 1, maxexponent, invert ? maxval : 0.0, invert ? 0.0 : maxval, center )
34 , _signbit( 1 << nbits - 1 )
35 , _signmask( ~( 1 << nbits - 1 ) ) {
36 assert( maxval > 0.0 );
37}

◆ ~ComPackSignedExpFloat() [1/3]

ComPackSignedExpFloat::~ComPackSignedExpFloat ( )
virtual

Definition at line 39 of file ComPackSignedExpFloat.cxx.

39{ ; }

◆ ComPackSignedExpFloat() [2/3]

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

◆ ~ComPackSignedExpFloat() [2/3]

virtual ComPackSignedExpFloat::~ComPackSignedExpFloat ( )
virtual

◆ ComPackSignedExpFloat() [3/3]

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

◆ ~ComPackSignedExpFloat() [3/3]

virtual ComPackSignedExpFloat::~ComPackSignedExpFloat ( )
virtual

Member Function Documentation

◆ pack() [1/3]

ComPackBase< double >::StatusCode ComPackSignedExpFloat::pack ( const double value,
d_ULong & packdata ) const
virtual

Implements ComPackBase< double >.

Definition at line 41 of file ComPackSignedExpFloat.cxx.

42 {
43 // first, pack the absolute value
44 ComPackBase<double>::StatusCode retval = _packer.pack( fabs( value ), packdata );
45 if ( retval != TAG_BAD )
46 {
47 if ( value > 0 ) packdata &= _signmask;
48 else packdata |= _signbit;
49 }
50 return retval;
51}

◆ pack() [2/3]

virtual StatusCode ComPackSignedExpFloat::pack ( const double ,
d_ULong &  ) const
virtual

Implements ComPackBase< double >.

◆ pack() [3/3]

virtual StatusCode ComPackSignedExpFloat::pack ( const double ,
d_ULong &  ) const
virtual

Implements ComPackBase< double >.

◆ print() [1/3]

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

◆ print() [2/3]

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

◆ print() [3/3]

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

◆ unpack() [1/3]

ComPackBase< double >::StatusCode ComPackSignedExpFloat::unpack ( const d_ULong packdata,
double & value ) const
virtual

Implements ComPackBase< double >.

Definition at line 53 of file ComPackSignedExpFloat.cxx.

54 {
55 ComPackBase<double>::StatusCode retval = _packer.unpack( packdata, value );
56 if ( value < 0 ) value = 0;
57 else if ( packdata & _signbit ) value *= -1.0;
58 return retval;
59}

◆ unpack() [2/3]

virtual StatusCode ComPackSignedExpFloat::unpack ( const d_ULong ,
double &  ) const
virtual

Implements ComPackBase< double >.

◆ unpack() [3/3]

virtual StatusCode ComPackSignedExpFloat::unpack ( const d_ULong ,
double &  ) const
virtual

Implements ComPackBase< double >.


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