FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Merging classes. · fast-pack/JavaFastPFOR@5dbd0b4 · GitHub

Repository navigation

Commit 5dbd0b4

Browse files
committed
Merging classes.
1 parent ad82035 commit 5dbd0b4

14 files changed

Lines changed: 60 additions & 128 deletions

‎src/main/java/me/lemire/integercompression/BinaryPacking.java‎

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
*/
77
package me.lemire.integercompression;
88

9+
import me.lemire.integercompression.skippable.SkippableIntegerCODEC;
10+
911
/**
1012
* Scheme based on a commonly used idea: can be extremely fast.
1113
* It encodes integers in blocks of 128 integers. For arrays containing
@@ -35,17 +37,23 @@
3537
*
3638
* @author Daniel Lemire
3739
*/
38-
public final class BinaryPacking implements IntegerCODEC {
40+
public final class BinaryPacking implements IntegerCODEC, SkippableIntegerCODEC {
3941

4042
@Override
4143
public void compress(int[] in, IntWrapper inpos, int inlength,
4244
int[] out, IntWrapper outpos) {
43-
inlength = inlength / 128 * 128;
44-
if (inlength == 0)
45-
return;
45+
inlength = inlength / 128 * 128;
46+
if (inlength == 0)
47+
return;
48+
out[outpos.get()] = inlength;
49+
outpos.increment();
50+
headlessCompress(in, inpos, inlength, out, outpos);
51+
}
4652

47-
out[outpos.get()] = inlength;
48-
outpos.increment();
53+
@Override
54+
public void headlessCompress(int[] in, IntWrapper inpos, int inlength,
55+
int[] out, IntWrapper outpos) {
56+
inlength = inlength / 128 * 128;
4957
int tmpoutpos = outpos.get();
5058
for (int s = inpos.get(); s < inpos.get() + inlength; s += 32 * 4) {
5159
final int mbits1 = Util.maxbits(in, s, 32);
@@ -78,6 +86,13 @@ public void uncompress(int[] in, IntWrapper inpos, int inlength,
7886
return;
7987
final int outlength = in[inpos.get()];
8088
inpos.increment();
89+
headlessUncompress(in,inpos, inlength,out,outpos,outlength);
90+
}
91+
92+
@Override
93+
public void headlessUncompress(int[] in, IntWrapper inpos, int inlength,
94+
int[] out, IntWrapper outpos, int num) {
95+
final int outlength = num / 128 * 128;
8196
int tmpinpos = inpos.get();
8297
for (int s = outpos.get(); s < outpos.get() + outlength; s += 32 * 4) {
8398
final int mbits1 = (in[tmpinpos] >>> 24);
@@ -100,7 +115,6 @@ public void uncompress(int[] in, IntWrapper inpos, int inlength,
100115
outpos.add(outlength);
101116
inpos.set(tmpinpos);
102117
}
103-
104118
@Override
105119
public String toString() {
106120
return this.getClass().getSimpleName();

‎src/main/java/me/lemire/integercompression/JustCopy.java‎

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
public final class JustCopy implements IntegerCODEC, SkippableIntegerCODEC {
1717

1818
@Override
19-
public void compress(int[] in, IntWrapper inpos, int inlength,
19+
public void headlessCompress(int[] in, IntWrapper inpos, int inlength,
2020
int[] out, IntWrapper outpos) {
2121
System.arraycopy(in, inpos.get(), out, outpos.get(), inlength);
2222
inpos.add(inlength);
@@ -26,9 +26,7 @@ public void compress(int[] in, IntWrapper inpos, int inlength,
2626
@Override
2727
public void uncompress(int[] in, IntWrapper inpos, int inlength,
2828
int[] out, IntWrapper outpos) {
29-
System.arraycopy(in, inpos.get(), out, outpos.get(), inlength);
30-
inpos.add(inlength);
31-
outpos.add(inlength);
29+
headlessUncompress(in,inpos,inlength,out,outpos,inlength);
3230
}
3331

3432
@Override
@@ -37,12 +35,18 @@ public String toString() {
3735
}
3836

3937
@Override
40-
public void uncompress(int[] in, IntWrapper inpos, int inlength,
38+
public void headlessUncompress(int[] in, IntWrapper inpos, int inlength,
4139
int[] out, IntWrapper outpos, int num) {
4240
System.arraycopy(in, inpos.get(), out, outpos.get(), num);
4341
inpos.add(num);
4442
outpos.add(num);
4543

4644
}
4745

46+
@Override
47+
public void compress(int[] in, IntWrapper inpos, int inlength,
48+
int[] out, IntWrapper outpos) {
49+
headlessCompress(in,inpos,inlength,out,outpos);
50+
}
51+
4852
}

‎src/main/java/me/lemire/integercompression/VariableByte.java‎

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,15 @@ private static byte extract7bits(int i, long val) {
3030
private static byte extract7bitsmaskless(int i, long val) {
3131
return (byte) ((val >> (7 * i)));
3232
}
33-
3433
@Override
3534
public void compress(int[] in, IntWrapper inpos, int inlength, int[] out,
3635
IntWrapper outpos) {
36+
headlessCompress(in, inpos, inlength, out, outpos);
37+
}
38+
39+
@Override
40+
public void headlessCompress(int[] in, IntWrapper inpos, int inlength, int[] out,
41+
IntWrapper outpos) {
3742
if (inlength == 0)
3843
return;
3944
ByteBuffer buf = ByteBuffer.allocateDirect(inlength * 8);
@@ -176,7 +181,7 @@ public String toString() {
176181
}
177182

178183
@Override
179-
public void uncompress(int[] in, IntWrapper inpos, int inlength, int[] out,
184+
public void headlessUncompress(int[] in, IntWrapper inpos, int inlength, int[] out,
180185
IntWrapper outpos, int num) {
181186
int s = 0;
182187
int val = 0;

‎src/main/java/me/lemire/integercompression/skippable/Kamikaze.java‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public class Kamikaze implements SkippableIntegerCODEC {
1717
private int BLOCK_SIZE = 128;
1818

1919
@Override
20-
public void compress(int[] in, IntWrapper inpos, int inlength, int[] out,
20+
public void headlessCompress(int[] in, IntWrapper inpos, int inlength, int[] out,
2121
IntWrapper outpos) {
2222

2323
inlength = inlength / BLOCK_SIZE * BLOCK_SIZE;
@@ -30,7 +30,7 @@ public void compress(int[] in, IntWrapper inpos, int inlength, int[] out,
3030
}
3131

3232
@Override
33-
public void uncompress(int[] in, IntWrapper inpos, int inlength, int[] out,
33+
public void headlessUncompress(int[] in, IntWrapper inpos, int inlength, int[] out,
3434
IntWrapper outpos, int num) {
3535

3636
num = num / BLOCK_SIZE * BLOCK_SIZE;

‎src/main/java/me/lemire/integercompression/skippable/SkippableBinaryPacking.java‎

Lines changed: 0 additions & 91 deletions
This file was deleted.

‎src/main/java/me/lemire/integercompression/skippable/SkippableComposition.java‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,22 +36,22 @@ public SkippableComposition(SkippableIntegerCODEC f1,
3636
}
3737

3838
@Override
39-
public void compress(int[] in, IntWrapper inpos, int inlength, int[] out,
39+
public void headlessCompress(int[] in, IntWrapper inpos, int inlength, int[] out,
4040
IntWrapper outpos) {
4141
int init = inpos.get();
42-
F1.compress(in, inpos, inlength, out, outpos);
42+
F1.headlessCompress(in, inpos, inlength, out, outpos);
4343
inlength -= inpos.get() - init;
44-
F2.compress(in, inpos, inlength, out, outpos);
44+
F2.headlessCompress(in, inpos, inlength, out, outpos);
4545
}
4646

4747
@Override
48-
public void uncompress(int[] in, IntWrapper inpos, int inlength, int[] out,
48+
public void headlessUncompress(int[] in, IntWrapper inpos, int inlength, int[] out,
4949
IntWrapper outpos, int num) {
5050
int init = inpos.get();
51-
F1.uncompress(in, inpos, inlength, out, outpos, num);
51+
F1.headlessUncompress(in, inpos, inlength, out, outpos, num);
5252
inlength -= inpos.get() - init;
5353
num -= outpos.get();
54-
F2.uncompress(in, inpos, inlength, out, outpos, num);
54+
F2.headlessUncompress(in, inpos, inlength, out, outpos, num);
5555
}
5656

5757
@Override

‎src/main/java/me/lemire/integercompression/skippable/SkippableFastPFOR.java‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public SkippableFastPFOR() {
8686
* @see IntegerCODEC#compress(int[], IntWrapper, int, int[], IntWrapper)
8787
*/
8888
@Override
89-
public void compress(int[] in, IntWrapper inpos, int inlength, int[] out,
89+
public void headlessCompress(int[] in, IntWrapper inpos, int inlength, int[] out,
9090
IntWrapper outpos) {
9191
inlength = Util.floorBy(inlength, 128);
9292
if (inlength == 0)
@@ -220,7 +220,7 @@ private void encodePage(int[] in, IntWrapper inpos, int thissize,
220220
* @see IntegerCODEC#compress(int[], IntWrapper, int, int[], IntWrapper)
221221
*/
222222
@Override
223-
public void uncompress(int[] in, IntWrapper inpos, int inlength, int[] out,
223+
public void headlessUncompress(int[] in, IntWrapper inpos, int inlength, int[] out,
224224
IntWrapper outpos, int num) {
225225
if (inlength == 0)
226226
return;

‎src/main/java/me/lemire/integercompression/skippable/SkippableIntegerCODEC.java‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public interface SkippableIntegerCODEC {
4141
* @param outpos
4242
* where to write in the output array
4343
*/
44-
public void compress(int[] in, IntWrapper inpos, int inlength, int[] out,
44+
public void headlessCompress(int[] in, IntWrapper inpos, int inlength, int[] out,
4545
IntWrapper outpos);
4646

4747
/**
@@ -63,7 +63,7 @@ public void compress(int[] in, IntWrapper inpos, int inlength, int[] out,
6363
* @param num
6464
* number of integers we want to decode, the actual number of integers decoded can be less
6565
*/
66-
public void uncompress(int[] in, IntWrapper inpos, int inlength, int[] out,
66+
public void headlessUncompress(int[] in, IntWrapper inpos, int inlength, int[] out,
6767
IntWrapper outpos, int num);
6868

6969
}

‎src/main/java/me/lemire/integercompression/skippable/SkippableNewPFD.java‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public SkippableNewPFD() {
5252
}
5353

5454
@Override
55-
public void compress(int[] in, IntWrapper inpos, int inlength, int[] out,
55+
public void headlessCompress(int[] in, IntWrapper inpos, int inlength, int[] out,
5656
IntWrapper outpos) {
5757
inlength = inlength / BlockSize * BlockSize;
5858

@@ -131,7 +131,7 @@ private void encodePage(int[] in, IntWrapper inpos, int thissize,
131131
}
132132

133133
@Override
134-
public void uncompress(int[] in, IntWrapper inpos, int inlength, int[] out,
134+
public void headlessUncompress(int[] in, IntWrapper inpos, int inlength, int[] out,
135135
IntWrapper outpos, int num) {
136136
int mynvalue = num / BlockSize * BlockSize;
137137
int finalout = outpos.get() + mynvalue;

‎src/main/java/me/lemire/integercompression/skippable/SkippableOptPFD.java‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public SkippableOptPFD() {
5151
}
5252

5353
@Override
54-
public void compress(int[] in, IntWrapper inpos, int inlength, int[] out,
54+
public void headlessCompress(int[] in, IntWrapper inpos, int inlength, int[] out,
5555
IntWrapper outpos) {
5656
// Util.assertTrue(inpos.get()+inlength <= in.length);
5757
inlength = inlength / BlockSize * BlockSize;
@@ -148,7 +148,7 @@ private void encodePage(int[] in, IntWrapper inpos, int thissize,
148148
}
149149

150150
@Override
151-
public void uncompress(int[] in, IntWrapper inpos, int inlength, int[] out,
151+
public void headlessUncompress(int[] in, IntWrapper inpos, int inlength, int[] out,
152152
IntWrapper outpos, int num) {
153153
// Util.assertTrue(inpos.get()+inlength <= in.length);
154154
int mynvalue = num / BlockSize * BlockSize;

0 commit comments

Comments
 (0)

Back | FazBrowse Home | New Git URL