Hi, John, Thanks for extremely-quick action!
Where can I get to the SVN revision. B.R. Jilong -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of K. John Wu Sent: Wednesday, October 16, 2013 12:27 AM To: FastBit Users Subject: Re: [FastBit-users] fastbit bitvector AND operation result does not seem correct Hi, Jilong, Thanks for the test code. It is very helpful for me to figure out the source of the problem. A fix has been checked in as SVN revision 658. Attached is a slightly expanded test case along with its expected output. Please give this fix a try and let me know if you encounter any problems. Great detective work. John On 10/15/13 7:36 AM, wang jilong wrote: > Dear John, > > Thanks for your reply. The following test program should expose the issue: > > ////////////////////////////////////////////////////////////////////// > // > #include <stdio.h> > > #include "ibis.h" > #include "array_t.h" > #include "bitvector.h" > > using namespace std; > > typedef ibis::array_t<ibis::bitvector::word_t> ARRAY_WORD; typedef > ibis::bitvector::word_t WORD_T; > > int main(int argc, char** argv) > { > WORD_T v_arr_word[3]; > v_arr_word[0] = 0xC014B9BF; > v_arr_word[1] = 0x00007FFF; > v_arr_word[2] = 0x0000000F; > > ARRAY_WORD v_array_word(v_arr_word, > sizeof(v_arr_word)/sizeof(WORD_T)); > > // the v-bitvect represents an bitmaps (size=42106416, cnt=42106416, > bytes=44, isCompressed=0) > ibis::bitvector v_bitvect(v_array_word); > > ibis::bitvector *v_ptr_bitvect_ret = v_bitvect & v_bitvect; > // the bitmap pointed by v_ptr_bitvect_ret should be same as v_bitvect > // the actual result is: size=42106416, cnt=42106416, bytes=40, > isCompressed=1 > // if iterating it using "for (ibis::bitvector::const_iterator v_iter = > p_ptr_bitvector->begin(); v_iter != p_ptr_bitvector->end(); ++v_iter)", > // only to see what is inside. It is 111111111111111, up to 15 > bits > > // if printed word-wise, it is: xFF\x7F\x00\x00\x0F\x00\x00\x00 > > delete v_ptr_bitvect_ret; > > return 0; > } > > ////////////////////////////////////////////////////////////////////// > // > > Thanks > > Jilong Wang > > -----Original Message----- > From: [email protected] > [mailto:[email protected]] On Behalf Of K. John Wu > Sent: Tuesday, October 08, 2013 10:13 AM > To: FastBit Users > Subject: Re: [FastBit-users] fastbit bitvector AND operation result > does not seem correct > > Dear Jilong, > > Thanks for your interest in FastBit. It will take me some time to > reconstruct a test program from your description. Would you mind share you > test program with me? > > By the way, would you be willing to describe your use case? It is usually > better to avoid iterate through all bit. > > John > > > On 10/7/13 2:23 PM, wang jilong wrote: >> Hi, >> >> >> >> I am new to the mailing list. It is about fastbit 1.3.6 and 1.3.7 on >> a linux machine. >> >> >> >> I am "AND-ing" two bitvectors together. >> >> >> >> The 1^st vector: v_vect1, original bitvector, size=42106416, >> cnt=42106416, bytes=44, isCompressed=0 >> >> Its bytes: \xBF\xB9\x14\xC0\xFF\x7F\x00\x00\x0F\x00\x00\x00 >> >> So the words are: C014B9BF 00007FFF 0000000F >> >> >> >> The 2^nd vector: size=42106416, cnt=2922440, bytes=3512672, >> isCompressed=0 >> >> >> >> The result vector: size=42106416, cnt=2922440, bytes=40, >> isCompressed=1 >> >> >> >> Question 1: >> >> when I iterate through the result vector using >> >> "for (ibis::bitvector::const_iterator v_iter = >> p_ptr_bitvector->begin(); v_iter != p_ptr_bitvector->end(); >> ++v_iter)", >> >> It only runs up to 15 bits. >> >> >> >> Is this a expected behavior for iteration? >> >> >> >> Question 2: >> >> The result vector as it is written to words and printed as bytes. >> >> They (bytes sequence) are: \x00\x00\x00\x00\x0F\x00\x00\x00 >> >> >> >> When the result vector is decompressed, it has long byte sequence. >> >> >> >> I read your thesis about WAH, had difficult to interpret the bitmap above. >> >> Can you please help? >> >> >> >> Question 3: >> >> >> >> If the result vector is stored as bytes sequence and uses it later in >> fastbit again, >> >> Say engaged in BIT-AND operation, the bytes-sequence is treated as >> un-compressed. >> >> >> >> How can I make it treated as compressed, like when right after the >> result-vector is generated? >> >> >> >> Thanks >> >> >> >> Jilong Wang >> >> >> >> >> >> >> >> >> >> _______________________________________________ >> FastBit-users mailing list >> [email protected] >> https://hpcrdm.lbl.gov/cgi-bin/mailman/listinfo/fastbit-users >> > _______________________________________________ > FastBit-users mailing list > [email protected] > https://hpcrdm.lbl.gov/cgi-bin/mailman/listinfo/fastbit-users > _______________________________________________ > FastBit-users mailing list > [email protected] > https://hpcrdm.lbl.gov/cgi-bin/mailman/listinfo/fastbit-users > _______________________________________________ FastBit-users mailing list [email protected] https://hpcrdm.lbl.gov/cgi-bin/mailman/listinfo/fastbit-users
