You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fast, vectorized VByte decoding for 32‑bit integers in C, with optional differential (delta) coding.
6
6
7
-
It includes fast differential coding.
7
+
- Requires x86-64 with SSE4.1 (available on virtually all modern x64 CPUs)
8
+
- C99 compatible
9
+
- Includes a tiny test and a runnable example
8
10
9
-
We require x64 processors support SSE 4.1 or better. This includes virtually all x64 processors in service today, except for very old or specialized processors.
11
+
Platform notes
12
+
--------------
13
+
- The library and tests build on Linux and macOS with a standard C toolchain.
14
+
- The Makefile installs a shared object named `libmaskedvbyte.so` and uses `ldconfig`, which are Linux specific. On macOS, build and run targets work, but the `install` target is not applicable.
10
15
11
-
The code should build using most standard-compliant modern C compilers (C99). The provided makefile
12
-
expects a Linux-like system.
13
16
17
+
Build and test
18
+
--------------
14
19
15
-
Usage:
20
+
```sh
21
+
make # builds the library and the test binary
22
+
./unit # runs a quick correctness test
23
+
```
16
24
17
-
make
18
-
./unit
25
+
Build and run the example
26
+
-------------------------
19
27
20
-
See example.c for an example.
28
+
```sh
29
+
make example
30
+
./example
31
+
```
21
32
22
-
Short code sample:
33
+
You should see something like:
23
34
24
-
```C
25
-
size_t compsize = vbyte_encode(datain, N, compressedbuffer); // encoding
26
-
// here the result is stored in compressedbuffer using compsize bytes
The example allocates input/output buffers, encodes a flat array of integers with classic VByte, then decodes it back with the masked (vectorized) decoder and verifies the sizes match.
0 commit comments