All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.jasonruckman.sidney.bitpacking.packers.le.int32.Packer13 Maven / Gradle / Ivy

The newest version!
package com.github.jasonruckman.sidney.bitpacking.packers.le.int32;

import com.github.jasonruckman.sidney.bitpacking.Int32BytePacker;

public final class Packer13 extends Int32BytePacker {

  public Packer13() {
    super(13);
  }

  public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
    out[0 + outPos] = (byte) ((
        //                       [76543210]
        //                  [_____76543210]
        ((in[0 + inPos] & 8191))) & 255);
    out[1 + outPos] = (byte) ((
        //                       [___43210]
        //                          [21098________]
        ((in[0 + inPos] & 8191) >>> 8)
            | //                       [765_____]
            //             [__________210]
            ((in[1 + inPos] & 8191) << 5)) & 255);
    out[2 + outPos] = (byte) ((
        //                       [76543210]
        //                     [__09876543___]
        ((in[1 + inPos] & 8191) >>> 3)) & 255);
    out[3 + outPos] = (byte) ((
        //                       [______10]
        //                             [21___________]
        ((in[1 + inPos] & 8191) >>> 11)
            | //                       [765432__]
            //                [_______543210]
            ((in[2 + inPos] & 8191) << 2)) & 255);
    out[4 + outPos] = (byte) ((
        //                       [_6543210]
        //                        [2109876______]
        ((in[2 + inPos] & 8191) >>> 6)
            | //                       [7_______]
            //           [____________0]
            ((in[3 + inPos] & 8191) << 7)) & 255);
    out[5 + outPos] = (byte) ((
        //                       [76543210]
        //                   [____87654321_]
        ((in[3 + inPos] & 8191) >>> 1)) & 255);
    out[6 + outPos] = (byte) ((
        //                       [____3210]
        //                           [2109_________]
        ((in[3 + inPos] & 8191) >>> 9)
            | //                       [7654____]
            //              [_________3210]
            ((in[4 + inPos] & 8191) << 4)) & 255);
    out[7 + outPos] = (byte) ((
        //                       [76543210]
        //                      [_10987654____]
        ((in[4 + inPos] & 8191) >>> 4)) & 255);
    out[8 + outPos] = (byte) ((
        //                       [_______0]
        //                              [2____________]
        ((in[4 + inPos] & 8191) >>> 12)
            | //                       [7654321_]
            //                 [______6543210]
            ((in[5 + inPos] & 8191) << 1)) & 255);
    out[9 + outPos] = (byte) ((
        //                       [__543210]
        //                         [210987_______]
        ((in[5 + inPos] & 8191) >>> 7)
            | //                       [76______]
            //            [___________10]
            ((in[6 + inPos] & 8191) << 6)) & 255);
    out[10 + outPos] = (byte) ((
        //                       [76543210]
        //                    [___98765432__]
        ((in[6 + inPos] & 8191) >>> 2)) & 255);
    out[11 + outPos] = (byte) ((
        //                       [_____210]
        //                            [210__________]
        ((in[6 + inPos] & 8191) >>> 10)
            | //                       [76543___]
            //               [________43210]
            ((in[7 + inPos] & 8191) << 3)) & 255);
    out[12 + outPos] = (byte) ((
        //                       [76543210]
        //                       [21098765_____]
        ((in[7 + inPos] & 8191) >>> 5)) & 255);
  }

  public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
    out[0 + outPos] = (byte) ((
        //                       [76543210]
        //                  [_____76543210]
        ((in[0 + inPos] & 8191))) & 255);
    out[1 + outPos] = (byte) ((
        //                       [___43210]
        //                          [21098________]
        ((in[0 + inPos] & 8191) >>> 8)
            | //                       [765_____]
            //             [__________210]
            ((in[1 + inPos] & 8191) << 5)) & 255);
    out[2 + outPos] = (byte) ((
        //                       [76543210]
        //                     [__09876543___]
        ((in[1 + inPos] & 8191) >>> 3)) & 255);
    out[3 + outPos] = (byte) ((
        //                       [______10]
        //                             [21___________]
        ((in[1 + inPos] & 8191) >>> 11)
            | //                       [765432__]
            //                [_______543210]
            ((in[2 + inPos] & 8191) << 2)) & 255);
    out[4 + outPos] = (byte) ((
        //                       [_6543210]
        //                        [2109876______]
        ((in[2 + inPos] & 8191) >>> 6)
            | //                       [7_______]
            //           [____________0]
            ((in[3 + inPos] & 8191) << 7)) & 255);
    out[5 + outPos] = (byte) ((
        //                       [76543210]
        //                   [____87654321_]
        ((in[3 + inPos] & 8191) >>> 1)) & 255);
    out[6 + outPos] = (byte) ((
        //                       [____3210]
        //                           [2109_________]
        ((in[3 + inPos] & 8191) >>> 9)
            | //                       [7654____]
            //              [_________3210]
            ((in[4 + inPos] & 8191) << 4)) & 255);
    out[7 + outPos] = (byte) ((
        //                       [76543210]
        //                      [_10987654____]
        ((in[4 + inPos] & 8191) >>> 4)) & 255);
    out[8 + outPos] = (byte) ((
        //                       [_______0]
        //                              [2____________]
        ((in[4 + inPos] & 8191) >>> 12)
            | //                       [7654321_]
            //                 [______6543210]
            ((in[5 + inPos] & 8191) << 1)) & 255);
    out[9 + outPos] = (byte) ((
        //                       [__543210]
        //                         [210987_______]
        ((in[5 + inPos] & 8191) >>> 7)
            | //                       [76______]
            //            [___________10]
            ((in[6 + inPos] & 8191) << 6)) & 255);
    out[10 + outPos] = (byte) ((
        //                       [76543210]
        //                    [___98765432__]
        ((in[6 + inPos] & 8191) >>> 2)) & 255);
    out[11 + outPos] = (byte) ((
        //                       [_____210]
        //                            [210__________]
        ((in[6 + inPos] & 8191) >>> 10)
            | //                       [76543___]
            //               [________43210]
            ((in[7 + inPos] & 8191) << 3)) & 255);
    out[12 + outPos] = (byte) ((
        //                       [76543210]
        //                       [21098765_____]
        ((in[7 + inPos] & 8191) >>> 5)) & 255);
    out[13 + outPos] = (byte) ((
        //                       [76543210]
        //                  [_____76543210]
        ((in[8 + inPos] & 8191))) & 255);
    out[14 + outPos] = (byte) ((
        //                       [___43210]
        //                          [21098________]
        ((in[8 + inPos] & 8191) >>> 8)
            | //                       [765_____]
            //             [__________210]
            ((in[9 + inPos] & 8191) << 5)) & 255);
    out[15 + outPos] = (byte) ((
        //                       [76543210]
        //                     [__09876543___]
        ((in[9 + inPos] & 8191) >>> 3)) & 255);
    out[16 + outPos] = (byte) ((
        //                       [______10]
        //                             [21___________]
        ((in[9 + inPos] & 8191) >>> 11)
            | //                       [765432__]
            //                [_______543210]
            ((in[10 + inPos] & 8191) << 2)) & 255);
    out[17 + outPos] = (byte) ((
        //                       [_6543210]
        //                        [2109876______]
        ((in[10 + inPos] & 8191) >>> 6)
            | //                       [7_______]
            //           [____________0]
            ((in[11 + inPos] & 8191) << 7)) & 255);
    out[18 + outPos] = (byte) ((
        //                       [76543210]
        //                   [____87654321_]
        ((in[11 + inPos] & 8191) >>> 1)) & 255);
    out[19 + outPos] = (byte) ((
        //                       [____3210]
        //                           [2109_________]
        ((in[11 + inPos] & 8191) >>> 9)
            | //                       [7654____]
            //              [_________3210]
            ((in[12 + inPos] & 8191) << 4)) & 255);
    out[20 + outPos] = (byte) ((
        //                       [76543210]
        //                      [_10987654____]
        ((in[12 + inPos] & 8191) >>> 4)) & 255);
    out[21 + outPos] = (byte) ((
        //                       [_______0]
        //                              [2____________]
        ((in[12 + inPos] & 8191) >>> 12)
            | //                       [7654321_]
            //                 [______6543210]
            ((in[13 + inPos] & 8191) << 1)) & 255);
    out[22 + outPos] = (byte) ((
        //                       [__543210]
        //                         [210987_______]
        ((in[13 + inPos] & 8191) >>> 7)
            | //                       [76______]
            //            [___________10]
            ((in[14 + inPos] & 8191) << 6)) & 255);
    out[23 + outPos] = (byte) ((
        //                       [76543210]
        //                    [___98765432__]
        ((in[14 + inPos] & 8191) >>> 2)) & 255);
    out[24 + outPos] = (byte) ((
        //                       [_____210]
        //                            [210__________]
        ((in[14 + inPos] & 8191) >>> 10)
            | //                       [76543___]
            //               [________43210]
            ((in[15 + inPos] & 8191) << 3)) & 255);
    out[25 + outPos] = (byte) ((
        //                       [76543210]
        //                       [21098765_____]
        ((in[15 + inPos] & 8191) >>> 5)) & 255);
    out[26 + outPos] = (byte) ((
        //                       [76543210]
        //                  [_____76543210]
        ((in[16 + inPos] & 8191))) & 255);
    out[27 + outPos] = (byte) ((
        //                       [___43210]
        //                          [21098________]
        ((in[16 + inPos] & 8191) >>> 8)
            | //                       [765_____]
            //             [__________210]
            ((in[17 + inPos] & 8191) << 5)) & 255);
    out[28 + outPos] = (byte) ((
        //                       [76543210]
        //                     [__09876543___]
        ((in[17 + inPos] & 8191) >>> 3)) & 255);
    out[29 + outPos] = (byte) ((
        //                       [______10]
        //                             [21___________]
        ((in[17 + inPos] & 8191) >>> 11)
            | //                       [765432__]
            //                [_______543210]
            ((in[18 + inPos] & 8191) << 2)) & 255);
    out[30 + outPos] = (byte) ((
        //                       [_6543210]
        //                        [2109876______]
        ((in[18 + inPos] & 8191) >>> 6)
            | //                       [7_______]
            //           [____________0]
            ((in[19 + inPos] & 8191) << 7)) & 255);
    out[31 + outPos] = (byte) ((
        //                       [76543210]
        //                   [____87654321_]
        ((in[19 + inPos] & 8191) >>> 1)) & 255);
    out[32 + outPos] = (byte) ((
        //                       [____3210]
        //                           [2109_________]
        ((in[19 + inPos] & 8191) >>> 9)
            | //                       [7654____]
            //              [_________3210]
            ((in[20 + inPos] & 8191) << 4)) & 255);
    out[33 + outPos] = (byte) ((
        //                       [76543210]
        //                      [_10987654____]
        ((in[20 + inPos] & 8191) >>> 4)) & 255);
    out[34 + outPos] = (byte) ((
        //                       [_______0]
        //                              [2____________]
        ((in[20 + inPos] & 8191) >>> 12)
            | //                       [7654321_]
            //                 [______6543210]
            ((in[21 + inPos] & 8191) << 1)) & 255);
    out[35 + outPos] = (byte) ((
        //                       [__543210]
        //                         [210987_______]
        ((in[21 + inPos] & 8191) >>> 7)
            | //                       [76______]
            //            [___________10]
            ((in[22 + inPos] & 8191) << 6)) & 255);
    out[36 + outPos] = (byte) ((
        //                       [76543210]
        //                    [___98765432__]
        ((in[22 + inPos] & 8191) >>> 2)) & 255);
    out[37 + outPos] = (byte) ((
        //                       [_____210]
        //                            [210__________]
        ((in[22 + inPos] & 8191) >>> 10)
            | //                       [76543___]
            //               [________43210]
            ((in[23 + inPos] & 8191) << 3)) & 255);
    out[38 + outPos] = (byte) ((
        //                       [76543210]
        //                       [21098765_____]
        ((in[23 + inPos] & 8191) >>> 5)) & 255);
    out[39 + outPos] = (byte) ((
        //                       [76543210]
        //                  [_____76543210]
        ((in[24 + inPos] & 8191))) & 255);
    out[40 + outPos] = (byte) ((
        //                       [___43210]
        //                          [21098________]
        ((in[24 + inPos] & 8191) >>> 8)
            | //                       [765_____]
            //             [__________210]
            ((in[25 + inPos] & 8191) << 5)) & 255);
    out[41 + outPos] = (byte) ((
        //                       [76543210]
        //                     [__09876543___]
        ((in[25 + inPos] & 8191) >>> 3)) & 255);
    out[42 + outPos] = (byte) ((
        //                       [______10]
        //                             [21___________]
        ((in[25 + inPos] & 8191) >>> 11)
            | //                       [765432__]
            //                [_______543210]
            ((in[26 + inPos] & 8191) << 2)) & 255);
    out[43 + outPos] = (byte) ((
        //                       [_6543210]
        //                        [2109876______]
        ((in[26 + inPos] & 8191) >>> 6)
            | //                       [7_______]
            //           [____________0]
            ((in[27 + inPos] & 8191) << 7)) & 255);
    out[44 + outPos] = (byte) ((
        //                       [76543210]
        //                   [____87654321_]
        ((in[27 + inPos] & 8191) >>> 1)) & 255);
    out[45 + outPos] = (byte) ((
        //                       [____3210]
        //                           [2109_________]
        ((in[27 + inPos] & 8191) >>> 9)
            | //                       [7654____]
            //              [_________3210]
            ((in[28 + inPos] & 8191) << 4)) & 255);
    out[46 + outPos] = (byte) ((
        //                       [76543210]
        //                      [_10987654____]
        ((in[28 + inPos] & 8191) >>> 4)) & 255);
    out[47 + outPos] = (byte) ((
        //                       [_______0]
        //                              [2____________]
        ((in[28 + inPos] & 8191) >>> 12)
            | //                       [7654321_]
            //                 [______6543210]
            ((in[29 + inPos] & 8191) << 1)) & 255);
    out[48 + outPos] = (byte) ((
        //                       [__543210]
        //                         [210987_______]
        ((in[29 + inPos] & 8191) >>> 7)
            | //                       [76______]
            //            [___________10]
            ((in[30 + inPos] & 8191) << 6)) & 255);
    out[49 + outPos] = (byte) ((
        //                       [76543210]
        //                    [___98765432__]
        ((in[30 + inPos] & 8191) >>> 2)) & 255);
    out[50 + outPos] = (byte) ((
        //                       [_____210]
        //                            [210__________]
        ((in[30 + inPos] & 8191) >>> 10)
            | //                       [76543___]
            //               [________43210]
            ((in[31 + inPos] & 8191) << 3)) & 255);
    out[51 + outPos] = (byte) ((
        //                       [76543210]
        //                       [21098765_____]
        ((in[31 + inPos] & 8191) >>> 5)) & 255);
  }

  public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
    out[0 + outPos] =
        //                       [76543210]
        //                  [_____76543210]
        (((((int) in[0 + inPos]) & 255)) & 8191)
            | //                       [___43210]
            //                          [21098________]
            (((((int) in[1 + inPos]) & 255) << 8) & 8191);
    out[1 + outPos] =
        //                       [765_____]
        //             [__________210]
        (((((int) in[1 + inPos]) & 255) >>> 5) & 8191)
            | //                       [76543210]
            //                     [__09876543___]
            (((((int) in[2 + inPos]) & 255) << 3) & 8191)
            | //                       [______10]
            //                             [21___________]
            (((((int) in[3 + inPos]) & 255) << 11) & 8191);
    out[2 + outPos] =
        //                       [765432__]
        //                [_______543210]
        (((((int) in[3 + inPos]) & 255) >>> 2) & 8191)
            | //                       [_6543210]
            //                        [2109876______]
            (((((int) in[4 + inPos]) & 255) << 6) & 8191);
    out[3 + outPos] =
        //                       [7_______]
        //           [____________0]
        (((((int) in[4 + inPos]) & 255) >>> 7) & 8191)
            | //                       [76543210]
            //                   [____87654321_]
            (((((int) in[5 + inPos]) & 255) << 1) & 8191)
            | //                       [____3210]
            //                           [2109_________]
            (((((int) in[6 + inPos]) & 255) << 9) & 8191);
    out[4 + outPos] =
        //                       [7654____]
        //              [_________3210]
        (((((int) in[6 + inPos]) & 255) >>> 4) & 8191)
            | //                       [76543210]
            //                      [_10987654____]
            (((((int) in[7 + inPos]) & 255) << 4) & 8191)
            | //                       [_______0]
            //                              [2____________]
            (((((int) in[8 + inPos]) & 255) << 12) & 8191);
    out[5 + outPos] =
        //                       [7654321_]
        //                 [______6543210]
        (((((int) in[8 + inPos]) & 255) >>> 1) & 8191)
            | //                       [__543210]
            //                         [210987_______]
            (((((int) in[9 + inPos]) & 255) << 7) & 8191);
    out[6 + outPos] =
        //                       [76______]
        //            [___________10]
        (((((int) in[9 + inPos]) & 255) >>> 6) & 8191)
            | //                       [76543210]
            //                    [___98765432__]
            (((((int) in[10 + inPos]) & 255) << 2) & 8191)
            | //                       [_____210]
            //                            [210__________]
            (((((int) in[11 + inPos]) & 255) << 10) & 8191);
    out[7 + outPos] =
        //                       [76543___]
        //               [________43210]
        (((((int) in[11 + inPos]) & 255) >>> 3) & 8191)
            | //                       [76543210]
            //                       [21098765_____]
            (((((int) in[12 + inPos]) & 255) << 5) & 8191);
  }

  public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
    out[0 + outPos] =
        //                       [76543210]
        //                  [_____76543210]
        (((((int) in[0 + inPos]) & 255)) & 8191)
            | //                       [___43210]
            //                          [21098________]
            (((((int) in[1 + inPos]) & 255) << 8) & 8191);
    out[1 + outPos] =
        //                       [765_____]
        //             [__________210]
        (((((int) in[1 + inPos]) & 255) >>> 5) & 8191)
            | //                       [76543210]
            //                     [__09876543___]
            (((((int) in[2 + inPos]) & 255) << 3) & 8191)
            | //                       [______10]
            //                             [21___________]
            (((((int) in[3 + inPos]) & 255) << 11) & 8191);
    out[2 + outPos] =
        //                       [765432__]
        //                [_______543210]
        (((((int) in[3 + inPos]) & 255) >>> 2) & 8191)
            | //                       [_6543210]
            //                        [2109876______]
            (((((int) in[4 + inPos]) & 255) << 6) & 8191);
    out[3 + outPos] =
        //                       [7_______]
        //           [____________0]
        (((((int) in[4 + inPos]) & 255) >>> 7) & 8191)
            | //                       [76543210]
            //                   [____87654321_]
            (((((int) in[5 + inPos]) & 255) << 1) & 8191)
            | //                       [____3210]
            //                           [2109_________]
            (((((int) in[6 + inPos]) & 255) << 9) & 8191);
    out[4 + outPos] =
        //                       [7654____]
        //              [_________3210]
        (((((int) in[6 + inPos]) & 255) >>> 4) & 8191)
            | //                       [76543210]
            //                      [_10987654____]
            (((((int) in[7 + inPos]) & 255) << 4) & 8191)
            | //                       [_______0]
            //                              [2____________]
            (((((int) in[8 + inPos]) & 255) << 12) & 8191);
    out[5 + outPos] =
        //                       [7654321_]
        //                 [______6543210]
        (((((int) in[8 + inPos]) & 255) >>> 1) & 8191)
            | //                       [__543210]
            //                         [210987_______]
            (((((int) in[9 + inPos]) & 255) << 7) & 8191);
    out[6 + outPos] =
        //                       [76______]
        //            [___________10]
        (((((int) in[9 + inPos]) & 255) >>> 6) & 8191)
            | //                       [76543210]
            //                    [___98765432__]
            (((((int) in[10 + inPos]) & 255) << 2) & 8191)
            | //                       [_____210]
            //                            [210__________]
            (((((int) in[11 + inPos]) & 255) << 10) & 8191);
    out[7 + outPos] =
        //                       [76543___]
        //               [________43210]
        (((((int) in[11 + inPos]) & 255) >>> 3) & 8191)
            | //                       [76543210]
            //                       [21098765_____]
            (((((int) in[12 + inPos]) & 255) << 5) & 8191);
    out[8 + outPos] =
        //                       [76543210]
        //                  [_____76543210]
        (((((int) in[13 + inPos]) & 255)) & 8191)
            | //                       [___43210]
            //                          [21098________]
            (((((int) in[14 + inPos]) & 255) << 8) & 8191);
    out[9 + outPos] =
        //                       [765_____]
        //             [__________210]
        (((((int) in[14 + inPos]) & 255) >>> 5) & 8191)
            | //                       [76543210]
            //                     [__09876543___]
            (((((int) in[15 + inPos]) & 255) << 3) & 8191)
            | //                       [______10]
            //                             [21___________]
            (((((int) in[16 + inPos]) & 255) << 11) & 8191);
    out[10 + outPos] =
        //                       [765432__]
        //                [_______543210]
        (((((int) in[16 + inPos]) & 255) >>> 2) & 8191)
            | //                       [_6543210]
            //                        [2109876______]
            (((((int) in[17 + inPos]) & 255) << 6) & 8191);
    out[11 + outPos] =
        //                       [7_______]
        //           [____________0]
        (((((int) in[17 + inPos]) & 255) >>> 7) & 8191)
            | //                       [76543210]
            //                   [____87654321_]
            (((((int) in[18 + inPos]) & 255) << 1) & 8191)
            | //                       [____3210]
            //                           [2109_________]
            (((((int) in[19 + inPos]) & 255) << 9) & 8191);
    out[12 + outPos] =
        //                       [7654____]
        //              [_________3210]
        (((((int) in[19 + inPos]) & 255) >>> 4) & 8191)
            | //                       [76543210]
            //                      [_10987654____]
            (((((int) in[20 + inPos]) & 255) << 4) & 8191)
            | //                       [_______0]
            //                              [2____________]
            (((((int) in[21 + inPos]) & 255) << 12) & 8191);
    out[13 + outPos] =
        //                       [7654321_]
        //                 [______6543210]
        (((((int) in[21 + inPos]) & 255) >>> 1) & 8191)
            | //                       [__543210]
            //                         [210987_______]
            (((((int) in[22 + inPos]) & 255) << 7) & 8191);
    out[14 + outPos] =
        //                       [76______]
        //            [___________10]
        (((((int) in[22 + inPos]) & 255) >>> 6) & 8191)
            | //                       [76543210]
            //                    [___98765432__]
            (((((int) in[23 + inPos]) & 255) << 2) & 8191)
            | //                       [_____210]
            //                            [210__________]
            (((((int) in[24 + inPos]) & 255) << 10) & 8191);
    out[15 + outPos] =
        //                       [76543___]
        //               [________43210]
        (((((int) in[24 + inPos]) & 255) >>> 3) & 8191)
            | //                       [76543210]
            //                       [21098765_____]
            (((((int) in[25 + inPos]) & 255) << 5) & 8191);
    out[16 + outPos] =
        //                       [76543210]
        //                  [_____76543210]
        (((((int) in[26 + inPos]) & 255)) & 8191)
            | //                       [___43210]
            //                          [21098________]
            (((((int) in[27 + inPos]) & 255) << 8) & 8191);
    out[17 + outPos] =
        //                       [765_____]
        //             [__________210]
        (((((int) in[27 + inPos]) & 255) >>> 5) & 8191)
            | //                       [76543210]
            //                     [__09876543___]
            (((((int) in[28 + inPos]) & 255) << 3) & 8191)
            | //                       [______10]
            //                             [21___________]
            (((((int) in[29 + inPos]) & 255) << 11) & 8191);
    out[18 + outPos] =
        //                       [765432__]
        //                [_______543210]
        (((((int) in[29 + inPos]) & 255) >>> 2) & 8191)
            | //                       [_6543210]
            //                        [2109876______]
            (((((int) in[30 + inPos]) & 255) << 6) & 8191);
    out[19 + outPos] =
        //                       [7_______]
        //           [____________0]
        (((((int) in[30 + inPos]) & 255) >>> 7) & 8191)
            | //                       [76543210]
            //                   [____87654321_]
            (((((int) in[31 + inPos]) & 255) << 1) & 8191)
            | //                       [____3210]
            //                           [2109_________]
            (((((int) in[32 + inPos]) & 255) << 9) & 8191);
    out[20 + outPos] =
        //                       [7654____]
        //              [_________3210]
        (((((int) in[32 + inPos]) & 255) >>> 4) & 8191)
            | //                       [76543210]
            //                      [_10987654____]
            (((((int) in[33 + inPos]) & 255) << 4) & 8191)
            | //                       [_______0]
            //                              [2____________]
            (((((int) in[34 + inPos]) & 255) << 12) & 8191);
    out[21 + outPos] =
        //                       [7654321_]
        //                 [______6543210]
        (((((int) in[34 + inPos]) & 255) >>> 1) & 8191)
            | //                       [__543210]
            //                         [210987_______]
            (((((int) in[35 + inPos]) & 255) << 7) & 8191);
    out[22 + outPos] =
        //                       [76______]
        //            [___________10]
        (((((int) in[35 + inPos]) & 255) >>> 6) & 8191)
            | //                       [76543210]
            //                    [___98765432__]
            (((((int) in[36 + inPos]) & 255) << 2) & 8191)
            | //                       [_____210]
            //                            [210__________]
            (((((int) in[37 + inPos]) & 255) << 10) & 8191);
    out[23 + outPos] =
        //                       [76543___]
        //               [________43210]
        (((((int) in[37 + inPos]) & 255) >>> 3) & 8191)
            | //                       [76543210]
            //                       [21098765_____]
            (((((int) in[38 + inPos]) & 255) << 5) & 8191);
    out[24 + outPos] =
        //                       [76543210]
        //                  [_____76543210]
        (((((int) in[39 + inPos]) & 255)) & 8191)
            | //                       [___43210]
            //                          [21098________]
            (((((int) in[40 + inPos]) & 255) << 8) & 8191);
    out[25 + outPos] =
        //                       [765_____]
        //             [__________210]
        (((((int) in[40 + inPos]) & 255) >>> 5) & 8191)
            | //                       [76543210]
            //                     [__09876543___]
            (((((int) in[41 + inPos]) & 255) << 3) & 8191)
            | //                       [______10]
            //                             [21___________]
            (((((int) in[42 + inPos]) & 255) << 11) & 8191);
    out[26 + outPos] =
        //                       [765432__]
        //                [_______543210]
        (((((int) in[42 + inPos]) & 255) >>> 2) & 8191)
            | //                       [_6543210]
            //                        [2109876______]
            (((((int) in[43 + inPos]) & 255) << 6) & 8191);
    out[27 + outPos] =
        //                       [7_______]
        //           [____________0]
        (((((int) in[43 + inPos]) & 255) >>> 7) & 8191)
            | //                       [76543210]
            //                   [____87654321_]
            (((((int) in[44 + inPos]) & 255) << 1) & 8191)
            | //                       [____3210]
            //                           [2109_________]
            (((((int) in[45 + inPos]) & 255) << 9) & 8191);
    out[28 + outPos] =
        //                       [7654____]
        //              [_________3210]
        (((((int) in[45 + inPos]) & 255) >>> 4) & 8191)
            | //                       [76543210]
            //                      [_10987654____]
            (((((int) in[46 + inPos]) & 255) << 4) & 8191)
            | //                       [_______0]
            //                              [2____________]
            (((((int) in[47 + inPos]) & 255) << 12) & 8191);
    out[29 + outPos] =
        //                       [7654321_]
        //                 [______6543210]
        (((((int) in[47 + inPos]) & 255) >>> 1) & 8191)
            | //                       [__543210]
            //                         [210987_______]
            (((((int) in[48 + inPos]) & 255) << 7) & 8191);
    out[30 + outPos] =
        //                       [76______]
        //            [___________10]
        (((((int) in[48 + inPos]) & 255) >>> 6) & 8191)
            | //                       [76543210]
            //                    [___98765432__]
            (((((int) in[49 + inPos]) & 255) << 2) & 8191)
            | //                       [_____210]
            //                            [210__________]
            (((((int) in[50 + inPos]) & 255) << 10) & 8191);
    out[31 + outPos] =
        //                       [76543___]
        //               [________43210]
        (((((int) in[50 + inPos]) & 255) >>> 3) & 8191)
            | //                       [76543210]
            //                       [21098765_____]
            (((((int) in[51 + inPos]) & 255) << 5) & 8191);
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy