github.com/balzaczyy/golucene@v0.0.0-20151210033525-d0be9ee89713/core/util/packed/bulkOperation3.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 BulkOperationPacked3 struct {
     7  	*BulkOperationPacked
     8  }
     9  
    10  func newBulkOperationPacked3() BulkOperation {
    11  	return &BulkOperationPacked3{newBulkOperationPacked(3)}
    12  }
    13  
    14  func (op *BulkOperationPacked3) 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) >> 61)); valuesOffset++
    19  		values[valuesOffset] = int32(int64(uint64(block0) >> 58) & 7); valuesOffset++
    20  		values[valuesOffset] = int32(int64(uint64(block0) >> 55) & 7); valuesOffset++
    21  		values[valuesOffset] = int32(int64(uint64(block0) >> 52) & 7); valuesOffset++
    22  		values[valuesOffset] = int32(int64(uint64(block0) >> 49) & 7); valuesOffset++
    23  		values[valuesOffset] = int32(int64(uint64(block0) >> 46) & 7); valuesOffset++
    24  		values[valuesOffset] = int32(int64(uint64(block0) >> 43) & 7); valuesOffset++
    25  		values[valuesOffset] = int32(int64(uint64(block0) >> 40) & 7); valuesOffset++
    26  		values[valuesOffset] = int32(int64(uint64(block0) >> 37) & 7); valuesOffset++
    27  		values[valuesOffset] = int32(int64(uint64(block0) >> 34) & 7); valuesOffset++
    28  		values[valuesOffset] = int32(int64(uint64(block0) >> 31) & 7); valuesOffset++
    29  		values[valuesOffset] = int32(int64(uint64(block0) >> 28) & 7); valuesOffset++
    30  		values[valuesOffset] = int32(int64(uint64(block0) >> 25) & 7); valuesOffset++
    31  		values[valuesOffset] = int32(int64(uint64(block0) >> 22) & 7); valuesOffset++
    32  		values[valuesOffset] = int32(int64(uint64(block0) >> 19) & 7); valuesOffset++
    33  		values[valuesOffset] = int32(int64(uint64(block0) >> 16) & 7); valuesOffset++
    34  		values[valuesOffset] = int32(int64(uint64(block0) >> 13) & 7); valuesOffset++
    35  		values[valuesOffset] = int32(int64(uint64(block0) >> 10) & 7); valuesOffset++
    36  		values[valuesOffset] = int32(int64(uint64(block0) >> 7) & 7); valuesOffset++
    37  		values[valuesOffset] = int32(int64(uint64(block0) >> 4) & 7); valuesOffset++
    38  		values[valuesOffset] = int32(int64(uint64(block0) >> 1) & 7); valuesOffset++
    39  		block1 := blocks[blocksOffset]; blocksOffset++
    40  		values[valuesOffset] = int32(((block0 & 1) << 2) | (int64(uint64(block1) >> 62))); valuesOffset++
    41  		values[valuesOffset] = int32(int64(uint64(block1) >> 59) & 7); valuesOffset++
    42  		values[valuesOffset] = int32(int64(uint64(block1) >> 56) & 7); valuesOffset++
    43  		values[valuesOffset] = int32(int64(uint64(block1) >> 53) & 7); valuesOffset++
    44  		values[valuesOffset] = int32(int64(uint64(block1) >> 50) & 7); valuesOffset++
    45  		values[valuesOffset] = int32(int64(uint64(block1) >> 47) & 7); valuesOffset++
    46  		values[valuesOffset] = int32(int64(uint64(block1) >> 44) & 7); valuesOffset++
    47  		values[valuesOffset] = int32(int64(uint64(block1) >> 41) & 7); valuesOffset++
    48  		values[valuesOffset] = int32(int64(uint64(block1) >> 38) & 7); valuesOffset++
    49  		values[valuesOffset] = int32(int64(uint64(block1) >> 35) & 7); valuesOffset++
    50  		values[valuesOffset] = int32(int64(uint64(block1) >> 32) & 7); valuesOffset++
    51  		values[valuesOffset] = int32(int64(uint64(block1) >> 29) & 7); valuesOffset++
    52  		values[valuesOffset] = int32(int64(uint64(block1) >> 26) & 7); valuesOffset++
    53  		values[valuesOffset] = int32(int64(uint64(block1) >> 23) & 7); valuesOffset++
    54  		values[valuesOffset] = int32(int64(uint64(block1) >> 20) & 7); valuesOffset++
    55  		values[valuesOffset] = int32(int64(uint64(block1) >> 17) & 7); valuesOffset++
    56  		values[valuesOffset] = int32(int64(uint64(block1) >> 14) & 7); valuesOffset++
    57  		values[valuesOffset] = int32(int64(uint64(block1) >> 11) & 7); valuesOffset++
    58  		values[valuesOffset] = int32(int64(uint64(block1) >> 8) & 7); valuesOffset++
    59  		values[valuesOffset] = int32(int64(uint64(block1) >> 5) & 7); valuesOffset++
    60  		values[valuesOffset] = int32(int64(uint64(block1) >> 2) & 7); valuesOffset++
    61  		block2 := blocks[blocksOffset]; blocksOffset++
    62  		values[valuesOffset] = int32(((block1 & 3) << 1) | (int64(uint64(block2) >> 63))); valuesOffset++
    63  		values[valuesOffset] = int32(int64(uint64(block2) >> 60) & 7); valuesOffset++
    64  		values[valuesOffset] = int32(int64(uint64(block2) >> 57) & 7); valuesOffset++
    65  		values[valuesOffset] = int32(int64(uint64(block2) >> 54) & 7); valuesOffset++
    66  		values[valuesOffset] = int32(int64(uint64(block2) >> 51) & 7); valuesOffset++
    67  		values[valuesOffset] = int32(int64(uint64(block2) >> 48) & 7); valuesOffset++
    68  		values[valuesOffset] = int32(int64(uint64(block2) >> 45) & 7); valuesOffset++
    69  		values[valuesOffset] = int32(int64(uint64(block2) >> 42) & 7); valuesOffset++
    70  		values[valuesOffset] = int32(int64(uint64(block2) >> 39) & 7); valuesOffset++
    71  		values[valuesOffset] = int32(int64(uint64(block2) >> 36) & 7); valuesOffset++
    72  		values[valuesOffset] = int32(int64(uint64(block2) >> 33) & 7); valuesOffset++
    73  		values[valuesOffset] = int32(int64(uint64(block2) >> 30) & 7); valuesOffset++
    74  		values[valuesOffset] = int32(int64(uint64(block2) >> 27) & 7); valuesOffset++
    75  		values[valuesOffset] = int32(int64(uint64(block2) >> 24) & 7); valuesOffset++
    76  		values[valuesOffset] = int32(int64(uint64(block2) >> 21) & 7); valuesOffset++
    77  		values[valuesOffset] = int32(int64(uint64(block2) >> 18) & 7); valuesOffset++
    78  		values[valuesOffset] = int32(int64(uint64(block2) >> 15) & 7); valuesOffset++
    79  		values[valuesOffset] = int32(int64(uint64(block2) >> 12) & 7); valuesOffset++
    80  		values[valuesOffset] = int32(int64(uint64(block2) >> 9) & 7); valuesOffset++
    81  		values[valuesOffset] = int32(int64(uint64(block2) >> 6) & 7); valuesOffset++
    82  		values[valuesOffset] = int32(int64(uint64(block2) >> 3) & 7); valuesOffset++
    83  		values[valuesOffset] = int32(block2 & 7); valuesOffset++
    84  	}
    85  }
    86  
    87  func (op *BulkOperationPacked3) decodeByteToInt(blocks []byte, values []int32, iterations int) {
    88  	blocksOffset, valuesOffset := 0, 0
    89  	for i := 0; i < iterations; i ++ {
    90  		byte0 := blocks[blocksOffset]
    91  		blocksOffset++
    92  		values[valuesOffset] = int32( int64(uint8(byte0) >> 5))
    93  		valuesOffset++
    94  		values[valuesOffset] = int32( int64(uint8(byte0) >> 2) & 7)
    95  		valuesOffset++
    96  		byte1 := blocks[blocksOffset]
    97  		blocksOffset++
    98  		values[valuesOffset] = int32((int64(byte0 & 3) << 1) | int64(uint8(byte1) >> 7))
    99  		valuesOffset++
   100  		values[valuesOffset] = int32( int64(uint8(byte1) >> 4) & 7)
   101  		valuesOffset++
   102  		values[valuesOffset] = int32( int64(uint8(byte1) >> 1) & 7)
   103  		valuesOffset++
   104  		byte2 := blocks[blocksOffset]
   105  		blocksOffset++
   106  		values[valuesOffset] = int32((int64(byte1 & 1) << 2) | int64(uint8(byte2) >> 6))
   107  		valuesOffset++
   108  		values[valuesOffset] = int32( int64(uint8(byte2) >> 3) & 7)
   109  		valuesOffset++
   110  		values[valuesOffset] = int32( int64(byte2) & 7)
   111  		valuesOffset++
   112  	}
   113  }
   114  func (op *BulkOperationPacked3) decodeLongToLong(blocks []int64, values []int64, iterations int) {
   115  	blocksOffset, valuesOffset := 0, 0
   116  	for i := 0; i < iterations; i ++ {
   117  		block0 := blocks[blocksOffset]; blocksOffset++
   118  		values[valuesOffset] = int64(uint64(block0) >> 61); valuesOffset++
   119  		values[valuesOffset] = int64(uint64(block0) >> 58) & 7; valuesOffset++
   120  		values[valuesOffset] = int64(uint64(block0) >> 55) & 7; valuesOffset++
   121  		values[valuesOffset] = int64(uint64(block0) >> 52) & 7; valuesOffset++
   122  		values[valuesOffset] = int64(uint64(block0) >> 49) & 7; valuesOffset++
   123  		values[valuesOffset] = int64(uint64(block0) >> 46) & 7; valuesOffset++
   124  		values[valuesOffset] = int64(uint64(block0) >> 43) & 7; valuesOffset++
   125  		values[valuesOffset] = int64(uint64(block0) >> 40) & 7; valuesOffset++
   126  		values[valuesOffset] = int64(uint64(block0) >> 37) & 7; valuesOffset++
   127  		values[valuesOffset] = int64(uint64(block0) >> 34) & 7; valuesOffset++
   128  		values[valuesOffset] = int64(uint64(block0) >> 31) & 7; valuesOffset++
   129  		values[valuesOffset] = int64(uint64(block0) >> 28) & 7; valuesOffset++
   130  		values[valuesOffset] = int64(uint64(block0) >> 25) & 7; valuesOffset++
   131  		values[valuesOffset] = int64(uint64(block0) >> 22) & 7; valuesOffset++
   132  		values[valuesOffset] = int64(uint64(block0) >> 19) & 7; valuesOffset++
   133  		values[valuesOffset] = int64(uint64(block0) >> 16) & 7; valuesOffset++
   134  		values[valuesOffset] = int64(uint64(block0) >> 13) & 7; valuesOffset++
   135  		values[valuesOffset] = int64(uint64(block0) >> 10) & 7; valuesOffset++
   136  		values[valuesOffset] = int64(uint64(block0) >> 7) & 7; valuesOffset++
   137  		values[valuesOffset] = int64(uint64(block0) >> 4) & 7; valuesOffset++
   138  		values[valuesOffset] = int64(uint64(block0) >> 1) & 7; valuesOffset++
   139  		block1 := blocks[blocksOffset]; blocksOffset++
   140  		values[valuesOffset] = ((block0 & 1) << 2) | (int64(uint64(block1) >> 62)); valuesOffset++
   141  		values[valuesOffset] = int64(uint64(block1) >> 59) & 7; valuesOffset++
   142  		values[valuesOffset] = int64(uint64(block1) >> 56) & 7; valuesOffset++
   143  		values[valuesOffset] = int64(uint64(block1) >> 53) & 7; valuesOffset++
   144  		values[valuesOffset] = int64(uint64(block1) >> 50) & 7; valuesOffset++
   145  		values[valuesOffset] = int64(uint64(block1) >> 47) & 7; valuesOffset++
   146  		values[valuesOffset] = int64(uint64(block1) >> 44) & 7; valuesOffset++
   147  		values[valuesOffset] = int64(uint64(block1) >> 41) & 7; valuesOffset++
   148  		values[valuesOffset] = int64(uint64(block1) >> 38) & 7; valuesOffset++
   149  		values[valuesOffset] = int64(uint64(block1) >> 35) & 7; valuesOffset++
   150  		values[valuesOffset] = int64(uint64(block1) >> 32) & 7; valuesOffset++
   151  		values[valuesOffset] = int64(uint64(block1) >> 29) & 7; valuesOffset++
   152  		values[valuesOffset] = int64(uint64(block1) >> 26) & 7; valuesOffset++
   153  		values[valuesOffset] = int64(uint64(block1) >> 23) & 7; valuesOffset++
   154  		values[valuesOffset] = int64(uint64(block1) >> 20) & 7; valuesOffset++
   155  		values[valuesOffset] = int64(uint64(block1) >> 17) & 7; valuesOffset++
   156  		values[valuesOffset] = int64(uint64(block1) >> 14) & 7; valuesOffset++
   157  		values[valuesOffset] = int64(uint64(block1) >> 11) & 7; valuesOffset++
   158  		values[valuesOffset] = int64(uint64(block1) >> 8) & 7; valuesOffset++
   159  		values[valuesOffset] = int64(uint64(block1) >> 5) & 7; valuesOffset++
   160  		values[valuesOffset] = int64(uint64(block1) >> 2) & 7; valuesOffset++
   161  		block2 := blocks[blocksOffset]; blocksOffset++
   162  		values[valuesOffset] = ((block1 & 3) << 1) | (int64(uint64(block2) >> 63)); valuesOffset++
   163  		values[valuesOffset] = int64(uint64(block2) >> 60) & 7; valuesOffset++
   164  		values[valuesOffset] = int64(uint64(block2) >> 57) & 7; valuesOffset++
   165  		values[valuesOffset] = int64(uint64(block2) >> 54) & 7; valuesOffset++
   166  		values[valuesOffset] = int64(uint64(block2) >> 51) & 7; valuesOffset++
   167  		values[valuesOffset] = int64(uint64(block2) >> 48) & 7; valuesOffset++
   168  		values[valuesOffset] = int64(uint64(block2) >> 45) & 7; valuesOffset++
   169  		values[valuesOffset] = int64(uint64(block2) >> 42) & 7; valuesOffset++
   170  		values[valuesOffset] = int64(uint64(block2) >> 39) & 7; valuesOffset++
   171  		values[valuesOffset] = int64(uint64(block2) >> 36) & 7; valuesOffset++
   172  		values[valuesOffset] = int64(uint64(block2) >> 33) & 7; valuesOffset++
   173  		values[valuesOffset] = int64(uint64(block2) >> 30) & 7; valuesOffset++
   174  		values[valuesOffset] = int64(uint64(block2) >> 27) & 7; valuesOffset++
   175  		values[valuesOffset] = int64(uint64(block2) >> 24) & 7; valuesOffset++
   176  		values[valuesOffset] = int64(uint64(block2) >> 21) & 7; valuesOffset++
   177  		values[valuesOffset] = int64(uint64(block2) >> 18) & 7; valuesOffset++
   178  		values[valuesOffset] = int64(uint64(block2) >> 15) & 7; valuesOffset++
   179  		values[valuesOffset] = int64(uint64(block2) >> 12) & 7; valuesOffset++
   180  		values[valuesOffset] = int64(uint64(block2) >> 9) & 7; valuesOffset++
   181  		values[valuesOffset] = int64(uint64(block2) >> 6) & 7; valuesOffset++
   182  		values[valuesOffset] = int64(uint64(block2) >> 3) & 7; valuesOffset++
   183  		values[valuesOffset] = block2 & 7; valuesOffset++
   184  	}
   185  }
   186  
   187  func (op *BulkOperationPacked3) decodeByteToLong(blocks []byte, values []int64, iterations int) {
   188  	blocksOffset, valuesOffset := 0, 0
   189  	for i := 0; i < iterations; i ++ {
   190  		byte0 := blocks[blocksOffset]
   191  		blocksOffset++
   192  		values[valuesOffset] = int64( int64(uint8(byte0) >> 5))
   193  		valuesOffset++
   194  		values[valuesOffset] = int64( int64(uint8(byte0) >> 2) & 7)
   195  		valuesOffset++
   196  		byte1 := blocks[blocksOffset]
   197  		blocksOffset++
   198  		values[valuesOffset] = int64((int64(byte0 & 3) << 1) | int64(uint8(byte1) >> 7))
   199  		valuesOffset++
   200  		values[valuesOffset] = int64( int64(uint8(byte1) >> 4) & 7)
   201  		valuesOffset++
   202  		values[valuesOffset] = int64( int64(uint8(byte1) >> 1) & 7)
   203  		valuesOffset++
   204  		byte2 := blocks[blocksOffset]
   205  		blocksOffset++
   206  		values[valuesOffset] = int64((int64(byte1 & 1) << 2) | int64(uint8(byte2) >> 6))
   207  		valuesOffset++
   208  		values[valuesOffset] = int64( int64(uint8(byte2) >> 3) & 7)
   209  		valuesOffset++
   210  		values[valuesOffset] = int64( int64(byte2) & 7)
   211  		valuesOffset++
   212  	}
   213  }