Hi John,

So looking into this a little more, it looks like appendFill (used by
adjustSize) pushes the existing bitmap over and fills in the LSBs.  So  if
I have a bitmap with 1 at the zero element, and I adust the size, to 10,
the 1 gets pushed to over 10.  Was this the intended functionality of the
function?  I'm looking for something that will leave the 1 in it's same
location and put the zeros on the other side of it.  Is there an easy way
to do that?

Best Regards,

Teryl

On Mon, Mar 19, 2012 at 12:40 PM, Teryl Taylor <[email protected]>wrote:

> Hi John,
>
> It looks like the adjustSize is the problem.      If I call adjustsSize(0,
> 316) on the vector, it prepends the zeros to the front of the bitvector
> instead of appending the zeros to the end of the bitvector.
>
> Is that the intended functionality of adjustSize?
>
> Cheers,
>
> Teryl
>
>
>
>
> On Fri, Mar 16, 2012 at 2:13 PM, K. John Wu <[email protected]> wrote:
>
>> Hi, Teryl,
>>
>> Looks like the code for handling tow bitvectors with differing sizes
>> has some bugs in it.  I will look into the problem.  In the mean time,
>> simply making sure the two bitvectors represents the same number of
>> bits should give the desired answer.  The function to use to make sure
>> the shorter one has the same number of bits as the longer one is
>> ibis::bitvector::adjustSize.  This function takes two arguments, it
>> will fill the bitvector with 1s until the position given by the first
>> argument and then fill the remaining positions with 0s until the
>> second argument.
>>
>> Good luck.
>>
>> John
>>
>> PS: The documentation of ibis::bitvector::adjustSize is available
>> online at
>>
>>
>> http://lbl.gov/~kwu/fastbit/doc/html/classibis_1_1bitvector.html#a96d95020682574405a91ac6dfed1da69
>>
>>
>>
>> On 3/16/12 9:31 AM, Teryl Taylor wrote:
>> > Hi John,
>> >
>> > I hope all is going well!   I'm playing around with the
>> > ibis::bitvector API and I'm seeing some peculiar behavior.    I'm
>> > trying to AND two bitmaps of different sizes together....  The first
>> > bitmap looks as follows:
>> >
>> >
>> >
>> >
>> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> > -----------------------------------------------------------
>> >
>> > This bitvector stores 0 bits of a 1-bit (1 set) sequence in a 0-word
>> > array and one bit in the active word
>> >                  0    1    1    2    2    3
>> >             0123456789012345678901234567890
>> >             -------------------------------
>> >     40000000    1
>> > -----------------------------------------------------------
>> >
>> >
>> >
>> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> > It has one set bit, and that is the zeroth bit in the bitmap.    It is
>> > basically one 32 bit literal.
>> >
>> >
>> > I want to And it with the following bitmap which is 326 bits long
>> > which is basically all 1's.
>> >
>> >
>> >
>> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> >
>> > This bitvector stores 310 bits of a 326-bit (326 set) sequence in a
>> > 1-word array and 16 bits in the active word
>> >                  0    1    1    2    2    3
>> >             0123456789012345678901234567890
>> >             -------------------------------
>> > 0    c000000a    310*1
>> >     7fff8000    1111111111111111
>> >
>> >
>> >
>> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> >
>> > Now, the first bitmap, should match with the first bit of the second
>> > bitmap (so, basically the first bitmap should be seen as 326 bits
>> > long...with the first bit being set to 1, and the rest zeros).  So
>> > when I AND the two together, I want the result to be a bitvector with
>> > the first bit set to one, and the following 325 bits all set to zero.
>> >
>> >
>> > But what I'm seeing is the following result:
>> >
>> >
>> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> >
>> > This bitvector stores 310 bits of a 326-bit (1 set) sequence in a
>> > 1-word array and 16 bits in the active word
>> >                  0    1    1    2    2    3
>> >             0123456789012345678901234567890
>> >             -------------------------------
>> > 0    8000000a    310*0
>> >     40000000    1000000000000000
>> >
>> >
>> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> > Which has 310 0's before the one bit is set....   I'm using the &=
>> > operator to do operation.   so it goes smallBitmap &= bigBitmap.
>> >
>> >
>> > Is there an easy way to get the answer I am looking for?  Or am I
>> > using the bitvectors incorrectly?
>> >
>> >
>> > Best Regards,
>> >
>> >
>> > Teryl
>> >
>> >
>> >
>> >
>> > _______________________________________________
>> > 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