github.com/balzaczyy/golucene@v0.0.0-20151210033525-d0be9ee89713/core/util/packed/bulkOperation12.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 BulkOperationPacked12 struct {
     7  	*BulkOperationPacked
     8  }
     9  
    10  func newBulkOperationPacked12() BulkOperation {
    11  	return &BulkOperationPacked12{newBulkOperationPacked(12)}
    12  }
    13  
    14  func (op *BulkOperationPacked12) 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) >> 52)); valuesOffset++
    19  		values[valuesOffset] = int32(int64(uint64(block0) >> 40) & 4095); valuesOffset++
    20  		values[valuesOffset] = int32(int64(uint64(block0) >> 28) & 4095); valuesOffset++
    21  		values[valuesOffset] = int32(int64(uint64(block0) >> 16) & 4095); valuesOffset++
    22  		values[valuesOffset] = int32(int64(uint64(block0) >> 4) & 4095); valuesOffset++
    23  		block1 := blocks[blocksOffset]; blocksOffset++
    24  		values[valuesOffset] = int32(((block0 & 15) << 8) | (int64(uint64(block1) >> 56))); valuesOffset++
    25  		values[valuesOffset] = int32(int64(uint64(block1) >> 44) & 4095); valuesOffset++
    26  		values[valuesOffset] = int32(int64(uint64(block1) >> 32) & 4095); valuesOffset++
    27  		values[valuesOffset] = int32(int64(uint64(block1) >> 20) & 4095); valuesOffset++
    28  		values[valuesOffset] = int32(int64(uint64(block1) >> 8) & 4095); valuesOffset++
    29  		block2 := blocks[blocksOffset]; blocksOffset++
    30  		values[valuesOffset] = int32(((block1 & 255) << 4) | (int64(uint64(block2) >> 60))); valuesOffset++
    31  		values[valuesOffset] = int32(int64(uint64(block2) >> 48) & 4095); valuesOffset++
    32  		values[valuesOffset] = int32(int64(uint64(block2) >> 36) & 4095); valuesOffset++
    33  		values[valuesOffset] = int32(int64(uint64(block2) >> 24) & 4095); valuesOffset++
    34  		values[valuesOffset] = int32(int64(uint64(block2) >> 12) & 4095); valuesOffset++
    35  		values[valuesOffset] = int32(block2 & 4095); valuesOffset++
    36  	}
    37  }
    38  
    39  func (op *BulkOperationPacked12) decodeByteToInt(blocks []byte, values []int32, iterations int) {
    40  	blocksOffset, valuesOffset := 0, 0
    41  	for i := 0; i < iterations; i ++ {
    42  		byte0 := blocks[blocksOffset]
    43  		blocksOffset++
    44  		byte1 := blocks[blocksOffset]
    45  		blocksOffset++
    46  		values[valuesOffset] = int32((int64(byte0) << 4) | int64(uint8(byte1) >> 4))
    47  		valuesOffset++
    48  		byte2 := blocks[blocksOffset]
    49  		blocksOffset++
    50  		values[valuesOffset] = int32((int64(byte1 & 15) << 8) | int64(byte2))
    51  		valuesOffset++
    52  	}
    53  }
    54  func (op *BulkOperationPacked12) decodeLongToLong(blocks []int64, values []int64, iterations int) {
    55  	blocksOffset, valuesOffset := 0, 0
    56  	for i := 0; i < iterations; i ++ {
    57  		block0 := blocks[blocksOffset]; blocksOffset++
    58  		values[valuesOffset] = int64(uint64(block0) >> 52); valuesOffset++
    59  		values[valuesOffset] = int64(uint64(block0) >> 40) & 4095; valuesOffset++
    60  		values[valuesOffset] = int64(uint64(block0) >> 28) & 4095; valuesOffset++
    61  		values[valuesOffset] = int64(uint64(block0) >> 16) & 4095; valuesOffset++
    62  		values[valuesOffset] = int64(uint64(block0) >> 4) & 4095; valuesOffset++
    63  		block1 := blocks[blocksOffset]; blocksOffset++
    64  		values[valuesOffset] = ((block0 & 15) << 8) | (int64(uint64(block1) >> 56)); valuesOffset++
    65  		values[valuesOffset] = int64(uint64(block1) >> 44) & 4095; valuesOffset++
    66  		values[valuesOffset] = int64(uint64(block1) >> 32) & 4095; valuesOffset++
    67  		values[valuesOffset] = int64(uint64(block1) >> 20) & 4095; valuesOffset++
    68  		values[valuesOffset] = int64(uint64(block1) >> 8) & 4095; valuesOffset++
    69  		block2 := blocks[blocksOffset]; blocksOffset++
    70  		values[valuesOffset] = ((block1 & 255) << 4) | (int64(uint64(block2) >> 60)); valuesOffset++
    71  		values[valuesOffset] = int64(uint64(block2) >> 48) & 4095; valuesOffset++
    72  		values[valuesOffset] = int64(uint64(block2) >> 36) & 4095; valuesOffset++
    73  		values[valuesOffset] = int64(uint64(block2) >> 24) & 4095; valuesOffset++
    74  		values[valuesOffset] = int64(uint64(block2) >> 12) & 4095; valuesOffset++
    75  		values[valuesOffset] = block2 & 4095; valuesOffset++
    76  	}
    77  }
    78  
    79  func (op *BulkOperationPacked12) decodeByteToLong(blocks []byte, values []int64, iterations int) {
    80  	blocksOffset, valuesOffset := 0, 0
    81  	for i := 0; i < iterations; i ++ {
    82  		byte0 := blocks[blocksOffset]
    83  		blocksOffset++
    84  		byte1 := blocks[blocksOffset]
    85  		blocksOffset++
    86  		values[valuesOffset] = int64((int64(byte0) << 4) | int64(uint8(byte1) >> 4))
    87  		valuesOffset++
    88  		byte2 := blocks[blocksOffset]
    89  		blocksOffset++
    90  		values[valuesOffset] = int64((int64(byte1 & 15) << 8) | int64(byte2))
    91  		valuesOffset++
    92  	}
    93  }