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
