Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

GammaCompress Class Reference

Gamma compressor. More...

#include <GammaCompress.hpp>

Inheritance diagram for GammaCompress:

Compress List of all members.

Public Methods

 GammaCompress ()
void compress (ostream &os, int n, int *a)
int decompress (istream &is, int *a)
int read (istream &is)
const char * type ()

Private Methods

void initBitMasks ()
int floorlog2 (double x)
int gamma_size (int x)
int gamma_encode (int x, int offset, vector< int > &bv)
int gamma_decode (int *y, int offset, vector< int > &bv)
int read_bits (istream &is, vector< int > &bv, int size)
void write_bits (ostream &os, vector< int > &bv)

Private Attributes

vector< int > bv

Static Private Attributes

char bits [8]

Detailed Description

Gamma compressor.

GammaCompress

Implementation of the "gamma" method, as described in "Managing Gigabytes" by Witten et al., Chapter 3. (The method is originally attributed to P. Elias.)


Constructor & Destructor Documentation

GammaCompress::GammaCompress  
 


Member Function Documentation

void GammaCompress::compress ostream &    os,
int    n,
int *    a
[virtual]
 

Implements Compress.

int GammaCompress::decompress istream &    is,
int *    a
[virtual]
 

Implements Compress.

int GammaCompress::floorlog2 double    x [private]
 

int GammaCompress::gamma_decode int *    y,
int    offset,
vector< int > &    bv
[private]
 

int GammaCompress::gamma_encode int    x,
int    offset,
vector< int > &    bv
[private]
 

int GammaCompress::gamma_size int    x [private]
 

void GammaCompress::initBitMasks   [private]
 

int GammaCompress::read istream &    is [virtual]
 

Implements Compress.

int GammaCompress::read_bits istream &    is,
vector< int > &    bv,
int    size
[private]
 

const char* GammaCompress::type   [inline, virtual]
 

Implements Compress.

void GammaCompress::write_bits ostream &    os,
vector< int > &    bv
[private]
 


Member Data Documentation

char GammaCompress::bits [static, private]
 

Initial value:

 
{
  0x80, 0x40, 0x20, 0x10,
  0x8, 0x4, 0x2, 0x1,
}

vector<int> GammaCompress::bv [private]
 


The documentation for this class was generated from the following files:
Generated on Fri Feb 6 07:12:00 2004 for LEMUR by doxygen1.2.16