#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 |
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.
|
Allocate the memory for Bitmap8 for this many customers.
|
|
Copy constructor.
|
|
Destructor (does nothing).
|
|
Bitwise AND 2 bitmap8s and store the result.
Definition at line 206 of file Bitmap8.cpp. Referenced by SeqBitmap::And(). |
|
|
|
find the support of this bitmap in *number of customers*
Definition at line 224 of file Bitmap8.cpp. Referenced by SeqBitmap::Count(), and SeqBitmap::PrintBitmap(). |
|
create a c-bitmap for compression
Definition at line 287 of file Bitmap8.cpp. Referenced by SeqBitmap::CreateCBitmap(). |
|
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.
Definition at line 259 of file Bitmap8.cpp. Referenced by SeqBitmap::CreateSBitmap(). |
|
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(). |
|
deallocate counting tables
Definition at line 170 of file Bitmap8.cpp. Referenced by SeqBitmap::Destroy(). |
|
Fill in a 1 in a certain position.
Definition at line 155 of file Bitmap8.h. Referenced by SeqBitmap::FillEmptyPosition(). |
|
Definition at line 174 of file Bitmap8.h. Referenced by SeqBitmap::printSizes(). |
|
Initialize the counting tables.
Definition at line 58 of file Bitmap8.cpp. Referenced by SeqBitmap::Init(). |
|
Bitwise OR 2 bitmap8s and store the result.
Definition at line 188 of file Bitmap8.cpp. Referenced by SeqBitmap::Or(). |
|
|
|
lookup table for creating a c-bitmap for compression
Definition at line 51 of file Bitmap8.cpp. Referenced by CreateCBitmap(), Destroy(), and Init(). |
|
Definition at line 45 of file Bitmap8.cpp. Referenced by And(). |
|
Definition at line 46 of file Bitmap8.cpp. Referenced by Count(). |
|
Definition at line 48 of file Bitmap8.cpp. Referenced by CreateCBitmap(). |
|
Definition at line 47 of file Bitmap8.cpp. Referenced by CreateSBitmap(). |
|
lookup table for the counting
Definition at line 49 of file Bitmap8.cpp. |
|
Definition at line 44 of file Bitmap8.cpp. Referenced by Or(). |
|
lookup table for counting
Definition at line 42 of file Bitmap8.cpp. Referenced by Init(). |
|
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(). |
|
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(). |
|
size of memory allocated in sizeof(short)
Definition at line 204 of file Bitmap8.h. Referenced by Bitmap8(), Count(), CreateCBitmap(), and CreateSBitmap(). |
|
number of customers
Definition at line 205 of file Bitmap8.h. Referenced by Bitmap8(). |
|
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(). |