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

Bitmap64 Class Reference
[Bitmap Processing]

A vertical representation of the data. More...

#include <Bitmap64.h>


Public Member Functions

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

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

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

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

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

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

void CreateCBitmap (const Bitmap64 &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 * _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 64 transactions since it allocates exactly 64 bits per customer

Definition at line 56 of file Bitmap64.h.


Constructor & Destructor Documentation

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

Allocate the memory for Bitmap64 for this many customers.

Parameters:
numCustomers # of customers
memory 

Definition at line 76 of file Bitmap64.h.

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

Copy constructor.

Parameters:
b Bitmap64 to copy
memory 

Definition at line 93 of file Bitmap64.h.

Bitmap64::~Bitmap64  )  [inline]
 

Destructor (does nothing).

Definition at line 108 of file Bitmap64.h.


Member Function Documentation

void Bitmap64::And const Bitmap64 b1,
const Bitmap64 b2
 

Bitwise AND 2 bitmap64s and store the result.

Parameters:
b1 the first Bitmap64
b2 the second Bitmap64

Definition at line 138 of file Bitmap64.cpp.

Referenced by SeqBitmap::And().

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

Definition at line 65 of file Bitmap64.h.

int Bitmap64::Count  ) 
 

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

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

Definition at line 155 of file Bitmap64.cpp.

Referenced by SeqBitmap::Count().

void Bitmap64::CreateCBitmap const Bitmap64 iBitmap  ) 
 

create a c-bitmap for compression

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

Definition at line 250 of file Bitmap64.cpp.

Referenced by SeqBitmap::CreateCBitmap().

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

Definition at line 189 of file Bitmap64.cpp.

Referenced by SeqBitmap::CreateSBitmap().

void Bitmap64::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 118 of file Bitmap64.h.

Referenced by SeqBitmap::Deallocate().

void Bitmap64::Destroy  )  [static]
 

deallocate counting tables

Definition at line 105 of file Bitmap64.cpp.

Referenced by SeqBitmap::Destroy().

void Bitmap64::FillEmptyPosition int  j  )  [inline]
 

Fill in a 1 in a certain position.

Parameters:
j bit position in Bitmap to be changed

Definition at line 128 of file Bitmap64.h.

Referenced by SeqBitmap::FillEmptyPosition().

int Bitmap64::getIntSize  )  const [inline]
 

Definition at line 164 of file Bitmap64.h.

Referenced by SeqBitmap::printSizes().

void Bitmap64::Init  )  [static]
 

Initialize the counting tables.

Definition at line 59 of file Bitmap64.cpp.

Referenced by SeqBitmap::Init().

void Bitmap64::Or const Bitmap64 b1,
const Bitmap64 b2
 

Bitwise OR 2 bitmap64s and store the result.

Parameters:
b1 the first Bitmap64
b2 the second Bitmap64

Definition at line 120 of file Bitmap64.cpp.

Referenced by SeqBitmap::Or().


Friends And Related Function Documentation

friend class SeqBitmap [friend]
 

Definition at line 58 of file Bitmap64.h.


Field Documentation

int * Bitmap64::_cBitmapLookupTable = 0 [static]
 

lookup table for creating a c-bitmap for compression

Definition at line 51 of file Bitmap64.cpp.

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

int Bitmap64::_countAnd = 0 [static]
 

Definition at line 46 of file Bitmap64.cpp.

Referenced by And().

int Bitmap64::_countCount = 0 [static]
 

Definition at line 47 of file Bitmap64.cpp.

Referenced by Count().

int Bitmap64::_countCreateCBitmap = 0 [static]
 

Definition at line 49 of file Bitmap64.cpp.

Referenced by CreateCBitmap().

int Bitmap64::_countCreateSBitmap = 0 [static]
 

Definition at line 48 of file Bitmap64.cpp.

Referenced by CreateSBitmap().

int Bitmap64::_countOr = 0 [static]
 

Definition at line 45 of file Bitmap64.cpp.

Referenced by Or().

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

lookup table for counting

Definition at line 43 of file Bitmap64.cpp.

Referenced by Init().

unsigned int* Bitmap64::_memory [private]
 

where data is stored

Definition at line 171 of file Bitmap64.h.

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

int Bitmap64::_memSizeInt [private]
 

size of memory allocated in sizeof(int)

Definition at line 172 of file Bitmap64.h.

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

int Bitmap64::_memSizeShort [private]
 

size of memory allocated in sizeof(short)

Definition at line 173 of file Bitmap64.h.

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

int Bitmap64::_numCust [private]
 

number of customers

Definition at line 174 of file Bitmap64.h.

Referenced by Bitmap64().

int * Bitmap64::_sBitmapLookupTable = 0 [static]
 

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

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