1 package org.matsim.core.population.routes.heavycompressed;
3 import java.nio.ByteBuffer;
14 public static void encode(ByteBuffer bb,
long x) {
15 while (Long.compareUnsigned(x, 127) > 0) {
16 bb.put((byte) (x & 127 | 128));
19 bb.put((byte) (x & 127));
22 public static long decode(ByteBuffer bb) {
28 x |= (b & 127) << shift;
30 }
while ((b & 128) != 0);
34 public static byte[]
encode(
int[] values,
int lower,
int upper) {
35 if (values.length == 0) {
38 ByteBuffer bb = ByteBuffer.allocate(5 * values.length + 5);
40 for (
int i = lower; i < upper; i++) {
43 byte[] bytes = bb.array();
44 byte[] trimmed =
new byte[bb.position()];
45 System.arraycopy(bytes, 0, trimmed, 0, bb.position());
49 public static int[]
decode(byte[] bytes) {
50 if (bytes.length == 0) {
53 ByteBuffer bb = ByteBuffer.wrap(bytes);
54 int length = (int)
decode(bb);
55 int[] values =
new int[length];
56 for (
int i = 0; i < length; i++) {
57 values[i] = (int)
decode(bb);
static long decode(ByteBuffer bb)
static final byte [] EMPTY_BYTE
static int [] decode(byte[] bytes)
static void encode(ByteBuffer bb, long x)
static byte [] encode(int[] values, int lower, int upper)
static final int [] EMPTY_INT