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

Reply via email to