forked from fast-pack/CSharpFastPFOR
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathIntegerCODEC.cs
More file actions
59 lines (57 loc) · 1.98 KB
/
IntegerCODEC.cs
File metadata and controls
59 lines (57 loc) · 1.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
/**
* This code is released under the
* Apache License Version 2.0 http://www.apache.org/licenses/.
*
* (c) Daniel Lemire, http://lemire.me/en/
*/
/**
* Interface describing a standard CODEC to compress integers.
*
* @author Daniel Lemire
*
*/
namespace Genbox.CSharpFastPFOR
{
public interface IntegerCODEC
{
/**
* Compress data from an array to another array.
*
* Both inpos and outpos are modified to represent how much data was
* read and written to if 12 ints (inlength = 12) are compressed to 3
* ints, then inpos will be incremented by 12 while outpos will be
* incremented by 3 we use IntWrapper to pass the values by reference.
*
* @param in
* input array
* @param inpos
* location in the input array
* @param inlength
* how many integers to compress
* @param out
* output array
* @param outpos
* where to write in the output array
*/
void compress(int[] @in, IntWrapper inpos, int inlength, int[] @out, IntWrapper outpos);
/**
* Uncompress data from an array to another array.
*
* Both inpos and outpos parameters are modified to indicate new
* positions after read/write.
*
* @param in
* array containing data in compressed form
* @param inpos
* where to start reading in the array
* @param inlength
* length of the compressed data (ignored by some
* schemes)
* @param out
* array where to write the compressed output
* @param outpos
* where to write the compressed output in out
*/
void uncompress(int[] @in, IntWrapper inpos, int inlength, int[] @out, IntWrapper outpos);
}
}