More compact representation of BulkOperations.java. Fix line endings (missing SVN prop)

git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1376434 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Uwe Schindler 2012-08-23 11:05:54 +00:00
parent 504b792937
commit 580c92a55a
2 changed files with 90 additions and 219 deletions

View File

@ -25,219 +25,92 @@ import java.nio.ByteBuffer;
* Efficient sequential read/write of packed integers. * Efficient sequential read/write of packed integers.
*/ */
abstract class BulkOperation implements PackedInts.Decoder, PackedInts.Encoder { abstract class BulkOperation implements PackedInts.Decoder, PackedInts.Encoder {
private static final BulkOperationPacked1 packed1 = new BulkOperationPacked1(); private static final BulkOperation[] packedBulkOps = new BulkOperation[] {
private static final BulkOperationPacked2 packed2 = new BulkOperationPacked2(); new BulkOperationPacked1(),
private static final BulkOperationPacked3 packed3 = new BulkOperationPacked3(); new BulkOperationPacked2(),
private static final BulkOperationPacked4 packed4 = new BulkOperationPacked4(); new BulkOperationPacked3(),
private static final BulkOperationPacked5 packed5 = new BulkOperationPacked5(); new BulkOperationPacked4(),
private static final BulkOperationPacked6 packed6 = new BulkOperationPacked6(); new BulkOperationPacked5(),
private static final BulkOperationPacked7 packed7 = new BulkOperationPacked7(); new BulkOperationPacked6(),
private static final BulkOperationPacked8 packed8 = new BulkOperationPacked8(); new BulkOperationPacked7(),
private static final BulkOperationPacked9 packed9 = new BulkOperationPacked9(); new BulkOperationPacked8(),
private static final BulkOperationPacked10 packed10 = new BulkOperationPacked10(); new BulkOperationPacked9(),
private static final BulkOperationPacked11 packed11 = new BulkOperationPacked11(); new BulkOperationPacked10(),
private static final BulkOperationPacked12 packed12 = new BulkOperationPacked12(); new BulkOperationPacked11(),
private static final BulkOperationPacked13 packed13 = new BulkOperationPacked13(); new BulkOperationPacked12(),
private static final BulkOperationPacked14 packed14 = new BulkOperationPacked14(); new BulkOperationPacked13(),
private static final BulkOperationPacked15 packed15 = new BulkOperationPacked15(); new BulkOperationPacked14(),
private static final BulkOperationPacked16 packed16 = new BulkOperationPacked16(); new BulkOperationPacked15(),
private static final BulkOperationPacked17 packed17 = new BulkOperationPacked17(); new BulkOperationPacked16(),
private static final BulkOperationPacked18 packed18 = new BulkOperationPacked18(); new BulkOperationPacked17(),
private static final BulkOperationPacked19 packed19 = new BulkOperationPacked19(); new BulkOperationPacked18(),
private static final BulkOperationPacked20 packed20 = new BulkOperationPacked20(); new BulkOperationPacked19(),
private static final BulkOperationPacked21 packed21 = new BulkOperationPacked21(); new BulkOperationPacked20(),
private static final BulkOperationPacked22 packed22 = new BulkOperationPacked22(); new BulkOperationPacked21(),
private static final BulkOperationPacked23 packed23 = new BulkOperationPacked23(); new BulkOperationPacked22(),
private static final BulkOperationPacked24 packed24 = new BulkOperationPacked24(); new BulkOperationPacked23(),
private static final BulkOperationPacked25 packed25 = new BulkOperationPacked25(); new BulkOperationPacked24(),
private static final BulkOperationPacked26 packed26 = new BulkOperationPacked26(); new BulkOperationPacked25(),
private static final BulkOperationPacked27 packed27 = new BulkOperationPacked27(); new BulkOperationPacked26(),
private static final BulkOperationPacked28 packed28 = new BulkOperationPacked28(); new BulkOperationPacked27(),
private static final BulkOperationPacked29 packed29 = new BulkOperationPacked29(); new BulkOperationPacked28(),
private static final BulkOperationPacked30 packed30 = new BulkOperationPacked30(); new BulkOperationPacked29(),
private static final BulkOperationPacked31 packed31 = new BulkOperationPacked31(); new BulkOperationPacked30(),
private static final BulkOperationPacked32 packed32 = new BulkOperationPacked32(); new BulkOperationPacked31(),
private static final BulkOperationPacked33 packed33 = new BulkOperationPacked33(); new BulkOperationPacked32(),
private static final BulkOperationPacked34 packed34 = new BulkOperationPacked34(); new BulkOperationPacked33(),
private static final BulkOperationPacked35 packed35 = new BulkOperationPacked35(); new BulkOperationPacked34(),
private static final BulkOperationPacked36 packed36 = new BulkOperationPacked36(); new BulkOperationPacked35(),
private static final BulkOperationPacked37 packed37 = new BulkOperationPacked37(); new BulkOperationPacked36(),
private static final BulkOperationPacked38 packed38 = new BulkOperationPacked38(); new BulkOperationPacked37(),
private static final BulkOperationPacked39 packed39 = new BulkOperationPacked39(); new BulkOperationPacked38(),
private static final BulkOperationPacked40 packed40 = new BulkOperationPacked40(); new BulkOperationPacked39(),
private static final BulkOperationPacked41 packed41 = new BulkOperationPacked41(); new BulkOperationPacked40(),
private static final BulkOperationPacked42 packed42 = new BulkOperationPacked42(); new BulkOperationPacked41(),
private static final BulkOperationPacked43 packed43 = new BulkOperationPacked43(); new BulkOperationPacked42(),
private static final BulkOperationPacked44 packed44 = new BulkOperationPacked44(); new BulkOperationPacked43(),
private static final BulkOperationPacked45 packed45 = new BulkOperationPacked45(); new BulkOperationPacked44(),
private static final BulkOperationPacked46 packed46 = new BulkOperationPacked46(); new BulkOperationPacked45(),
private static final BulkOperationPacked47 packed47 = new BulkOperationPacked47(); new BulkOperationPacked46(),
private static final BulkOperationPacked48 packed48 = new BulkOperationPacked48(); new BulkOperationPacked47(),
private static final BulkOperationPacked49 packed49 = new BulkOperationPacked49(); new BulkOperationPacked48(),
private static final BulkOperationPacked50 packed50 = new BulkOperationPacked50(); new BulkOperationPacked49(),
private static final BulkOperationPacked51 packed51 = new BulkOperationPacked51(); new BulkOperationPacked50(),
private static final BulkOperationPacked52 packed52 = new BulkOperationPacked52(); new BulkOperationPacked51(),
private static final BulkOperationPacked53 packed53 = new BulkOperationPacked53(); new BulkOperationPacked52(),
private static final BulkOperationPacked54 packed54 = new BulkOperationPacked54(); new BulkOperationPacked53(),
private static final BulkOperationPacked55 packed55 = new BulkOperationPacked55(); new BulkOperationPacked54(),
private static final BulkOperationPacked56 packed56 = new BulkOperationPacked56(); new BulkOperationPacked55(),
private static final BulkOperationPacked57 packed57 = new BulkOperationPacked57(); new BulkOperationPacked56(),
private static final BulkOperationPacked58 packed58 = new BulkOperationPacked58(); new BulkOperationPacked57(),
private static final BulkOperationPacked59 packed59 = new BulkOperationPacked59(); new BulkOperationPacked58(),
private static final BulkOperationPacked60 packed60 = new BulkOperationPacked60(); new BulkOperationPacked59(),
private static final BulkOperationPacked61 packed61 = new BulkOperationPacked61(); new BulkOperationPacked60(),
private static final BulkOperationPacked62 packed62 = new BulkOperationPacked62(); new BulkOperationPacked61(),
private static final BulkOperationPacked63 packed63 = new BulkOperationPacked63(); new BulkOperationPacked62(),
private static final BulkOperationPacked64 packed64 = new BulkOperationPacked64(); new BulkOperationPacked63(),
private static final BulkOperationPackedSingleBlock1 packedSingleBlock1 = new BulkOperationPackedSingleBlock1(); new BulkOperationPacked64(),
private static final BulkOperationPackedSingleBlock2 packedSingleBlock2 = new BulkOperationPackedSingleBlock2(); };
private static final BulkOperationPackedSingleBlock3 packedSingleBlock3 = new BulkOperationPackedSingleBlock3();
private static final BulkOperationPackedSingleBlock4 packedSingleBlock4 = new BulkOperationPackedSingleBlock4(); private static final BulkOperation packedSingleBlock1 = new BulkOperationPackedSingleBlock1();
private static final BulkOperationPackedSingleBlock5 packedSingleBlock5 = new BulkOperationPackedSingleBlock5(); private static final BulkOperation packedSingleBlock2 = new BulkOperationPackedSingleBlock2();
private static final BulkOperationPackedSingleBlock6 packedSingleBlock6 = new BulkOperationPackedSingleBlock6(); private static final BulkOperation packedSingleBlock3 = new BulkOperationPackedSingleBlock3();
private static final BulkOperationPackedSingleBlock7 packedSingleBlock7 = new BulkOperationPackedSingleBlock7(); private static final BulkOperation packedSingleBlock4 = new BulkOperationPackedSingleBlock4();
private static final BulkOperationPackedSingleBlock8 packedSingleBlock8 = new BulkOperationPackedSingleBlock8(); private static final BulkOperation packedSingleBlock5 = new BulkOperationPackedSingleBlock5();
private static final BulkOperationPackedSingleBlock9 packedSingleBlock9 = new BulkOperationPackedSingleBlock9(); private static final BulkOperation packedSingleBlock6 = new BulkOperationPackedSingleBlock6();
private static final BulkOperationPackedSingleBlock10 packedSingleBlock10 = new BulkOperationPackedSingleBlock10(); private static final BulkOperation packedSingleBlock7 = new BulkOperationPackedSingleBlock7();
private static final BulkOperationPackedSingleBlock12 packedSingleBlock12 = new BulkOperationPackedSingleBlock12(); private static final BulkOperation packedSingleBlock8 = new BulkOperationPackedSingleBlock8();
private static final BulkOperationPackedSingleBlock16 packedSingleBlock16 = new BulkOperationPackedSingleBlock16(); private static final BulkOperation packedSingleBlock9 = new BulkOperationPackedSingleBlock9();
private static final BulkOperationPackedSingleBlock21 packedSingleBlock21 = new BulkOperationPackedSingleBlock21(); private static final BulkOperation packedSingleBlock10 = new BulkOperationPackedSingleBlock10();
private static final BulkOperationPackedSingleBlock32 packedSingleBlock32 = new BulkOperationPackedSingleBlock32(); private static final BulkOperation packedSingleBlock12 = new BulkOperationPackedSingleBlock12();
private static final BulkOperation packedSingleBlock16 = new BulkOperationPackedSingleBlock16();
private static final BulkOperation packedSingleBlock21 = new BulkOperationPackedSingleBlock21();
private static final BulkOperation packedSingleBlock32 = new BulkOperationPackedSingleBlock32();
public static BulkOperation of(PackedInts.Format format, int bitsPerValue) { public static BulkOperation of(PackedInts.Format format, int bitsPerValue) {
switch (format) { switch (format) {
case PACKED: case PACKED:
switch (bitsPerValue) { return packedBulkOps[bitsPerValue - 1];
case 1:
return packed1;
case 2:
return packed2;
case 3:
return packed3;
case 4:
return packed4;
case 5:
return packed5;
case 6:
return packed6;
case 7:
return packed7;
case 8:
return packed8;
case 9:
return packed9;
case 10:
return packed10;
case 11:
return packed11;
case 12:
return packed12;
case 13:
return packed13;
case 14:
return packed14;
case 15:
return packed15;
case 16:
return packed16;
case 17:
return packed17;
case 18:
return packed18;
case 19:
return packed19;
case 20:
return packed20;
case 21:
return packed21;
case 22:
return packed22;
case 23:
return packed23;
case 24:
return packed24;
case 25:
return packed25;
case 26:
return packed26;
case 27:
return packed27;
case 28:
return packed28;
case 29:
return packed29;
case 30:
return packed30;
case 31:
return packed31;
case 32:
return packed32;
case 33:
return packed33;
case 34:
return packed34;
case 35:
return packed35;
case 36:
return packed36;
case 37:
return packed37;
case 38:
return packed38;
case 39:
return packed39;
case 40:
return packed40;
case 41:
return packed41;
case 42:
return packed42;
case 43:
return packed43;
case 44:
return packed44;
case 45:
return packed45;
case 46:
return packed46;
case 47:
return packed47;
case 48:
return packed48;
case 49:
return packed49;
case 50:
return packed50;
case 51:
return packed51;
case 52:
return packed52;
case 53:
return packed53;
case 54:
return packed54;
case 55:
return packed55;
case 56:
return packed56;
case 57:
return packed57;
case 58:
return packed58;
case 59:
return packed59;
case 60:
return packed60;
case 61:
return packed61;
case 62:
return packed62;
case 63:
return packed63;
case 64:
return packed64;
default:
throw new AssertionError();
}
case PACKED_SINGLE_BLOCK: case PACKED_SINGLE_BLOCK:
switch (bitsPerValue) { switch (bitsPerValue) {
case 1: case 1:

View File

@ -406,6 +406,7 @@ if __name__ == '__main__':
*/\n''') */\n''')
f.write('abstract class BulkOperation implements PackedInts.Decoder, PackedInts.Encoder {\n') f.write('abstract class BulkOperation implements PackedInts.Decoder, PackedInts.Encoder {\n')
f.write(' private static final BulkOperation[] packedBulkOps = new BulkOperation[] {\n')
for bpv in xrange(1, 65): for bpv in xrange(1, 65):
f2 = open('BulkOperationPacked%d.java' % bpv, 'w') f2 = open('BulkOperationPacked%d.java' % bpv, 'w')
@ -421,8 +422,10 @@ if __name__ == '__main__':
packed64(bpv, f2) packed64(bpv, f2)
f2.write('}\n') f2.write('}\n')
f2.close() f2.close()
f.write(' private static final BulkOperationPacked%d packed%d = new BulkOperationPacked%d();\n' % (bpv, bpv, bpv)) f.write(' new BulkOperationPacked%d(),\n' % bpv)
f.write(' };\n')
f.write('\n')
for bpv in PACKED_64_SINGLE_BLOCK_BPV: for bpv in PACKED_64_SINGLE_BLOCK_BPV:
f2 = open('BulkOperationPackedSingleBlock%d.java' % bpv, 'w') f2 = open('BulkOperationPackedSingleBlock%d.java' % bpv, 'w')
@ -434,19 +437,14 @@ if __name__ == '__main__':
packed64singleblock(bpv,f2) packed64singleblock(bpv,f2)
f2.write('}\n') f2.write('}\n')
f2.close() f2.close()
f.write(' private static final BulkOperationPackedSingleBlock%d packedSingleBlock%d = new BulkOperationPackedSingleBlock%d();\n' % (bpv, bpv, bpv)) f.write(' private static final BulkOperation packedSingleBlock%d = new BulkOperationPackedSingleBlock%d();\n' % (bpv, bpv))
f.write("\n")
f.write(" public static BulkOperation of(PackedInts.Format format, int bitsPerValue) {\n") f.write(" public static BulkOperation of(PackedInts.Format format, int bitsPerValue) {\n")
f.write(" switch (format) {\n") f.write(" switch (format) {\n")
f.write(" case PACKED:\n") f.write(" case PACKED:\n")
f.write(" switch (bitsPerValue) {\n") f.write(" return packedBulkOps[bitsPerValue - 1];\n")
for i in xrange(1, 65):
f.write(" case %d:\n" %i)
f.write(" return packed%d;\n" %i)
f.write(" default:\n")
f.write(" throw new AssertionError();\n")
f.write(" }\n")
f.write(" case PACKED_SINGLE_BLOCK:\n") f.write(" case PACKED_SINGLE_BLOCK:\n")
f.write(" switch (bitsPerValue) {\n") f.write(" switch (bitsPerValue) {\n")
for i in PACKED_64_SINGLE_BLOCK_BPV: for i in PACKED_64_SINGLE_BLOCK_BPV: