Hi Daniel,
just one more question,
What i am trying to do is to index multidimensional data (longitude, latitude and time) for location based applications for cloud platforms.
longitude and latitude values ranges from 180.9999999 to -180.9999999 ..or 32 bits binary equivalent. The compact hilbert algorithm and the library works perfectly for all dimensions but when i try to convert a 22 bit 3d value :
CompactHilbertCurve chc = new CompactHilbertCurve(new int[] {22, 22, 22});
.
.
.p[0].copyFrom(0b1001111111111110100111);
p[1].copyFrom(0b1101111111111110100110);
p[2].copyFrom(0b1111111111111110100011);
I get some unusual result :
index([1001111111111110100111, 1101111111111110100110, 1111111111111110100011])=size: 66bitset: {2, 3, 4, 5, 7, 11, 13, 14, 15, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59, 61, 63, 65}
What is this bitset? I will be using a column based store and save the hilbert keys in some tree structure and perform queries. I'll be really helpful to you if you can help me on this.
sincerely,
Shashank Kumar