Main Page | Modules | Namespace List | Data Structures | File List | Data Fields | Globals

Bitmap8 Class Reference
[Bitmap Processing]

A vertical representation of the data. More...

#include <Bitmap8.h>


Public Member Functions

 Bitmap8 (int numCustomers, unsigned int *&memory)
 Allocate the memory for Bitmap8 for this many customers.

 Bitmap8 (Bitmap8 &b, unsigned int *&memory)
 Copy constructor.

 ~Bitmap8 ()
 Destructor (does nothing).

void Deallocate (unsigned int *&memory)
 Pop this bitmap's memory from the global stack (allocation is done in the constructor, but deallocation is not done in the destructor.

void FillEmptyPosition (int j)
 Fill in a 1 in a certain position.

void Or (const Bitmap8 &b1, const Bitmap8 &b2)
 Bitwise OR 2 bitmap8s and store the result.

void And (const Bitmap8 &b1, const Bitmap8 &b2)
 Bitwise AND 2 bitmap8s and store the result.

int Count ()
 find the support of this bitmap in *number of customers*

void CreateSBitmap (const Bitmap8 &iBitmap)
 Create a s-bitmap from an i-bitmap.

void CreateCBitmap (const Bitmap8 &iBitmap)
 create a c-bitmap for compression

int getIntSize () const

Static Public Member Functions

void Init ()
 Initialize the counting tables.

void Destroy ()
 deallocate counting tables

int CalcSize (int numCust)

Static Public Attributes

int _countOr = 0
int _countAnd = 0
int _countCount = 0
int _countCreateSBitmap = 0
int _countCreateCBitmap = 0
const int _lookupTableSize = 0x10000
 lookup table for counting

int * _countLookupTable = 0
 lookup table for the counting

int * _sBitmapLookupTable = 0
 lookup table for creating a s-bitmap from an i-bitmap

int * _cBitmapLookupTable = 0
 lookup table for creating a c-bitmap for compression


Private Attributes

unsigned int * _memory
 where data is stored

int _memSizeInt
 size of memory allocated in sizeof(int)

int _memSizeShort
 size of memory allocated in sizeof(short)

int _numCust
 number of customers


Friends

class SeqBitmap


Detailed Description

A vertical representation of the data.

It handles both uncompressed and compressed data.

This bitmap can represent customers with up to 8 transactions since it allocates exactly 8 bits per customer

Definition at line 56 of file Bitmap8.h.


Constructor & Destructor Documentation

Bitmap8::Bitmap8 int  numCustomers,
unsigned int *&  memory
[inline]
 

Allocate the memory for Bitmap8 for this many customers.

Parameters:
numCustomers # of customers
memory 

Definition at line 87 of file Bitmap8.h.

Bitmap8::Bitmap8 Bitmap8 b,
unsigned int *&  memory
[inline]
 

Copy constructor.

Parameters:
b Bitmap8 to copy
memory 

Definition at line 119 of file Bitmap8.h.

Bitmap8::~Bitmap8  )  [inline]
 

Destructor (does nothing).

Definition at line 135 of file Bitmap8.h.


Member Function Documentation

void Bitmap8::And const Bitmap8 b1,
const Bitmap8 b2
 

Bitwise AND 2 bitmap8s and store the result.

Parameters:
b1 the first Bitmap8
b2 the second Bitmap8

Definition at line 206 of file Bitmap8.cpp.

Referenced by SeqBitmap::And().

int Bitmap8::CalcSize int  numCust  )  [inline, static]
 

Definition at line 66 of file Bitmap8.h.

int Bitmap8::Count  ) 
 

find the support of this bitmap in *number of customers*

Returns:
the number of customers that have some bit set among their 8 bits

Definition at line 224 of file Bitmap8.cpp.

Referenced by SeqBitmap::Count(), and SeqBitmap::PrintBitmap().

void Bitmap8::CreateCBitmap const Bitmap8 iBitmap  ) 
 

create a c-bitmap for compression

Parameters:
iBitmap the bitmap8 from which we create c-bitmap

Definition at line 287 of file Bitmap8.cpp.

Referenced by SeqBitmap::CreateCBitmap().

void Bitmap8::CreateSBitmap const Bitmap8 iBitmap  ) 
 

Create a s-bitmap from an i-bitmap.

Idea : Again, we go thru each element of _memory. For each element, if it is greater than 0, we look up the transformation table (postProcessTable) to find the corresponding value for the s-bitmap, and set the remaining SHORTs of the current custom to USHRT_MAX (i.e. all 1's).

Note : For example, if the bitmap is [0001 | 1100 | 0011 | 1111 | 0000 | 0000] and [00001111 | 00011111 | 11111111]. Refer to the paper for details.

Parameters:
iBitmap the bitmap8 from which we create s-bitmap

Definition at line 259 of file Bitmap8.cpp.

Referenced by SeqBitmap::CreateSBitmap().

void Bitmap8::Deallocate unsigned int *&  memory  )  [inline]
 

Pop this bitmap's memory from the global stack (allocation is done in the constructor, but deallocation is not done in the destructor.

Definition at line 145 of file Bitmap8.h.

Referenced by SeqBitmap::Deallocate().

void Bitmap8::Destroy  )  [static]
 

deallocate counting tables

Definition at line 170 of file Bitmap8.cpp.

Referenced by SeqBitmap::Destroy().

void Bitmap8::FillEmptyPosition int  j  )  [inline]
 

Fill in a 1 in a certain position.

Parameters:
j bit position in Bitmap to be changed

Definition at line 155 of file Bitmap8.h.

Referenced by SeqBitmap::FillEmptyPosition().

int Bitmap8::getIntSize  )  const [inline]
 

Definition at line 174 of file Bitmap8.h.

Referenced by SeqBitmap::printSizes().

void Bitmap8::Init  )  [static]
 

Initialize the counting tables.

Definition at line 58 of file Bitmap8.cpp.

Referenced by SeqBitmap::Init().

void Bitmap8::Or const Bitmap8 b1,
const Bitmap8 b2
 

Bitwise OR 2 bitmap8s and store the result.

Parameters:
b1 the first Bitmap8
b2 the second Bitmap8

Definition at line 188 of file Bitmap8.cpp.

Referenced by SeqBitmap::Or().


Friends And Related Function Documentation

friend class SeqBitmap [friend]
 

Definition at line 59 of file Bitmap8.h.


Field Documentation

int * Bitmap8::_cBitmapLookupTable = 0 [static]
 

lookup table for creating a c-bitmap for compression

Definition at line 51 of file Bitmap8.cpp.

Referenced by CreateCBitmap(), Destroy(), and Init().

int Bitmap8::_countAnd = 0 [static]
 

Definition at line 45 of file Bitmap8.cpp.

Referenced by And().

int Bitmap8::_countCount = 0 [static]
 

Definition at line 46 of file Bitmap8.cpp.

Referenced by Count().

int Bitmap8::_countCreateCBitmap = 0 [static]
 

Definition at line 48 of file Bitmap8.cpp.

Referenced by CreateCBitmap().

int Bitmap8::_countCreateSBitmap = 0 [static]
 

Definition at line 47 of file Bitmap8.cpp.

Referenced by CreateSBitmap().

int * Bitmap8::_countLookupTable = 0 [static]
 

lookup table for the counting

Definition at line 49 of file Bitmap8.cpp.

Referenced by Count(), Destroy(), and Init().

int Bitmap8::_countOr = 0 [static]
 

Definition at line 44 of file Bitmap8.cpp.

Referenced by Or().

const int Bitmap8::_lookupTableSize = 0x10000 [static]
 

lookup table for counting

Definition at line 42 of file Bitmap8.cpp.

Referenced by Init().

unsigned int* Bitmap8::_memory [private]
 

where data is stored

Definition at line 202 of file Bitmap8.h.

Referenced by And(), Bitmap8(), SeqBitmap::Compress8(), Count(), SeqBitmap::CountSmaller(), CreateCBitmap(), CreateSBitmap(), FillEmptyPosition(), Or(), and SeqBitmap::PrintBitmap().

int Bitmap8::_memSizeInt [private]
 

size of memory allocated in sizeof(int)

Definition at line 203 of file Bitmap8.h.

Referenced by And(), Bitmap8(), SeqBitmap::Compress8(), SeqBitmap::CountSmaller(), CreateCBitmap(), CreateSBitmap(), Deallocate(), getIntSize(), SeqBitmap::memSize(), Or(), and SeqBitmap::PrintBitmap().

int Bitmap8::_memSizeShort [private]
 

size of memory allocated in sizeof(short)

Definition at line 204 of file Bitmap8.h.

Referenced by Bitmap8(), Count(), CreateCBitmap(), and CreateSBitmap().

int Bitmap8::_numCust [private]
 

number of customers

Definition at line 205 of file Bitmap8.h.

Referenced by Bitmap8().

int * Bitmap8::_sBitmapLookupTable = 0 [static]
 

lookup table for creating a s-bitmap from an i-bitmap

Definition at line 50 of file Bitmap8.cpp.

Referenced by CreateSBitmap(), Destroy(), and Init().


The documentation for this class was generated from the following files:
Generated on Thu Mar 11 12:01:54 2004 for SPAM by doxygen 1.3.4