github.com/balzaczyy/golucene@v0.0.0-20151210033525-d0be9ee89713/core/util/packed/bulkOperation6.go (about)

     1  // This file has been automatically generated, DO NOT EDIT
     2  
     3  		package packed
     4  
     5  		// Efficient sequential read/write of packed integers.
     6  type BulkOperationPacked6 struct {
     7  	*BulkOperationPacked
     8  }
     9  
    10  func newBulkOperationPacked6() BulkOperation {
    11  	return &BulkOperationPacked6{newBulkOperationPacked(6)}
    12  }
    13  
    14  func (op *BulkOperationPacked6) decodeLongToInt(blocks []int64, values []int32, iterations int) {
    15  	blocksOffset, valuesOffset := 0, 0
    16  	for i := 0; i < iterations; i ++ {
    17  		block0 := blocks[blocksOffset]; blocksOffset++
    18  		values[valuesOffset] = int32(int64(uint64(block0) >> 58)); valuesOffset++
    19  		values[valuesOffset] = int32(int64(uint64(block0) >> 52) & 63); valuesOffset++
    20  		values[valuesOffset] = int32(int64(uint64(block0) >> 46) & 63); valuesOffset++
    21  		values[valuesOffset] = int32(int64(uint64(block0) >> 40) & 63); valuesOffset++
    22  		values[valuesOffset] = int32(int64(uint64(block0) >> 34) & 63); valuesOffset++
    23  		values[valuesOffset] = int32(int64(uint64(block0) >> 28) & 63); valuesOffset++
    24  		values[valuesOffset] = int32(int64(uint64(block0) >> 22) & 63); valuesOffset++
    25  		values[valuesOffset] = int32(int64(uint64(block0) >> 16) & 63); valuesOffset++
    26  		values[valuesOffset] = int32(int64(uint64(block0) >> 10) & 63); valuesOffset++
    27  		values[valuesOffset] = int32(int64(uint64(block0) >> 4) & 63); valuesOffset++
    28  		block1 := blocks[blocksOffset]; blocksOffset++
    29  		values[valuesOffset] = int32(((block0 & 15) << 2) | (int64(uint64(block1) >> 62))); valuesOffset++
    30  		values[valuesOffset] = int32(int64(uint64(block1) >> 56) & 63); valuesOffset++
    31  		values[valuesOffset] = int32(int64(uint64(block1) >> 50) & 63); valuesOffset++
    32  		values[valuesOffset] = int32(int64(uint64(block1) >> 44) & 63); valuesOffset++
    33  		values[valuesOffset] = int32(int64(uint64(block1) >> 38) & 63); valuesOffset++
    34  		values[valuesOffset] = int32(int64(uint64(block1) >> 32) & 63); valuesOffset++
    35  		values[valuesOffset] = int32(int64(uint64(block1) >> 26) & 63); valuesOffset++
    36  		values[valuesOffset] = int32(int64(uint64(block1) >> 20) & 63); valuesOffset++
    37  		values[valuesOffset] = int32(int64(uint64(block1) >> 14) & 63); valuesOffset++
    38  		values[valuesOffset] = int32(int64(uint64(block1) >> 8) & 63); valuesOffset++
    39  		values[valuesOffset] = int32(int64(uint64(block1) >> 2) & 63); valuesOffset++
    40  		block2 := blocks[blocksOffset]; blocksOffset++
    41  		values[valuesOffset] = int32(((block1 & 3) << 4) | (int64(uint64(block2) >> 60))); valuesOffset++
    42  		values[valuesOffset] = int32(int64(uint64(block2) >> 54) & 63); valuesOffset++
    43  		values[valuesOffset] = int32(int64(uint64(block2) >> 48) & 63); valuesOffset++
    44  		values[valuesOffset] = int32(int64(uint64(block2) >> 42) & 63); valuesOffset++
    45  		values[valuesOffset] = int32(int64(uint64(block2) >> 36) & 63); valuesOffset++
    46  		values[valuesOffset] = int32(int64(uint64(block2) >> 30) & 63); valuesOffset++
    47  		values[valuesOffset] = int32(int64(uint64(block2) >> 24) & 63); valuesOffset++
    48  		values[valuesOffset] = int32(int64(uint64(block2) >> 18) & 63); valuesOffset++
    49  		values[valuesOffset] = int32(int64(uint64(block2) >> 12) & 63); valuesOffset++
    50  		values[valuesOffset] = int32(int64(uint64(block2) >> 6) & 63); valuesOffset++
    51  		values[valuesOffset] = int32(block2 & 63); valuesOffset++
    52  	}
    53  }
    54  
    55  func (op *BulkOperationPacked6) decodeByteToInt(blocks []byte, values []int32, iterations int) {
    56  	blocksOffset, valuesOffset := 0, 0
    57  	for i := 0; i < iterations; i ++ {
    58  		byte0 := blocks[blocksOffset]
    59  		blocksOffset++
    60  		values[valuesOffset] = int32( int64(uint8(byte0) >> 2))
    61  		valuesOffset++
    62  		byte1 := blocks[blocksOffset]
    63  		blocksOffset++
    64  		values[valuesOffset] = int32((int64(byte0 & 3) << 4) | int64(uint8(byte1) >> 4))
    65  		valuesOffset++
    66  		byte2 := blocks[blocksOffset]
    67  		blocksOffset++
    68  		values[valuesOffset] = int32((int64(byte1 & 15) << 2) | int64(uint8(byte2) >> 6))
    69  		valuesOffset++
    70  		values[valuesOffset] = int32( int64(byte2) & 63)
    71  		valuesOffset++
    72  	}
    73  }
    74  func (op *BulkOperationPacked6) decodeLongToLong(blocks []int64, values []int64, iterations int) {
    75  	blocksOffset, valuesOffset := 0, 0
    76  	for i := 0; i < iterations; i ++ {
    77  		block0 := blocks[blocksOffset]; blocksOffset++
    78  		values[valuesOffset] = int64(uint64(block0) >> 58); valuesOffset++
    79  		values[valuesOffset] = int64(uint64(block0) >> 52) & 63; valuesOffset++
    80  		values[valuesOffset] = int64(uint64(block0) >> 46) & 63; valuesOffset++
    81  		values[valuesOffset] = int64(uint64(block0) >> 40) & 63; valuesOffset++
    82  		values[valuesOffset] = int64(uint64(block0) >> 34) & 63; valuesOffset++
    83  		values[valuesOffset] = int64(uint64(block0) >> 28) & 63; valuesOffset++
    84  		values[valuesOffset] = int64(uint64(block0) >> 22) & 63; valuesOffset++
    85  		values[valuesOffset] = int64(uint64(block0) >> 16) & 63; valuesOffset++
    86  		values[valuesOffset] = int64(uint64(block0) >> 10) & 63; valuesOffset++
    87  		values[valuesOffset] = int64(uint64(block0) >> 4) & 63; valuesOffset++
    88  		block1 := blocks[blocksOffset]; blocksOffset++
    89  		values[valuesOffset] = ((block0 & 15) << 2) | (int64(uint64(block1) >> 62)); valuesOffset++
    90  		values[valuesOffset] = int64(uint64(block1) >> 56) & 63; valuesOffset++
    91  		values[valuesOffset] = int64(uint64(block1) >> 50) & 63; valuesOffset++
    92  		values[valuesOffset] = int64(uint64(block1) >> 44) & 63; valuesOffset++
    93  		values[valuesOffset] = int64(uint64(block1) >> 38) & 63; valuesOffset++
    94  		values[valuesOffset] = int64(uint64(block1) >> 32) & 63; valuesOffset++
    95  		values[valuesOffset] = int64(uint64(block1) >> 26) & 63; valuesOffset++
    96  		values[valuesOffset] = int64(uint64(block1) >> 20) & 63; valuesOffset++
    97  		values[valuesOffset] = int64(uint64(block1) >> 14) & 63; valuesOffset++
    98  		values[valuesOffset] = int64(uint64(block1) >> 8) & 63; valuesOffset++
    99  		values[valuesOffset] = int64(uint64(block1) >> 2) & 63; valuesOffset++
   100  		block2 := blocks[blocksOffset]; blocksOffset++
   101  		values[valuesOffset] = ((block1 & 3) << 4) | (int64(uint64(block2) >> 60)); valuesOffset++
   102  		values[valuesOffset] = int64(uint64(block2) >> 54) & 63; valuesOffset++
   103  		values[valuesOffset] = int64(uint64(block2) >> 48) & 63; valuesOffset++
   104  		values[valuesOffset] = int64(uint64(block2) >> 42) & 63; valuesOffset++
   105  		values[valuesOffset] = int64(uint64(block2) >> 36) & 63; valuesOffset++
   106  		values[valuesOffset] = int64(uint64(block2) >> 30) & 63; valuesOffset++
   107  		values[valuesOffset] = int64(uint64(block2) >> 24) & 63; valuesOffset++
   108  		values[valuesOffset] = int64(uint64(block2) >> 18) & 63; valuesOffset++
   109  		values[valuesOffset] = int64(uint64(block2) >> 12) & 63; valuesOffset++
   110  		values[valuesOffset] = int64(uint64(block2) >> 6) & 63; valuesOffset++
   111  		values[valuesOffset] = block2 & 63; valuesOffset++
   112  	}
   113  }
   114  
   115  func (op *BulkOperationPacked6) decodeByteToLong(blocks []byte, values []int64, iterations int) {
   116  	blocksOffset, valuesOffset := 0, 0
   117  	for i := 0; i < iterations; i ++ {
   118  		byte0 := blocks[blocksOffset]
   119  		blocksOffset++
   120  		values[valuesOffset] = int64( int64(uint8(byte0) >> 2))
   121  		valuesOffset++
   122  		byte1 := blocks[blocksOffset]
   123  		blocksOffset++
   124  		values[valuesOffset] = int64((int64(byte0 & 3) << 4) | int64(uint8(byte1) >> 4))
   125  		valuesOffset++
   126  		byte2 := blocks[blocksOffset]
   127  		blocksOffset++
   128  		values[valuesOffset] = int64((int64(byte1 & 15) << 2) | int64(uint8(byte2) >> 6))
   129  		valuesOffset++
   130  		values[valuesOffset] = int64( int64(byte2) & 63)
   131  		valuesOffset++
   132  	}
   133  }