#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 |
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.
|
Allocate the memory for Bitmap64 for this many customers.
Definition at line 76 of file Bitmap64.h. |
|
Copy constructor.
Definition at line 93 of file Bitmap64.h. |
|
Destructor (does nothing).
Definition at line 108 of file Bitmap64.h. |
|
Bitwise AND 2 bitmap64s and store the result.
Definition at line 138 of file Bitmap64.cpp. Referenced by SeqBitmap::And(). |
|
Definition at line 65 of file Bitmap64.h. |
|
find the support of this bitmap64 in *number of customers*
Definition at line 155 of file Bitmap64.cpp. Referenced by SeqBitmap::Count(). |
|
create a c-bitmap for compression
Definition at line 250 of file Bitmap64.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 189 of file Bitmap64.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 118 of file Bitmap64.h. Referenced by SeqBitmap::Deallocate(). |
|
deallocate counting tables
Definition at line 105 of file Bitmap64.cpp. Referenced by SeqBitmap::Destroy(). |
|
Fill in a 1 in a certain position.
Definition at line 128 of file Bitmap64.h. Referenced by SeqBitmap::FillEmptyPosition(). |
|
Definition at line 164 of file Bitmap64.h. Referenced by SeqBitmap::printSizes(). |
|
Initialize the counting tables.
Definition at line 59 of file Bitmap64.cpp. Referenced by SeqBitmap::Init(). |
|
Bitwise OR 2 bitmap64s and store the result.
Definition at line 120 of file Bitmap64.cpp. Referenced by SeqBitmap::Or(). |
|
Definition at line 58 of file Bitmap64.h. |
|
lookup table for creating a c-bitmap for compression
Definition at line 51 of file Bitmap64.cpp. Referenced by CreateCBitmap(), Destroy(), and Init(). |
|
Definition at line 46 of file Bitmap64.cpp. Referenced by And(). |
|
Definition at line 47 of file Bitmap64.cpp. Referenced by Count(). |
|
Definition at line 49 of file Bitmap64.cpp. Referenced by CreateCBitmap(). |
|
Definition at line 48 of file Bitmap64.cpp. Referenced by CreateSBitmap(). |
|
Definition at line 45 of file Bitmap64.cpp. Referenced by Or(). |
|
lookup table for counting
Definition at line 43 of file Bitmap64.cpp. Referenced by Init(). |
|
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(). |
|
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(). |
|
size of memory allocated in sizeof(short)
Definition at line 173 of file Bitmap64.h. Referenced by Bitmap64(), CreateCBitmap(), and CreateSBitmap(). |
|
number of customers
Definition at line 174 of file Bitmap64.h. Referenced by Bitmap64(). |
|
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(). |