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

Bitmap32 Class Reference
[Bitmap Processing]

A vertical representation of the data. More...

#include <Bitmap32.h>


Public Member Functions

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

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

 ~Bitmap32 ()
 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 Bitmap32 &b1, const Bitmap32 &b2)
 Bitwise OR 2 bitmap32s and store the result.

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

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

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

void CreateCBitmap (const Bitmap32 &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
 counters for performance measurements

int _countAnd = 0
int _countCount = 0
int _countCreateSBitmap = 0
int _countCreateCBitmap = 0
const int _lookupTableSize = 0x10000
 lookup table for 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 32 transactions since it allocates exactly 32 bits per customer

Definition at line 56 of file Bitmap32.h.


Constructor & Destructor Documentation

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

Allocate the memory for Bitmap32 for this many customers.

Parameters:
numCustomers # of customers
memory 

Definition at line 76 of file Bitmap32.h.

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

Copy constructor.

Parameters:
b Bitmap32 to copy
memory 

Definition at line 96 of file Bitmap32.h.

Bitmap32::~Bitmap32  )  [inline]
 

Destructor (does nothing).

Definition at line 113 of file Bitmap32.h.


Member Function Documentation

void Bitmap32::And const Bitmap32 b1,
const Bitmap32 b2
 

Bitwise AND 2 bitmaps32 and store the result.

Parameters:
b1 the first Bitmap32
b2 the second Bitmap32

Definition at line 140 of file Bitmap32.cpp.

Referenced by SeqBitmap::And().

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

Definition at line 65 of file Bitmap32.h.

int Bitmap32::Count  ) 
 

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

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

Definition at line 159 of file Bitmap32.cpp.

Referenced by SeqBitmap::Count().

void Bitmap32::CreateCBitmap const Bitmap32 iBitmap  ) 
 

create a c-bitmap for compression

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

Definition at line 238 of file Bitmap32.cpp.

Referenced by SeqBitmap::CreateCBitmap().

void Bitmap32::CreateSBitmap const Bitmap32 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 bitmap32 from which we create s-bitmap

Definition at line 191 of file Bitmap32.cpp.

Referenced by SeqBitmap::CreateSBitmap().

void Bitmap32::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 123 of file Bitmap32.h.

Referenced by SeqBitmap::Deallocate().

void Bitmap32::Destroy  )  [static]
 

deallocate counting tables

Definition at line 106 of file Bitmap32.cpp.

Referenced by SeqBitmap::Destroy().

void Bitmap32::FillEmptyPosition int  j  )  [inline]
 

Fill in a 1 in a certain position.

Parameters:
j bit position in Bitmap to be changed

Definition at line 133 of file Bitmap32.h.

Referenced by SeqBitmap::FillEmptyPosition().

int Bitmap32::getIntSize  )  const [inline]
 

Definition at line 170 of file Bitmap32.h.

Referenced by SeqBitmap::printSizes().

void Bitmap32::Init  )  [static]
 

Initialize the counting tables.

Definition at line 58 of file Bitmap32.cpp.

Referenced by SeqBitmap::Init().

void Bitmap32::Or const Bitmap32 b1,
const Bitmap32 b2
 

Bitwise OR 2 bitmap32s and store the result.

Parameters:
b1 the first Bitmap32
b2 the second Bitmap32

Definition at line 121 of file Bitmap32.cpp.

Referenced by SeqBitmap::Or().


Friends And Related Function Documentation

friend class SeqBitmap [friend]
 

Definition at line 58 of file Bitmap32.h.


Field Documentation

int * Bitmap32::_cBitmapLookupTable = 0 [static]
 

lookup table for creating a c-bitmap for compression

Definition at line 51 of file Bitmap32.cpp.

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

int Bitmap32::_countAnd = 0 [static]
 

Definition at line 46 of file Bitmap32.cpp.

Referenced by And().

int Bitmap32::_countCount = 0 [static]
 

Definition at line 47 of file Bitmap32.cpp.

Referenced by Count().

int Bitmap32::_countCreateCBitmap = 0 [static]
 

Definition at line 49 of file Bitmap32.cpp.

Referenced by CreateCBitmap().

int Bitmap32::_countCreateSBitmap = 0 [static]
 

Definition at line 48 of file Bitmap32.cpp.

Referenced by CreateSBitmap().

int Bitmap32::_countOr = 0 [static]
 

counters for performance measurements

Definition at line 45 of file Bitmap32.cpp.

Referenced by Or().

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

lookup table for counting

Definition at line 43 of file Bitmap32.cpp.

Referenced by Init().

unsigned int* Bitmap32::_memory [private]
 

where data is stored

Definition at line 177 of file Bitmap32.h.

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

int Bitmap32::_memSizeInt [private]
 

size of memory allocated in sizeof(int)

Definition at line 178 of file Bitmap32.h.

Referenced by And(), Bitmap32(), SeqBitmap::Compress32(), Count(), SeqBitmap::CountSmaller(), CreateCBitmap(), CreateSBitmap(), Deallocate(), getIntSize(), SeqBitmap::memSize(), Or(), and SeqBitmap::PrintBitmap().

int Bitmap32::_memSizeShort [private]
 

size of memory allocated in sizeof(short)

Definition at line 179 of file Bitmap32.h.

Referenced by Bitmap32(), CreateCBitmap(), and CreateSBitmap().

int Bitmap32::_numCust [private]
 

number of customers

Definition at line 180 of file Bitmap32.h.

Referenced by Bitmap32().

int * Bitmap32::_sBitmapLookupTable = 0 [static]
 

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

Definition at line 50 of file Bitmap32.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