github.com/balzaczyy/golucene@v0.0.0-20151210033525-d0be9ee89713/core/util/packed/bulkOperation2.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 BulkOperationPacked2 struct { 7 *BulkOperationPacked 8 } 9 10 func newBulkOperationPacked2() BulkOperation { 11 return &BulkOperationPacked2{newBulkOperationPacked(2)} 12 } 13 14 func (op *BulkOperationPacked2) decodeLongToInt(blocks []int64, values []int32, iterations int) { 15 blocksOffset, valuesOffset := 0, 0 16 for i := 0; i < iterations; i ++ { 17 block := blocks[blocksOffset]; blocksOffset++ 18 for shift := uint(62); shift >= 0; shift -= 2 { 19 values[valuesOffset] = int32((int64(uint64(block) >> shift)) & 3); valuesOffset++ 20 } 21 } 22 } 23 24 func (op *BulkOperationPacked2) decodeByteToInt(blocks []byte, values []int32, iterations int) { 25 blocksOffset, valuesOffset := 0, 0 26 for j := 0; j < iterations; j ++ { 27 block := blocks[blocksOffset] 28 blocksOffset++ 29 values[valuesOffset] = int32(byte(uint8(block)) >> 6) & 3 30 valuesOffset++ 31 values[valuesOffset] = int32(byte(uint8(block)) >> 4) & 3 32 valuesOffset++ 33 values[valuesOffset] = int32(byte(uint8(block)) >> 2) & 3 34 valuesOffset++ 35 values[valuesOffset] = int32(block & 3) 36 valuesOffset++ 37 } 38 } 39 func (op *BulkOperationPacked2) decodeLongToLong(blocks []int64, values []int64, iterations int) { 40 blocksOffset, valuesOffset := 0, 0 41 for i := 0; i < iterations; i ++ { 42 block := blocks[blocksOffset]; blocksOffset++ 43 for shift := uint(62); shift >= 0; shift -= 2 { 44 values[valuesOffset] = (int64(uint64(block) >> shift)) & 3; valuesOffset++ 45 } 46 } 47 } 48 49 func (op *BulkOperationPacked2) decodeByteToLong(blocks []byte, values []int64, iterations int) { 50 blocksOffset, valuesOffset := 0, 0 51 for j := 0; j < iterations; j ++ { 52 block := blocks[blocksOffset] 53 blocksOffset++ 54 values[valuesOffset] = int64(byte(uint8(block)) >> 6) & 3 55 valuesOffset++ 56 values[valuesOffset] = int64(byte(uint8(block)) >> 4) & 3 57 valuesOffset++ 58 values[valuesOffset] = int64(byte(uint8(block)) >> 2) & 3 59 valuesOffset++ 60 values[valuesOffset] = int64(block & 3) 61 valuesOffset++ 62 } 63 }