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

Bitmap16 Class Reference
[Bitmap Processing]

A vertical representation of the data. More...

#include <Bitmap16.h>


Public Member Functions

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

 Bitmap16 (Bitmap16 &b, unsigned short *&memory)
 Copy constructor.

 ~Bitmap16 ()
 Destructor (does nothing).

void Deallocate (unsigned short *&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 Bitmap16 &b1, const Bitmap16 &b2)
 Bitwise OR 2 bitmaps and store the result.

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

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

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

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

Definition at line 56 of file Bitmap16.h.


Constructor & Destructor Documentation

Bitmap16::Bitmap16 int  numCustomers,
unsigned short *&  memory
[inline]
 

Allocate the memory for Bitmap16 for this many customers.

Parameters:
numCustomers # of customers
memory 

Definition at line 81 of file Bitmap16.h.

Bitmap16::Bitmap16 Bitmap16 b,
unsigned short *&  memory
[inline]
 

Copy constructor.

Parameters:
b Bitmap to copy
memory 

Definition at line 103 of file Bitmap16.h.

Bitmap16::~Bitmap16  )  [inline]
 

Destructor (does nothing).

Definition at line 118 of file Bitmap16.h.


Member Function Documentation

void Bitmap16::And const Bitmap16 b1,
const Bitmap16 b2
 

Bitwise AND 2 bitmaps and store the result.

Parameters:
b1 the first Bitmap16
b2 the second Bitmap16

Definition at line 146 of file Bitmap16.cpp.

Referenced by SeqBitmap::And().

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

Definition at line 65 of file Bitmap16.h.

int Bitmap16::Count  ) 
 

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

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

Definition at line 170 of file Bitmap16.cpp.

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

void Bitmap16::CreateCBitmap const Bitmap16 iBitmap  ) 
 

create a c-bitmap for compression

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

Definition at line 224 of file Bitmap16.cpp.

Referenced by SeqBitmap::CreateCBitmap().

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

Definition at line 203 of file Bitmap16.cpp.

Referenced by SeqBitmap::CreateSBitmap().

void Bitmap16::Deallocate unsigned short *&  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 128 of file Bitmap16.h.

Referenced by SeqBitmap::Deallocate().

void Bitmap16::Destroy  )  [static]
 

deallocate counting tables

Definition at line 105 of file Bitmap16.cpp.

Referenced by SeqBitmap::Destroy().

void Bitmap16::FillEmptyPosition int  j  )  [inline]
 

Fill in a 1 in a certain position.

Parameters:
j bit position in Bitmap to be changed

Definition at line 138 of file Bitmap16.h.

Referenced by SeqBitmap::FillEmptyPosition().

int Bitmap16::getIntSize  )  const [inline]
 

Definition at line 173 of file Bitmap16.h.

Referenced by SeqBitmap::printSizes().

void Bitmap16::Init  )  [static]
 

Initialize the counting tables.

Definition at line 57 of file Bitmap16.cpp.

Referenced by SeqBitmap::Init().

void Bitmap16::Or const Bitmap16 b1,
const Bitmap16 b2
 

Bitwise OR 2 bitmaps and store the result.

Parameters:
b1 the first Bitmap16
b2 the second Bitmap16

Definition at line 120 of file Bitmap16.cpp.

Referenced by SeqBitmap::Or().


Friends And Related Function Documentation

friend class SeqBitmap [friend]
 

Definition at line 58 of file Bitmap16.h.


Field Documentation

int * Bitmap16::_cBitmapLookupTable = 0 [static]
 

lookup table for creating a c-bitmap for compression

Definition at line 50 of file Bitmap16.cpp.

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

int Bitmap16::_countAnd = 0 [static]
 

Definition at line 45 of file Bitmap16.cpp.

Referenced by And().

int Bitmap16::_countCount = 0 [static]
 

Definition at line 46 of file Bitmap16.cpp.

Referenced by Count().

int Bitmap16::_countCreateCBitmap = 0 [static]
 

Definition at line 48 of file Bitmap16.cpp.

Referenced by CreateCBitmap().

int Bitmap16::_countCreateSBitmap = 0 [static]
 

Definition at line 47 of file Bitmap16.cpp.

Referenced by CreateSBitmap().

int Bitmap16::_countOr = 0 [static]
 

counters for performance measurements

Definition at line 44 of file Bitmap16.cpp.

Referenced by Or().

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

lookup table for counting

Definition at line 42 of file Bitmap16.cpp.

Referenced by Init().

unsigned short* Bitmap16::_memory [private]
 

where data is stored

Definition at line 180 of file Bitmap16.h.

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

int Bitmap16::_memSizeInt [private]
 

size of memory allocated in sizeof(int)

Definition at line 181 of file Bitmap16.h.

Referenced by And(), Bitmap16(), getIntSize(), SeqBitmap::memSize(), and Or().

int Bitmap16::_memSizeShort [private]
 

size of memory allocated in sizeof(short)

Definition at line 182 of file Bitmap16.h.

Referenced by Bitmap16(), SeqBitmap::Compress16(), Count(), SeqBitmap::CountSmaller(), CreateCBitmap(), CreateSBitmap(), Deallocate(), and SeqBitmap::PrintBitmap().

int Bitmap16::_numCust [private]
 

number of customers

Definition at line 183 of file Bitmap16.h.

Referenced by Bitmap16().

int * Bitmap16::_sBitmapLookupTable = 0 [static]
 

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

Definition at line 49 of file Bitmap16.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