@Test public void testPrimitiveArray() { long[] values = new long[]{0, 0}; ArrayTable.BitSlicedPrimitiveArray.orLong(4, values, 0, 0x0F); assertEquals(0x0F, values[0]); ArrayTable.BitSlicedPrimitiveArray.orLong(4, values, 2, 0x0F); assertEquals(0xF0F, values[0]); values = new long[]{ 0x1213141516171819L, 0x232425262728292AL, 0x3435363738393A3BL}; assertEquals( 0x324, ArrayTable.BitSlicedPrimitiveArray.getLong(12, values, 9)); assertEquals( 0xa3b, ArrayTable.BitSlicedPrimitiveArray.getLong(12, values, 10)); Arrays.fill(values, 0); for (int i = 0; i < 10; i++) { ArrayTable.BitSlicedPrimitiveArray.orLong(10, values, i, i); } for (int i = 0; i < 10; i++) { assertEquals( i, ArrayTable.BitSlicedPrimitiveArray.getLong(10, values, i)); } }
@Test public void testPrimitiveArray() { long[] values = new long[]{0, 0}; ArrayTable.BitSlicedPrimitiveArray.orLong(4, values, 0, 0x0F); assertEquals(0x0F, values[0]); ArrayTable.BitSlicedPrimitiveArray.orLong(4, values, 2, 0x0F); assertEquals(0xF0F, values[0]); values = new long[]{ 0x1213141516171819L, 0x232425262728292AL, 0x3435363738393A3BL}; assertEquals( 0x324, ArrayTable.BitSlicedPrimitiveArray.getLong(12, values, 9)); assertEquals( 0xa3b, ArrayTable.BitSlicedPrimitiveArray.getLong(12, values, 10)); Arrays.fill(values, 0); for (int i = 0; i < 10; i++) { ArrayTable.BitSlicedPrimitiveArray.orLong(10, values, i, i); } for (int i = 0; i < 10; i++) { assertEquals( i, ArrayTable.BitSlicedPrimitiveArray.getLong(10, values, i)); } }
public Object permute(Object dataSet, int[] sources) { final long[] longs0 = (long[]) dataSet; int n = sources.length; final long[] longs = new long[longs0.length]; for (int i = 0; i < n; i++) { orLong( bitCount, longs, i, getLong(bitCount, longs0, sources[i])); } return longs; }
public static void orLong( int bitCount, long[] values, int ordinal, long value) { orLong(bitCount, 64 / bitCount, values, ordinal, value); }
public static void orLong( int bitCount, long[] values, int ordinal, long value) { orLong(bitCount, 64 / bitCount, values, ordinal, value); }
public Object permute(Object dataSet, int[] sources) { final long[] longs0 = (long[]) dataSet; int n = sources.length; final long[] longs = new long[longs0.length]; for (int i = 0; i < n; i++) { orLong( bitCount, longs, i, getLong(bitCount, longs0, sources[i])); } return longs; }