I am trying to use the 64 bit version of bitmap object for some bitmap
functions and it is turning out to be very expensive to perform the set-bit
on the bitmap object to construct the bitmap. Some numbers from the test
are pasted below for reference. The question to the forum is, is it
possible to create bulk set-bits api in bitvector64 which could possibly
accept say 4K sorted bit-positions. This might help in amortizing the cost
of the set operation and also improve speed in the process. Thoughts and
suggestions are much appreciated.

/// replace the ind'th bit with val.  val is assumed to be either 0 or 1.
 If
/// val is not 0 or 1, it could cause serious problems.
/// This function can be used to extend the length of the bit sequence.
/// When the given index (ind) is beyond the end of the current sequence,
the
/// unspecified bits in the range of [size(), ind) are assumed to be 0.
///
/// @warning This function is very expensive.  In order to get to bit ind,
/// it has to go through all bits 0 through ind-1.  In addition, it might
/// have to make a copy of all the bits following bit ind.  Use it only if
/// you have to.
void ibis::bitvector64::setBit(const word_t ind, int val) {


Bitmap (12 bits / 0K bytes),  Construction(micros) = 57
Bitmap (91 bits / 1K bytes),  Construction(micros) = 42
Bitmap (304 bits / 3K bytes),  Construction(micros) = 218
Bitmap (721 bits / 8K bytes),  Construction(micros) = 975
Bitmap (1407 bits / 15K bytes),  Construction(micros) = 3331
Bitmap (2431 bits / 27K bytes),  Construction(micros) = 9439
Bitmap (3860 bits / 43K bytes),  Construction(micros) = 23306
Bitmap (5762 bits / 65K bytes),  Construction(micros) = 51688
Bitmap (8204 bits / 92K bytes),  Construction(micros) = 102764
Bitmap (11253 bits / 127K bytes),  Construction(micros) = 191635
Bitmap (14978 bits / 169K bytes),  Construction(micros) = 367892
Bitmap (19445 bits / 219K bytes),  Construction(micros) = 580920
Bitmap (24723 bits / 279K bytes),  Construction(micros) = 963627
Bitmap (30878 bits / 348K bytes),  Construction(micros) = 1481416
Bitmap (37979 bits / 428K bytes),  Construction(micros) = 2232562
Bitmap (46092 bits / 520K bytes),  Construction(micros) = 3296384
Bitmap (55285 bits / 623K bytes),  Construction(micros) = 4727540
Bitmap (65627 bits / 740K bytes),  Construction(micros) = 6732462
Bitmap (77183 bits / 871K bytes),  Construction(micros) = 9279075
Bitmap (90022 bits / 1015K bytes),  Construction(micros) = 12638923
Bitmap (104212 bits / 1176K bytes),  Construction(micros) = 16778394
Bitmap (119820 bits / 1352K bytes),  Construction(micros) = 22223542
Bitmap (136913 bits / 1545K bytes),  Construction(micros) = 29100569
Bitmap (155558 bits / 1755K bytes),  Construction(micros) = 37756820
Bitmap (175825 bits / 1984K bytes),  Construction(micros) = 47970284

Regards
Srikanth Sundarrajan

-- 
_____________________________________________________________
The information contained in this communication is intended solely for the 
use of the individual or entity to whom it is addressed and others 
authorized to receive it. It may contain confidential or legally privileged 
information. If you are not the intended recipient you are hereby notified 
that any disclosure, copying, distribution or taking any action in reliance 
on the contents of this information is strictly prohibited and may be 
unlawful. If you have received this communication in error, please notify 
us immediately by responding to this email and then delete it from your 
system. The firm is neither liable for the proper and complete transmission 
of the information contained in this communication nor for any delay in its 
receipt.
_______________________________________________
FastBit-users mailing list
[email protected]
https://hpcrdm.lbl.gov/cgi-bin/mailman/listinfo/fastbit-users

Reply via email to