@maplibre/mlt 1.1.7 → 1.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/decoding/bigEndianDecode.d.ts +1 -1
- package/dist/decoding/bigEndianDecode.js.map +1 -1
- package/dist/decoding/decodingTestUtils.d.ts +2 -2
- package/dist/decoding/decodingTestUtils.js +20 -21
- package/dist/decoding/decodingTestUtils.js.map +1 -1
- package/dist/decoding/fastPforDecoder.d.ts +5 -6
- package/dist/decoding/fastPforDecoder.js +6 -6
- package/dist/decoding/fastPforDecoder.js.map +1 -1
- package/dist/decoding/fastPforShared.d.ts +0 -2
- package/dist/decoding/fastPforShared.js.map +1 -1
- package/dist/decoding/fastPforUnpack.d.ts +23 -23
- package/dist/decoding/fastPforUnpack.js.map +1 -1
- package/dist/decoding/geometryDecoder.js +41 -41
- package/dist/decoding/geometryDecoder.js.map +1 -1
- package/dist/decoding/intWrapper.js +0 -1
- package/dist/decoding/intWrapper.js.map +1 -1
- package/dist/decoding/integerDecodingUtils.d.ts +21 -17
- package/dist/decoding/integerDecodingUtils.js +71 -30
- package/dist/decoding/integerDecodingUtils.js.map +1 -1
- package/dist/decoding/integerStreamDecoder.d.ts +14 -10
- package/dist/decoding/integerStreamDecoder.js +150 -63
- package/dist/decoding/integerStreamDecoder.js.map +1 -1
- package/dist/decoding/propertyDecoder.js +32 -26
- package/dist/decoding/propertyDecoder.js.map +1 -1
- package/dist/decoding/stringDecoder.js +18 -19
- package/dist/decoding/stringDecoder.js.map +1 -1
- package/dist/decoding/unpackNullableUtils.d.ts +2 -2
- package/dist/decoding/unpackNullableUtils.js.map +1 -1
- package/dist/encoding/bigEndianEncode.d.ts +1 -1
- package/dist/encoding/bigEndianEncode.js.map +1 -1
- package/dist/encoding/constGeometryVectorEncoder.js +9 -9
- package/dist/encoding/constGeometryVectorEncoder.js.map +1 -1
- package/dist/encoding/encodingUtils.d.ts +1 -1
- package/dist/encoding/encodingUtils.js +1 -1
- package/dist/encoding/encodingUtils.js.map +1 -1
- package/dist/encoding/fastPforEncoder.d.ts +4 -5
- package/dist/encoding/fastPforEncoder.js +4 -4
- package/dist/encoding/fastPforEncoder.js.map +1 -1
- package/dist/encoding/integerEncodingUtils.d.ts +14 -14
- package/dist/encoding/integerEncodingUtils.js +39 -31
- package/dist/encoding/integerEncodingUtils.js.map +1 -1
- package/dist/encoding/integerStreamEncoder.d.ts +2 -1
- package/dist/encoding/integerStreamEncoder.js +52 -18
- package/dist/encoding/integerStreamEncoder.js.map +1 -1
- package/dist/encoding/propertyEncoder.js +9 -16
- package/dist/encoding/propertyEncoder.js.map +1 -1
- package/dist/encoding/stringEncoder.js +9 -42
- package/dist/encoding/stringEncoder.js.map +1 -1
- package/dist/metadata/tile/logicalStreamType.d.ts +5 -9
- package/dist/metadata/tile/logicalStreamType.js +1 -19
- package/dist/metadata/tile/logicalStreamType.js.map +1 -1
- package/dist/metadata/tile/streamMetadataDecoder.d.ts +1 -1
- package/dist/metadata/tile/streamMetadataDecoder.js +9 -4
- package/dist/metadata/tile/streamMetadataDecoder.js.map +1 -1
- package/dist/mltDecoder.js +25 -29
- package/dist/mltDecoder.js.map +1 -1
- package/dist/vector/constant/{intConstVector.d.ts → int32ConstVector.d.ts} +2 -2
- package/dist/vector/constant/int32ConstVector.js +10 -0
- package/dist/vector/constant/int32ConstVector.js.map +1 -0
- package/dist/vector/constant/{longConstVector.d.ts → int64ConstVector.d.ts} +2 -2
- package/dist/vector/constant/int64ConstVector.js +10 -0
- package/dist/vector/constant/int64ConstVector.js.map +1 -0
- package/dist/vector/dictionary/stringDictionaryVector.d.ts +1 -1
- package/dist/vector/dictionary/stringDictionaryVector.js +0 -1
- package/dist/vector/dictionary/stringDictionaryVector.js.map +1 -1
- package/dist/vector/featureTable.d.ts +4 -4
- package/dist/vector/featureTable.js +9 -14
- package/dist/vector/featureTable.js.map +1 -1
- package/dist/vector/filter/flatSelectionVector.js +0 -2
- package/dist/vector/filter/flatSelectionVector.js.map +1 -1
- package/dist/vector/filter/sequenceSelectionVector.js +1 -5
- package/dist/vector/filter/sequenceSelectionVector.js.map +1 -1
- package/dist/vector/flat/bitVector.js +0 -2
- package/dist/vector/flat/bitVector.js.map +1 -1
- package/dist/vector/flat/booleanFlatVector.js +0 -1
- package/dist/vector/flat/booleanFlatVector.js.map +1 -1
- package/dist/vector/flat/{intFlatVector.d.ts → int32FlatVector.d.ts} +1 -1
- package/dist/vector/flat/{intFlatVector.js → int32FlatVector.js} +2 -2
- package/dist/vector/flat/int32FlatVector.js.map +1 -0
- package/dist/vector/flat/{longFlatVector.d.ts → int64FlatVector.d.ts} +1 -1
- package/dist/vector/flat/{longFlatVector.js → int64FlatVector.js} +2 -2
- package/dist/vector/flat/int64FlatVector.js.map +1 -0
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.d.ts +1 -1
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.js +0 -6
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.js.map +1 -1
- package/dist/vector/geometry/constGeometryVector.d.ts +3 -3
- package/dist/vector/geometry/constGeometryVector.js +0 -2
- package/dist/vector/geometry/constGeometryVector.js.map +1 -1
- package/dist/vector/geometry/constGpuVector.d.ts +2 -2
- package/dist/vector/geometry/constGpuVector.js +0 -2
- package/dist/vector/geometry/constGpuVector.js.map +1 -1
- package/dist/vector/geometry/flatGeometryVector.d.ts +3 -3
- package/dist/vector/geometry/flatGeometryVector.js +1 -5
- package/dist/vector/geometry/flatGeometryVector.js.map +1 -1
- package/dist/vector/geometry/flatGpuVector.d.ts +2 -2
- package/dist/vector/geometry/flatGpuVector.js +0 -1
- package/dist/vector/geometry/flatGpuVector.js.map +1 -1
- package/dist/vector/geometry/geometryVector.d.ts +3 -3
- package/dist/vector/geometry/geometryVector.js +0 -5
- package/dist/vector/geometry/geometryVector.js.map +1 -1
- package/dist/vector/geometry/geometryVectorConverter.js.map +1 -1
- package/dist/vector/geometry/gpuVector.d.ts +4 -4
- package/dist/vector/geometry/gpuVector.js +0 -4
- package/dist/vector/geometry/gpuVector.js.map +1 -1
- package/dist/vector/geometry/topologyVector.d.ts +3 -3
- package/dist/vector/geometry/topologyVector.js.map +1 -1
- package/dist/vector/idVector.d.ts +8 -0
- package/dist/vector/idVector.js +2 -0
- package/dist/vector/idVector.js.map +1 -0
- package/dist/vector/sequence/{intSequenceVector.d.ts → int32SequenceVector.d.ts} +1 -1
- package/dist/vector/sequence/{intSequenceVector.js → int32SequenceVector.js} +2 -2
- package/dist/vector/sequence/int32SequenceVector.js.map +1 -0
- package/dist/vector/sequence/{longSequenceVector.d.ts → int64SequenceVector.d.ts} +1 -1
- package/dist/vector/sequence/{longSequenceVector.js → int64SequenceVector.js} +2 -2
- package/dist/vector/sequence/int64SequenceVector.js.map +1 -0
- package/dist/vector/sequence/sequenceVector.js +0 -1
- package/dist/vector/sequence/sequenceVector.js.map +1 -1
- package/dist/vector/variableSizeVector.js +0 -1
- package/dist/vector/variableSizeVector.js.map +1 -1
- package/dist/vector/vector.js +0 -4
- package/dist/vector/vector.js.map +1 -1
- package/package.json +6 -6
- package/dist/vector/constant/intConstVector.js +0 -10
- package/dist/vector/constant/intConstVector.js.map +0 -1
- package/dist/vector/constant/longConstVector.js +0 -10
- package/dist/vector/constant/longConstVector.js.map +0 -1
- package/dist/vector/flat/intFlatVector.js.map +0 -1
- package/dist/vector/flat/longFlatVector.js.map +0 -1
- package/dist/vector/intVector.d.ts +0 -8
- package/dist/vector/intVector.js +0 -2
- package/dist/vector/intVector.js.map +0 -1
- package/dist/vector/sequence/intSequenceVector.js.map +0 -1
- package/dist/vector/sequence/longSequenceVector.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integerDecodingUtils.js","sourceRoot":"","sources":["../../src/decoding/integerDecodingUtils.ts"],"names":[],"mappings":"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","sourcesContent":["import type IntWrapper from \"./intWrapper\";\nimport {\n createFastPforWireDecodeWorkspace,\n decodeFastPforInt32,\n ensureFastPforWireEncodedWordsCapacity,\n type FastPforWireDecodeWorkspace,\n} from \"./fastPforDecoder\";\nimport { decodeBigEndianInt32sInto } from \"./bigEndianDecode\";\nexport type { FastPforWireDecodeWorkspace } from \"./fastPforDecoder\";\nexport { createFastPforWireDecodeWorkspace } from \"./fastPforDecoder\";\n\n//based on https://github.com/mapbox/pbf/blob/main/index.js\nexport function decodeVarintInt32(buf: Uint8Array, bufferOffset: IntWrapper, numValues: number): Int32Array {\n const dst = new Int32Array(numValues);\n let dstOffset = 0;\n let offset = bufferOffset.get();\n for (let i = 0; i < dst.length; i++) {\n let b = buf[offset++];\n let val = b & 0x7f;\n if (b < 0x80) {\n dst[dstOffset++] = val;\n continue;\n }\n\n b = buf[offset++];\n val |= (b & 0x7f) << 7;\n if (b < 0x80) {\n dst[dstOffset++] = val;\n continue;\n }\n\n b = buf[offset++];\n val |= (b & 0x7f) << 14;\n if (b < 0x80) {\n dst[dstOffset++] = val;\n continue;\n }\n\n b = buf[offset++];\n val |= (b & 0x7f) << 21;\n if (b < 0x80) {\n dst[dstOffset++] = val;\n continue;\n }\n\n b = buf[offset++];\n val |= (b & 0x0f) << 28;\n dst[dstOffset++] = val;\n }\n\n bufferOffset.set(offset);\n return dst;\n}\n\nexport function decodeVarintInt64(src: Uint8Array, offset: IntWrapper, numValues: number): BigUint64Array {\n const dst = new BigUint64Array(numValues);\n for (let i = 0; i < dst.length; i++) {\n dst[i] = decodeVarintInt64Value(src, offset);\n }\n return dst;\n}\n\n// Source: https://github.com/bazelbuild/bazel/blob/master/src/main/java/com/google/devtools/build/lib/util/VarInt.java\nfunction decodeVarintInt64Value(bytes: Uint8Array, pos: IntWrapper): bigint {\n let value = 0n;\n let shift = 0;\n let index = pos.get();\n while (index < bytes.length) {\n const b = bytes[index++];\n value |= BigInt(b & 0x7f) << BigInt(shift);\n if ((b & 0x80) === 0) {\n break;\n }\n shift += 7;\n if (shift >= 64) {\n throw new Error(\"Varint too long\");\n }\n }\n pos.set(index);\n return value;\n}\n\n/*\n * Since decoding Int64 values to BigInt is more than an order of magnitude slower in the tests then using a Float64,\n * this decoding method limits the max size of a Long value to 53 bits\n */\nexport function decodeVarintFloat64(src: Uint8Array, offset: IntWrapper, numValues: number): Float64Array {\n const dst = new Float64Array(numValues);\n for (let i = 0; i < numValues; i++) {\n dst[i] = decodeVarintFloat64Value(src, offset);\n }\n return dst;\n}\n\n//based on https://github.com/mapbox/pbf/blob/main/index.js\nfunction decodeVarintFloat64Value(buf: Uint8Array, offset: IntWrapper): number {\n let val;\n let b;\n b = buf[offset.get()];\n offset.increment();\n val = b & 0x7f;\n if (b < 0x80) return val;\n b = buf[offset.get()];\n offset.increment();\n val |= (b & 0x7f) << 7;\n if (b < 0x80) return val;\n b = buf[offset.get()];\n offset.increment();\n val |= (b & 0x7f) << 14;\n if (b < 0x80) return val;\n b = buf[offset.get()];\n offset.increment();\n val |= (b & 0x7f) << 21;\n if (b < 0x80) return val;\n b = buf[offset.get()];\n val |= (b & 0x0f) << 28;\n\n return decodeVarintRemainder(val, buf, offset);\n}\n\nfunction decodeVarintRemainder(l, buf, offset) {\n let h;\n let b;\n b = buf[offset.get()];\n offset.increment();\n h = (b & 0x70) >> 4;\n if (b < 0x80) return h * 0x100000000 + (l >>> 0);\n b = buf[offset.get()];\n offset.increment();\n h |= (b & 0x7f) << 3;\n if (b < 0x80) return h * 0x100000000 + (l >>> 0);\n b = buf[offset.get()];\n offset.increment();\n h |= (b & 0x7f) << 10;\n if (b < 0x80) return h * 0x100000000 + (l >>> 0);\n b = buf[offset.get()];\n offset.increment();\n h |= (b & 0x7f) << 17;\n if (b < 0x80) return h * 0x100000000 + (l >>> 0);\n b = buf[offset.get()];\n offset.increment();\n h |= (b & 0x7f) << 24;\n if (b < 0x80) return h * 0x100000000 + (l >>> 0);\n b = buf[offset.get()];\n offset.increment();\n h |= (b & 0x01) << 31;\n if (b < 0x80) return h * 0x100000000 + (l >>> 0);\n\n throw new Error(\"Expected varint not more than 10 bytes\");\n}\n\nexport function decodeFastPfor(\n encodedBytes: Uint8Array,\n expectedValueCount: number,\n encodedByteLength: number,\n offset: IntWrapper,\n): Int32Array {\n const workspace = createFastPforWireDecodeWorkspace(encodedByteLength >>> 2);\n return decodeFastPforWithWorkspace(encodedBytes, expectedValueCount, encodedByteLength, offset, workspace);\n}\n\nexport function decodeFastPforWithWorkspace(\n encodedBytes: Uint8Array,\n expectedValueCount: number,\n encodedByteLength: number,\n offset: IntWrapper,\n workspace: FastPforWireDecodeWorkspace,\n): Int32Array {\n const inputByteOffset = offset.get();\n if ((encodedByteLength & 3) !== 0) {\n throw new Error(\n `FastPFOR: invalid encodedByteLength=${encodedByteLength} at offset=${inputByteOffset} (encodedBytes.length=${encodedBytes.length}; expected a multiple of 4 bytes for an int32 big-endian word stream)`,\n );\n }\n\n const encodedWordCount = encodedByteLength >>> 2;\n const encodedWordBuffer = ensureFastPforWireEncodedWordsCapacity(workspace, encodedWordCount);\n decodeBigEndianInt32sInto(encodedBytes, inputByteOffset, encodedByteLength, encodedWordBuffer);\n\n const decodedValues = decodeFastPforInt32(\n encodedWordBuffer.subarray(0, encodedWordCount),\n expectedValueCount,\n workspace.decoderWorkspace,\n );\n offset.add(encodedByteLength);\n return decodedValues;\n}\n\nexport function decodeZigZagInt32Value(encoded: number): number {\n return (encoded >>> 1) ^ -(encoded & 1);\n}\n\nexport function decodeZigZagInt64Value(encoded: bigint): bigint {\n return (encoded >> 1n) ^ -(encoded & 1n);\n}\n\nexport function decodeZigZagFloat64Value(encoded: number): number {\n return encoded % 2 === 1 ? (encoded + 1) / -2 : encoded / 2;\n}\n\nexport function decodeZigZagInt32(encodedData: Int32Array): void {\n for (let i = 0; i < encodedData.length; i++) {\n encodedData[i] = decodeZigZagInt32Value(encodedData[i]);\n }\n}\n\nexport function decodeZigZagInt64(encodedData: BigUint64Array): BigInt64Array {\n const decodedValues = new BigInt64Array(encodedData.length);\n for (let i = 0; i < encodedData.length; i++) {\n decodedValues[i] = decodeZigZagInt64Value(encodedData[i]);\n }\n return decodedValues;\n}\n\nexport function decodeZigZagFloat64(encodedData: Float64Array): void {\n for (let i = 0; i < encodedData.length; i++) {\n encodedData[i] = decodeZigZagFloat64Value(encodedData[i]);\n }\n}\n\nexport function decodeUnsignedRleInt32(encodedData: Int32Array, numRuns: number, numTotalValues?: number): Int32Array {\n // If numTotalValues not provided, calculate from runs (nullable case)\n if (numTotalValues === undefined) {\n numTotalValues = 0;\n for (let i = 0; i < numRuns; i++) {\n numTotalValues += encodedData[i];\n }\n }\n\n const decodedValues = new Int32Array(numTotalValues);\n let offset = 0;\n for (let i = 0; i < numRuns; i++) {\n const runLength = encodedData[i];\n const value = encodedData[i + numRuns];\n decodedValues.fill(value, offset, offset + runLength);\n offset += runLength;\n }\n return decodedValues;\n}\n\nexport function decodeUnsignedRleInt64(\n encodedData: BigUint64Array,\n numRuns: number,\n numTotalValues?: number,\n): BigUint64Array {\n // If numTotalValues not provided, calculate from runs (nullable case)\n if (numTotalValues === undefined) {\n numTotalValues = 0;\n for (let i = 0; i < numRuns; i++) {\n numTotalValues += Number(encodedData[i]);\n }\n }\n\n const decodedValues = new BigUint64Array(numTotalValues);\n let offset = 0;\n for (let i = 0; i < numRuns; i++) {\n const runLength = Number(encodedData[i]);\n const value = encodedData[i + numRuns];\n decodedValues.fill(value, offset, offset + runLength);\n offset += runLength;\n }\n return decodedValues;\n}\n\nexport function decodeUnsignedRleFloat64(\n encodedData: Float64Array,\n numRuns: number,\n numTotalValues: number,\n): Float64Array {\n const decodedValues = new Float64Array(numTotalValues);\n let offset = 0;\n for (let i = 0; i < numRuns; i++) {\n const runLength = encodedData[i];\n const value = encodedData[i + numRuns];\n decodedValues.fill(value, offset, offset + runLength);\n offset += runLength;\n }\n return decodedValues;\n}\n\n/*\n * In place decoding of the zigzag encoded delta values.\n * Inspired by https://github.com/lemire/JavaFastPFOR/blob/master/src/main/java/me/lemire/integercompression/differential/Delta.java\n */\nexport function decodeZigZagDeltaInt32(data: Int32Array) {\n data[0] = decodeZigZagInt32Value(data[0]);\n const sz0 = (data.length / 4) * 4;\n let i = 1;\n if (sz0 >= 4) {\n for (; i < sz0 - 4; i += 4) {\n const data1 = data[i];\n const data2 = data[i + 1];\n const data3 = data[i + 2];\n const data4 = data[i + 3];\n\n data[i] = decodeZigZagInt32Value(data1) + data[i - 1];\n data[i + 1] = decodeZigZagInt32Value(data2) + data[i];\n data[i + 2] = decodeZigZagInt32Value(data3) + data[i + 1];\n data[i + 3] = decodeZigZagInt32Value(data4) + data[i + 2];\n }\n }\n\n for (; i !== data.length; ++i) {\n data[i] = decodeZigZagInt32Value(data[i]) + data[i - 1];\n }\n}\n\nexport function decodeZigZagDeltaInt64(data: BigInt64Array | BigUint64Array): BigInt64Array {\n const decodedValues = new BigInt64Array(data.length);\n decodedValues[0] = decodeZigZagInt64Value(data[0]);\n const sz0 = (data.length / 4) * 4;\n let i = 1;\n if (sz0 >= 4) {\n for (; i < sz0 - 4; i += 4) {\n const data1 = data[i];\n const data2 = data[i + 1];\n const data3 = data[i + 2];\n const data4 = data[i + 3];\n\n decodedValues[i] = decodeZigZagInt64Value(data1) + decodedValues[i - 1];\n decodedValues[i + 1] = decodeZigZagInt64Value(data2) + decodedValues[i];\n decodedValues[i + 2] = decodeZigZagInt64Value(data3) + decodedValues[i + 1];\n decodedValues[i + 3] = decodeZigZagInt64Value(data4) + decodedValues[i + 2];\n }\n }\n\n for (; i !== decodedValues.length; ++i) {\n decodedValues[i] = decodeZigZagInt64Value(data[i]) + decodedValues[i - 1];\n }\n return decodedValues;\n}\n\nexport function decodeZigZagDeltaFloat64(data: Float64Array) {\n data[0] = decodeZigZagFloat64Value(data[0]);\n const sz0 = (data.length / 4) * 4;\n let i = 1;\n if (sz0 >= 4) {\n for (; i < sz0 - 4; i += 4) {\n const data1 = data[i];\n const data2 = data[i + 1];\n const data3 = data[i + 2];\n const data4 = data[i + 3];\n\n data[i] = decodeZigZagFloat64Value(data1) + data[i - 1];\n data[i + 1] = decodeZigZagFloat64Value(data2) + data[i];\n data[i + 2] = decodeZigZagFloat64Value(data3) + data[i + 1];\n data[i + 3] = decodeZigZagFloat64Value(data4) + data[i + 2];\n }\n }\n\n for (; i !== data.length; ++i) {\n data[i] = decodeZigZagFloat64Value(data[i]) + data[i - 1];\n }\n}\n\nexport function decodeZigZagRleInt32(data: Int32Array, numRuns: number, numTotalValues?: number): Int32Array {\n // If numTotalValues not provided, calculate from runs (nullable case)\n if (numTotalValues === undefined) {\n numTotalValues = 0;\n for (let i = 0; i < numRuns; i++) {\n numTotalValues += data[i];\n }\n }\n\n const decodedValues = new Int32Array(numTotalValues);\n let offset = 0;\n for (let i = 0; i < numRuns; i++) {\n const runLength = data[i];\n let value = data[i + numRuns];\n value = decodeZigZagInt32Value(value);\n decodedValues.fill(value, offset, offset + runLength);\n offset += runLength;\n }\n return decodedValues;\n}\n\nexport function decodeZigZagRleInt64(data: BigUint64Array, numRuns: number, numTotalValues?: number): BigInt64Array {\n // If numTotalValues not provided, calculate from runs (nullable case)\n if (numTotalValues === undefined) {\n numTotalValues = 0;\n for (let i = 0; i < numRuns; i++) {\n numTotalValues += Number(data[i]);\n }\n }\n\n const decodedValues = new BigInt64Array(numTotalValues);\n let offset = 0;\n for (let i = 0; i < numRuns; i++) {\n const runLength = Number(data[i]);\n let value = data[i + numRuns];\n value = decodeZigZagInt64Value(value);\n decodedValues.fill(value, offset, offset + runLength);\n offset += runLength;\n }\n return decodedValues;\n}\n\nexport function decodeZigZagRleFloat64(data: Float64Array, numRuns: number, numTotalValues: number): Float64Array {\n const decodedValues = new Float64Array(numTotalValues);\n let offset = 0;\n for (let i = 0; i < numRuns; i++) {\n const runLength = data[i];\n let value = data[i + numRuns];\n value = decodeZigZagFloat64Value(value);\n decodedValues.fill(value, offset, offset + runLength);\n offset += runLength;\n }\n return decodedValues;\n}\n\n/*\n * Inspired by https://github.com/lemire/JavaFastPFOR/blob/master/src/main/java/me/lemire/integercompression/differential/Delta.java\n */\nexport function fastInverseDelta(data: Uint32Array | Int32Array) {\n const sz0 = (data.length / 4) * 4;\n let i = 1;\n if (sz0 >= 4) {\n for (let a = data[0]; i < sz0 - 4; i += 4) {\n a = data[i] += a;\n a = data[i + 1] += a;\n a = data[i + 2] += a;\n a = data[i + 3] += a;\n }\n }\n\n while (i !== data.length) {\n data[i] += data[i - 1];\n ++i;\n }\n}\n\nexport function inverseDelta(data: Int32Array) {\n let prevValue = 0;\n for (let i = 0; i < data.length; i++) {\n data[i] += prevValue;\n prevValue = data[i];\n }\n}\n\n/*\n * In place decoding of the zigzag delta encoded Vec2.\n * Inspired by https://github.com/lemire/JavaFastPFOR/blob/master/src/main/java/me/lemire/integercompression/differential/Delta.java\n */\nexport function decodeComponentwiseDeltaVec2(data: Int32Array): void {\n if (data.length < 2) return;\n data[0] = decodeZigZagInt32Value(data[0]);\n data[1] = decodeZigZagInt32Value(data[1]);\n const sz0 = (data.length / 4) * 4;\n let i = 2;\n if (sz0 >= 4) {\n for (; i < sz0 - 4; i += 4) {\n const x1 = data[i];\n const y1 = data[i + 1];\n const x2 = data[i + 2];\n const y2 = data[i + 3];\n\n data[i] = decodeZigZagInt32Value(x1) + data[i - 2];\n data[i + 1] = decodeZigZagInt32Value(y1) + data[i - 1];\n data[i + 2] = decodeZigZagInt32Value(x2) + data[i];\n data[i + 3] = decodeZigZagInt32Value(y2) + data[i + 1];\n }\n }\n\n for (; i !== data.length; i += 2) {\n data[i] = decodeZigZagInt32Value(data[i]) + data[i - 2];\n data[i + 1] = decodeZigZagInt32Value(data[i + 1]) + data[i - 1];\n }\n}\n\nexport function decodeComponentwiseDeltaVec2Scaled(data: Int32Array, scale: number, min: number, max: number): void {\n if (data.length < 2) return;\n let previousVertexX = decodeZigZagInt32Value(data[0]);\n let previousVertexY = decodeZigZagInt32Value(data[1]);\n data[0] = clamp(Math.round(previousVertexX * scale), min, max);\n data[1] = clamp(Math.round(previousVertexY * scale), min, max);\n const sz0 = data.length / 16;\n let i = 2;\n if (sz0 >= 4) {\n for (; i < sz0 - 4; i += 4) {\n const x1 = data[i];\n const y1 = data[i + 1];\n const currentVertexX = decodeZigZagInt32Value(x1) + previousVertexX;\n const currentVertexY = decodeZigZagInt32Value(y1) + previousVertexY;\n data[i] = clamp(Math.round(currentVertexX * scale), min, max);\n data[i + 1] = clamp(Math.round(currentVertexY * scale), min, max);\n\n const x2 = data[i + 2];\n const y2 = data[i + 3];\n previousVertexX = decodeZigZagInt32Value(x2) + currentVertexX;\n previousVertexY = decodeZigZagInt32Value(y2) + currentVertexY;\n data[i + 2] = clamp(Math.round(previousVertexX * scale), min, max);\n data[i + 3] = clamp(Math.round(previousVertexY * scale), min, max);\n }\n }\n\n for (; i !== data.length; i += 2) {\n previousVertexX += decodeZigZagInt32Value(data[i]);\n previousVertexY += decodeZigZagInt32Value(data[i + 1]);\n data[i] = clamp(Math.round(previousVertexX * scale), min, max);\n data[i + 1] = clamp(Math.round(previousVertexY * scale), min, max);\n }\n}\n\nfunction clamp(n: number, min: number, max: number): number {\n return Math.min(max, Math.max(min, n));\n}\n\n/* Transform data to allow util access ------------------------------------------------------------------------ */\n\nexport function decodeZigZagDeltaOfDeltaInt32(data: Int32Array): Uint32Array {\n const decodedData = new Int32Array(data.length + 1);\n decodedData[0] = 0;\n decodedData[1] = decodeZigZagInt32Value(data[0]);\n let deltaSum = decodedData[1];\n for (let i = 2; i !== decodedData.length; ++i) {\n const zigZagValue = data[i - 1];\n const delta = decodeZigZagInt32Value(zigZagValue);\n deltaSum += delta;\n decodedData[i] = decodedData[i - 1] + deltaSum;\n }\n\n return new Uint32Array(decodedData);\n}\n\nexport function decodeZigZagRleDeltaInt32(data: Int32Array, numRuns: number, numTotalValues: number): Uint32Array {\n const decodedValues = new Int32Array(numTotalValues + 1);\n decodedValues[0] = 0;\n let offset = 1;\n let previousValue = decodedValues[0];\n for (let i = 0; i < numRuns; i++) {\n const runLength = data[i];\n let value = data[i + numRuns];\n value = decodeZigZagInt32Value(value);\n for (let j = offset; j < offset + runLength; j++) {\n decodedValues[j] = value + previousValue;\n previousValue = decodedValues[j];\n }\n\n offset += runLength;\n }\n return new Uint32Array(decodedValues);\n}\n\nexport function decodeRleDeltaInt32(data: Int32Array, numRuns: number, numTotalValues: number): Uint32Array {\n const decodedValues = new Int32Array(numTotalValues + 1);\n decodedValues[0] = 0;\n let offset = 1;\n let previousValue = decodedValues[0];\n for (let i = 0; i < numRuns; i++) {\n const runLength = data[i];\n const value = data[i + numRuns];\n for (let j = offset; j < offset + runLength; j++) {\n decodedValues[j] = value + previousValue;\n previousValue = decodedValues[j];\n }\n\n offset += runLength;\n }\n\n return new Uint32Array(decodedValues);\n}\n\n/**\n * Decode Delta-RLE with multiple runs by fully reconstructing values.\n *\n * @param data RLE encoded data: [run1, run2, ..., value1, value2, ...]\n * @param numRuns Number of runs in the RLE encoding\n * @param numValues Total number of values to reconstruct\n * @returns Reconstructed values with deltas applied\n */\nexport function decodeDeltaRleInt32(data: Int32Array, numRuns: number, numValues: number): Int32Array {\n const result = new Int32Array(numValues);\n let outPos = 0;\n let previousValue = 0;\n\n for (let i = 0; i < numRuns; i++) {\n const runLength = data[i];\n const zigZagDelta = data[i + numRuns];\n const delta = decodeZigZagInt32Value(zigZagDelta);\n\n for (let j = 0; j < runLength; j++) {\n previousValue += delta;\n result[outPos++] = previousValue;\n }\n }\n\n return result;\n}\n\n/**\n * Decode Delta-RLE with multiple runs for 64-bit integers.\n */\nexport function decodeDeltaRleInt64(data: BigUint64Array, numRuns: number, numValues: number): BigInt64Array {\n const result = new BigInt64Array(numValues);\n let outPos = 0;\n let previousValue = 0n;\n\n for (let i = 0; i < numRuns; i++) {\n const runLength = Number(data[i]);\n const zigZagDelta = data[i + numRuns];\n const delta = decodeZigZagInt64Value(zigZagDelta);\n\n for (let j = 0; j < runLength; j++) {\n previousValue += delta;\n result[outPos++] = previousValue;\n }\n }\n\n return result;\n}\n\nexport function decodeUnsignedConstRleInt32(data: Int32Array): number {\n return data[1];\n}\n\nexport function decodeZigZagConstRleInt32(data: Int32Array): number {\n return decodeZigZagInt32Value(data[1]);\n}\n\nexport function decodeZigZagSequenceRleInt32(data: Int32Array): [baseValue: number, delta: number] {\n /* base value and delta value are equal */\n if (data.length === 2) {\n const value = decodeZigZagInt32Value(data[1]);\n return [value, value];\n }\n\n /* base value and delta value are not equal -> 2 runs and 2 values*/\n const base = decodeZigZagInt32Value(data[2]);\n const delta = decodeZigZagInt32Value(data[3]);\n return [base, delta];\n}\n\nexport function decodeUnsignedConstRleInt64(data: BigInt64Array | BigUint64Array): bigint {\n return data[1];\n}\n\nexport function decodeZigZagConstRleInt64(data: BigInt64Array | BigUint64Array): bigint {\n return decodeZigZagInt64Value(data[1]);\n}\n\nexport function decodeZigZagSequenceRleInt64(data: BigInt64Array | BigUint64Array): [baseValue: bigint, delta: bigint] {\n /* base value and delta value are equal */\n if (data.length === 2) {\n const value = decodeZigZagInt64Value(data[1]);\n return [value, value];\n }\n\n /* base value and delta value are not equal -> 2 runs and 2 values*/\n const base = decodeZigZagInt64Value(data[2]);\n const delta = decodeZigZagInt64Value(data[3]);\n return [base, delta];\n}\n"]}
|
|
1
|
+
{"version":3,"file":"integerDecodingUtils.js","sourceRoot":"","sources":["../../src/decoding/integerDecodingUtils.ts"],"names":[],"mappings":"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","sourcesContent":["import type IntWrapper from \"./intWrapper\";\nimport {\n createFastPforWireDecodeWorkspace,\n decodeFastPforInt32,\n ensureFastPforWireEncodedWordsCapacity,\n type FastPforWireDecodeWorkspace,\n} from \"./fastPforDecoder\";\nimport { decodeBigEndianInt32sInto } from \"./bigEndianDecode\";\nexport type { FastPforWireDecodeWorkspace } from \"./fastPforDecoder\";\nexport { createFastPforWireDecodeWorkspace } from \"./fastPforDecoder\";\n\n//based on https://github.com/mapbox/pbf/blob/main/index.js\nexport function decodeVarintInt32(buf: Uint8Array, bufferOffset: IntWrapper, numValues: number): Uint32Array {\n const dst = new Uint32Array(numValues);\n let dstOffset = 0;\n let offset = bufferOffset.get();\n for (let i = 0; i < dst.length; i++) {\n let b = buf[offset++];\n let val = b & 0x7f;\n if (b < 0x80) {\n dst[dstOffset++] = val;\n continue;\n }\n\n b = buf[offset++];\n val |= (b & 0x7f) << 7;\n if (b < 0x80) {\n dst[dstOffset++] = val;\n continue;\n }\n\n b = buf[offset++];\n val |= (b & 0x7f) << 14;\n if (b < 0x80) {\n dst[dstOffset++] = val;\n continue;\n }\n\n b = buf[offset++];\n val |= (b & 0x7f) << 21;\n if (b < 0x80) {\n dst[dstOffset++] = val;\n continue;\n }\n\n b = buf[offset++];\n val |= (b & 0x0f) << 28;\n dst[dstOffset++] = val;\n }\n\n bufferOffset.set(offset);\n return dst;\n}\n\nexport function decodeVarintInt64(src: Uint8Array, offset: IntWrapper, numValues: number): BigUint64Array {\n const dst = new BigUint64Array(numValues);\n for (let i = 0; i < dst.length; i++) {\n dst[i] = decodeVarintInt64Value(src, offset);\n }\n return dst;\n}\n\n// Source: https://github.com/bazelbuild/bazel/blob/master/src/main/java/com/google/devtools/build/lib/util/VarInt.java\nfunction decodeVarintInt64Value(bytes: Uint8Array, pos: IntWrapper): bigint {\n let value = 0n;\n let shift = 0;\n let index = pos.get();\n while (index < bytes.length) {\n const b = bytes[index++];\n value |= BigInt(b & 0x7f) << BigInt(shift);\n if ((b & 0x80) === 0) {\n break;\n }\n shift += 7;\n if (shift >= 64) {\n throw new Error(\"Varint too long\");\n }\n }\n pos.set(index);\n return value;\n}\n\n/*\n * Since decoding Int64 values to BigInt is more than an order of magnitude slower in the tests then using a Float64,\n * this decoding method limits the max size of a Long value to 53 bits\n */\nexport function decodeVarintFloat64(src: Uint8Array, offset: IntWrapper, numValues: number): Float64Array {\n const dst = new Float64Array(numValues);\n for (let i = 0; i < numValues; i++) {\n dst[i] = decodeVarintFloat64Value(src, offset);\n }\n return dst;\n}\n\n//based on https://github.com/mapbox/pbf/blob/main/index.js\nfunction decodeVarintFloat64Value(buf: Uint8Array, offset: IntWrapper): number {\n let val;\n let b;\n b = buf[offset.get()];\n offset.increment();\n val = b & 0x7f;\n if (b < 0x80) return val;\n b = buf[offset.get()];\n offset.increment();\n val |= (b & 0x7f) << 7;\n if (b < 0x80) return val;\n b = buf[offset.get()];\n offset.increment();\n val |= (b & 0x7f) << 14;\n if (b < 0x80) return val;\n b = buf[offset.get()];\n offset.increment();\n val |= (b & 0x7f) << 21;\n if (b < 0x80) return val;\n b = buf[offset.get()];\n val |= (b & 0x0f) << 28;\n\n return decodeVarintRemainder(val, buf, offset);\n}\n\nfunction decodeVarintRemainder(l, buf, offset) {\n let h;\n let b;\n b = buf[offset.get()];\n offset.increment();\n h = (b & 0x70) >> 4;\n if (b < 0x80) return h * 0x100000000 + (l >>> 0);\n b = buf[offset.get()];\n offset.increment();\n h |= (b & 0x7f) << 3;\n if (b < 0x80) return h * 0x100000000 + (l >>> 0);\n b = buf[offset.get()];\n offset.increment();\n h |= (b & 0x7f) << 10;\n if (b < 0x80) return h * 0x100000000 + (l >>> 0);\n b = buf[offset.get()];\n offset.increment();\n h |= (b & 0x7f) << 17;\n if (b < 0x80) return h * 0x100000000 + (l >>> 0);\n b = buf[offset.get()];\n offset.increment();\n h |= (b & 0x7f) << 24;\n if (b < 0x80) return h * 0x100000000 + (l >>> 0);\n b = buf[offset.get()];\n offset.increment();\n h |= (b & 0x01) << 31;\n if (b < 0x80) return h * 0x100000000 + (l >>> 0);\n\n throw new Error(\"Expected varint not more than 10 bytes\");\n}\n\nexport function decodeFastPfor(\n encodedBytes: Uint8Array,\n expectedValueCount: number,\n encodedByteLength: number,\n offset: IntWrapper,\n): Uint32Array {\n const workspace = createFastPforWireDecodeWorkspace(encodedByteLength >>> 2);\n return decodeFastPforWithWorkspace(encodedBytes, expectedValueCount, encodedByteLength, offset, workspace);\n}\n\nexport function decodeFastPforWithWorkspace(\n encodedBytes: Uint8Array,\n expectedValueCount: number,\n encodedByteLength: number,\n offset: IntWrapper,\n workspace: FastPforWireDecodeWorkspace,\n): Uint32Array {\n const inputByteOffset = offset.get();\n if ((encodedByteLength & 3) !== 0) {\n throw new Error(\n `FastPFOR: invalid encodedByteLength=${encodedByteLength} at offset=${inputByteOffset} (encodedBytes.length=${encodedBytes.length}; expected a multiple of 4 bytes for an int32 big-endian word stream)`,\n );\n }\n\n const encodedWordCount = encodedByteLength >>> 2;\n const encodedWordBuffer = ensureFastPforWireEncodedWordsCapacity(workspace, encodedWordCount);\n decodeBigEndianInt32sInto(encodedBytes, inputByteOffset, encodedByteLength, encodedWordBuffer);\n\n const decodedValues = decodeFastPforInt32(\n encodedWordBuffer.subarray(0, encodedWordCount),\n expectedValueCount,\n workspace.decoderWorkspace,\n );\n offset.add(encodedByteLength);\n return decodedValues;\n}\n\nexport function decodeZigZagInt32Value(encoded: number): number {\n return (encoded >>> 1) ^ -(encoded & 1);\n}\n\nexport function decodeZigZagInt64Value(encoded: bigint): bigint {\n return (encoded >> 1n) ^ -(encoded & 1n);\n}\n\nexport function decodeZigZagFloat64Value(encoded: number): number {\n return encoded % 2 === 1 ? (encoded + 1) / -2 : encoded / 2;\n}\n\nexport function decodeZigZagInt32(encodedData: Uint32Array): Int32Array {\n const decodedValues = new Int32Array(encodedData.length);\n for (let i = 0; i < encodedData.length; i++) {\n decodedValues[i] = decodeZigZagInt32Value(encodedData[i]);\n }\n return decodedValues;\n}\n\nexport function decodeZigZagInt64(encodedData: BigUint64Array): BigInt64Array {\n const decodedValues = new BigInt64Array(encodedData.length);\n for (let i = 0; i < encodedData.length; i++) {\n decodedValues[i] = decodeZigZagInt64Value(encodedData[i]);\n }\n return decodedValues;\n}\n\nexport function decodeZigZagFloat64(encodedData: Float64Array): void {\n for (let i = 0; i < encodedData.length; i++) {\n encodedData[i] = decodeZigZagFloat64Value(encodedData[i]);\n }\n}\n\nexport function decodeUnsignedRleInt32(\n encodedData: Uint32Array,\n numRuns: number,\n numTotalValues?: number,\n): Uint32Array {\n // If numTotalValues not provided, calculate from runs (nullable case)\n if (numTotalValues === undefined) {\n numTotalValues = 0;\n for (let i = 0; i < numRuns; i++) {\n numTotalValues += encodedData[i];\n }\n }\n\n const decodedValues = new Uint32Array(numTotalValues);\n let offset = 0;\n for (let i = 0; i < numRuns; i++) {\n const runLength = encodedData[i];\n const value = encodedData[i + numRuns];\n decodedValues.fill(value, offset, offset + runLength);\n offset += runLength;\n }\n return decodedValues;\n}\n\nexport function decodeUnsignedRleInt64(\n encodedData: BigUint64Array,\n numRuns: number,\n numTotalValues?: number,\n): BigUint64Array {\n // If numTotalValues not provided, calculate from runs (nullable case)\n if (numTotalValues === undefined) {\n numTotalValues = 0;\n for (let i = 0; i < numRuns; i++) {\n numTotalValues += Number(encodedData[i]);\n }\n }\n\n const decodedValues = new BigUint64Array(numTotalValues);\n let offset = 0;\n for (let i = 0; i < numRuns; i++) {\n const runLength = Number(encodedData[i]);\n const value = encodedData[i + numRuns];\n decodedValues.fill(value, offset, offset + runLength);\n offset += runLength;\n }\n return decodedValues;\n}\n\nexport function decodeUnsignedRleFloat64(\n encodedData: Float64Array,\n numRuns: number,\n numTotalValues: number,\n): Float64Array {\n const decodedValues = new Float64Array(numTotalValues);\n let offset = 0;\n for (let i = 0; i < numRuns; i++) {\n const runLength = encodedData[i];\n const value = encodedData[i + numRuns];\n decodedValues.fill(value, offset, offset + runLength);\n offset += runLength;\n }\n return decodedValues;\n}\n\n/*\n * In place decoding of the zigzag encoded delta values.\n * Inspired by https://github.com/lemire/JavaFastPFOR/blob/master/src/main/java/me/lemire/integercompression/differential/Delta.java\n */\nexport function decodeZigZagDeltaInt32(data: Uint32Array): Int32Array {\n const decodedValues = new Int32Array(data.length);\n decodedValues[0] = decodeZigZagInt32Value(data[0]);\n const sz0 = (data.length / 4) * 4;\n let i = 1;\n if (sz0 >= 4) {\n for (; i < sz0 - 4; i += 4) {\n const data1 = data[i];\n const data2 = data[i + 1];\n const data3 = data[i + 2];\n const data4 = data[i + 3];\n\n decodedValues[i] = decodeZigZagInt32Value(data1) + decodedValues[i - 1];\n decodedValues[i + 1] = decodeZigZagInt32Value(data2) + decodedValues[i];\n decodedValues[i + 2] = decodeZigZagInt32Value(data3) + decodedValues[i + 1];\n decodedValues[i + 3] = decodeZigZagInt32Value(data4) + decodedValues[i + 2];\n }\n }\n\n for (; i !== data.length; ++i) {\n decodedValues[i] = decodeZigZagInt32Value(data[i]) + decodedValues[i - 1];\n }\n return decodedValues;\n}\n\nexport function decodeZigZagDeltaInt64(data: BigInt64Array | BigUint64Array): BigInt64Array {\n const decodedValues = new BigInt64Array(data.length);\n decodedValues[0] = decodeZigZagInt64Value(data[0]);\n const sz0 = (data.length / 4) * 4;\n let i = 1;\n if (sz0 >= 4) {\n for (; i < sz0 - 4; i += 4) {\n const data1 = data[i];\n const data2 = data[i + 1];\n const data3 = data[i + 2];\n const data4 = data[i + 3];\n\n decodedValues[i] = decodeZigZagInt64Value(data1) + decodedValues[i - 1];\n decodedValues[i + 1] = decodeZigZagInt64Value(data2) + decodedValues[i];\n decodedValues[i + 2] = decodeZigZagInt64Value(data3) + decodedValues[i + 1];\n decodedValues[i + 3] = decodeZigZagInt64Value(data4) + decodedValues[i + 2];\n }\n }\n\n for (; i !== decodedValues.length; ++i) {\n decodedValues[i] = decodeZigZagInt64Value(data[i]) + decodedValues[i - 1];\n }\n return decodedValues;\n}\n\nexport function decodeZigZagDeltaFloat64(data: Float64Array) {\n data[0] = decodeZigZagFloat64Value(data[0]);\n const sz0 = (data.length / 4) * 4;\n let i = 1;\n if (sz0 >= 4) {\n for (; i < sz0 - 4; i += 4) {\n const data1 = data[i];\n const data2 = data[i + 1];\n const data3 = data[i + 2];\n const data4 = data[i + 3];\n\n data[i] = decodeZigZagFloat64Value(data1) + data[i - 1];\n data[i + 1] = decodeZigZagFloat64Value(data2) + data[i];\n data[i + 2] = decodeZigZagFloat64Value(data3) + data[i + 1];\n data[i + 3] = decodeZigZagFloat64Value(data4) + data[i + 2];\n }\n }\n\n for (; i !== data.length; ++i) {\n data[i] = decodeZigZagFloat64Value(data[i]) + data[i - 1];\n }\n}\n\nexport function decodeZigZagRleInt32(data: Uint32Array, numRuns: number, numTotalValues?: number): Int32Array {\n // If numTotalValues not provided, calculate from runs (nullable case)\n if (numTotalValues === undefined) {\n numTotalValues = 0;\n for (let i = 0; i < numRuns; i++) {\n numTotalValues += data[i];\n }\n }\n\n const decodedValues = new Int32Array(numTotalValues);\n let offset = 0;\n for (let i = 0; i < numRuns; i++) {\n const runLength = data[i];\n let value = data[i + numRuns];\n value = decodeZigZagInt32Value(value);\n decodedValues.fill(value, offset, offset + runLength);\n offset += runLength;\n }\n return decodedValues;\n}\n\nexport function decodeZigZagRleInt64(data: BigUint64Array, numRuns: number, numTotalValues?: number): BigInt64Array {\n // If numTotalValues not provided, calculate from runs (nullable case)\n if (numTotalValues === undefined) {\n numTotalValues = 0;\n for (let i = 0; i < numRuns; i++) {\n numTotalValues += Number(data[i]);\n }\n }\n\n const decodedValues = new BigInt64Array(numTotalValues);\n let offset = 0;\n for (let i = 0; i < numRuns; i++) {\n const runLength = Number(data[i]);\n let value = data[i + numRuns];\n value = decodeZigZagInt64Value(value);\n decodedValues.fill(value, offset, offset + runLength);\n offset += runLength;\n }\n return decodedValues;\n}\n\nexport function decodeZigZagRleFloat64(data: Float64Array, numRuns: number, numTotalValues: number): Float64Array {\n const decodedValues = new Float64Array(numTotalValues);\n let offset = 0;\n for (let i = 0; i < numRuns; i++) {\n const runLength = data[i];\n let value = data[i + numRuns];\n value = decodeZigZagFloat64Value(value);\n decodedValues.fill(value, offset, offset + runLength);\n offset += runLength;\n }\n return decodedValues;\n}\n\n/*\n * Inspired by https://github.com/lemire/JavaFastPFOR/blob/master/src/main/java/me/lemire/integercompression/differential/Delta.java\n */\nexport function fastInverseDelta(data: Uint32Array | Int32Array) {\n const sz0 = (data.length / 4) * 4;\n let i = 1;\n if (sz0 >= 4) {\n for (let a = data[0]; i < sz0 - 4; i += 4) {\n a = data[i] += a;\n a = data[i + 1] += a;\n a = data[i + 2] += a;\n a = data[i + 3] += a;\n }\n }\n\n while (i !== data.length) {\n data[i] += data[i - 1];\n ++i;\n }\n}\n\nexport function inverseDelta(data: Uint32Array) {\n let prevValue = 0;\n for (let i = 0; i < data.length; i++) {\n data[i] += prevValue;\n prevValue = data[i];\n }\n}\n\n/*\n * In place decoding of the zigzag delta encoded Vec2.\n * Inspired by https://github.com/lemire/JavaFastPFOR/blob/master/src/main/java/me/lemire/integercompression/differential/Delta.java\n */\nexport function decodeComponentwiseDeltaVec2(data: Uint32Array): Int32Array {\n if (data.length < 2) return new Int32Array(data);\n const decodedData = new Int32Array(data.length);\n decodedData[0] = decodeZigZagInt32Value(data[0]);\n decodedData[1] = decodeZigZagInt32Value(data[1]);\n const sz0 = (data.length / 4) * 4;\n let i = 2;\n if (sz0 >= 4) {\n for (; i < sz0 - 4; i += 4) {\n const x1 = data[i];\n const y1 = data[i + 1];\n const x2 = data[i + 2];\n const y2 = data[i + 3];\n\n decodedData[i] = decodeZigZagInt32Value(x1) + decodedData[i - 2];\n decodedData[i + 1] = decodeZigZagInt32Value(y1) + decodedData[i - 1];\n decodedData[i + 2] = decodeZigZagInt32Value(x2) + decodedData[i];\n decodedData[i + 3] = decodeZigZagInt32Value(y2) + decodedData[i + 1];\n }\n }\n\n for (; i !== data.length; i += 2) {\n decodedData[i] = decodeZigZagInt32Value(data[i]) + decodedData[i - 2];\n decodedData[i + 1] = decodeZigZagInt32Value(data[i + 1]) + decodedData[i - 1];\n }\n return decodedData;\n}\n\nexport function decodeComponentwiseDeltaVec2Scaled(\n data: Uint32Array,\n scale: number,\n min: number,\n max: number,\n): Int32Array {\n if (data.length < 2) return new Int32Array(data);\n const decodedData = new Int32Array(data.length);\n let previousVertexX = decodeZigZagInt32Value(data[0]);\n let previousVertexY = decodeZigZagInt32Value(data[1]);\n decodedData[0] = clamp(Math.round(previousVertexX * scale), min, max);\n decodedData[1] = clamp(Math.round(previousVertexY * scale), min, max);\n const sz0 = data.length / 16;\n let i = 2;\n if (sz0 >= 4) {\n for (; i < sz0 - 4; i += 4) {\n const x1 = data[i];\n const y1 = data[i + 1];\n const currentVertexX = decodeZigZagInt32Value(x1) + previousVertexX;\n const currentVertexY = decodeZigZagInt32Value(y1) + previousVertexY;\n decodedData[i] = clamp(Math.round(currentVertexX * scale), min, max);\n decodedData[i + 1] = clamp(Math.round(currentVertexY * scale), min, max);\n\n const x2 = data[i + 2];\n const y2 = data[i + 3];\n previousVertexX = decodeZigZagInt32Value(x2) + currentVertexX;\n previousVertexY = decodeZigZagInt32Value(y2) + currentVertexY;\n decodedData[i + 2] = clamp(Math.round(previousVertexX * scale), min, max);\n decodedData[i + 3] = clamp(Math.round(previousVertexY * scale), min, max);\n }\n }\n\n for (; i !== data.length; i += 2) {\n previousVertexX += decodeZigZagInt32Value(data[i]);\n previousVertexY += decodeZigZagInt32Value(data[i + 1]);\n decodedData[i] = clamp(Math.round(previousVertexX * scale), min, max);\n decodedData[i + 1] = clamp(Math.round(previousVertexY * scale), min, max);\n }\n return decodedData;\n}\n\nfunction clamp(n: number, min: number, max: number): number {\n return Math.min(max, Math.max(min, n));\n}\n\n/* Transform data to allow util access ------------------------------------------------------------------------ */\n\nexport function decodeZigZagDeltaOfDeltaInt32(data: Uint32Array): Uint32Array {\n const decodedData = new Int32Array(data.length + 1);\n decodedData[0] = 0;\n decodedData[1] = decodeZigZagInt32Value(data[0]);\n let deltaSum = decodedData[1];\n for (let i = 2; i !== decodedData.length; ++i) {\n const zigZagValue = data[i - 1];\n const delta = decodeZigZagInt32Value(zigZagValue);\n deltaSum += delta;\n decodedData[i] = decodedData[i - 1] + deltaSum;\n }\n\n return new Uint32Array(decodedData);\n}\n\nexport function decodeZigZagRleDeltaInt32(data: Uint32Array, numRuns: number, numTotalValues: number): Int32Array {\n const decodedValues = new Int32Array(numTotalValues + 1);\n decodedValues[0] = 0;\n let offset = 1;\n let previousValue = decodedValues[0];\n for (let i = 0; i < numRuns; i++) {\n const runLength = data[i];\n let value = data[i + numRuns];\n value = decodeZigZagInt32Value(value);\n for (let j = offset; j < offset + runLength; j++) {\n decodedValues[j] = value + previousValue;\n previousValue = decodedValues[j];\n }\n\n offset += runLength;\n }\n return decodedValues;\n}\n\nexport function decodeRleDeltaInt32(data: Uint32Array, numRuns: number, numTotalValues: number): Uint32Array {\n const decodedValues = new Uint32Array(numTotalValues + 1);\n decodedValues[0] = 0;\n let offset = 1;\n let previousValue = decodedValues[0];\n for (let i = 0; i < numRuns; i++) {\n const runLength = data[i];\n const value = data[i + numRuns];\n for (let j = offset; j < offset + runLength; j++) {\n decodedValues[j] = value + previousValue;\n previousValue = decodedValues[j];\n }\n\n offset += runLength;\n }\n\n return decodedValues;\n}\n\n/**\n * Decode Delta-RLE with multiple runs by fully reconstructing values.\n *\n * @param data RLE encoded data: [run1, run2, ..., value1, value2, ...]\n * @param numRuns Number of runs in the RLE encoding\n * @param numValues Total number of values to reconstruct\n * @returns Reconstructed values with deltas applied\n */\nexport function decodeDeltaRleInt32(data: Uint32Array, numRuns: number, numValues: number): Int32Array {\n const result = new Int32Array(numValues);\n let outPos = 0;\n let previousValue = 0;\n\n for (let i = 0; i < numRuns; i++) {\n const runLength = data[i];\n const zigZagDelta = data[i + numRuns];\n const delta = decodeZigZagInt32Value(zigZagDelta);\n\n for (let j = 0; j < runLength; j++) {\n previousValue += delta;\n result[outPos++] = previousValue;\n }\n }\n\n return result;\n}\n\n/**\n * Decode Delta-RLE with multiple runs for 64-bit integers.\n */\nexport function decodeDeltaRleInt64(data: BigUint64Array, numRuns: number, numValues: number): BigInt64Array {\n const result = new BigInt64Array(numValues);\n let outPos = 0;\n let previousValue = 0n;\n\n for (let i = 0; i < numRuns; i++) {\n const runLength = Number(data[i]);\n const zigZagDelta = data[i + numRuns];\n const delta = decodeZigZagInt64Value(zigZagDelta);\n\n for (let j = 0; j < runLength; j++) {\n previousValue += delta;\n result[outPos++] = previousValue;\n }\n }\n\n return result;\n}\n\nexport function decodeUnsignedZigZagDeltaInt32(data: Uint32Array): Uint32Array {\n const decodedValues = new Uint32Array(data.length);\n decodedValues[0] = decodeZigZagInt32Value(data[0]) >>> 0;\n for (let i = 1; i < data.length; i++) {\n decodedValues[i] = (decodedValues[i - 1] + decodeZigZagInt32Value(data[i])) >>> 0;\n }\n return decodedValues;\n}\n\nexport function decodeUnsignedZigZagDeltaInt64(data: BigUint64Array): BigUint64Array {\n const decodedValues = new BigUint64Array(data.length);\n decodedValues[0] = BigInt.asUintN(64, decodeZigZagInt64Value(data[0]));\n for (let i = 1; i < data.length; i++) {\n decodedValues[i] = BigInt.asUintN(64, decodedValues[i - 1] + decodeZigZagInt64Value(data[i]));\n }\n return decodedValues;\n}\n\nexport function decodeUnsignedComponentwiseDeltaVec2(data: Uint32Array): Uint32Array {\n if (data.length < 2) {\n return new Uint32Array(data);\n }\n\n const decodedData = new Uint32Array(data.length);\n decodedData[0] = decodeZigZagInt32Value(data[0]) >>> 0;\n decodedData[1] = decodeZigZagInt32Value(data[1]) >>> 0;\n for (let i = 2; i < data.length; i += 2) {\n decodedData[i] = (decodedData[i - 2] + decodeZigZagInt32Value(data[i])) >>> 0;\n decodedData[i + 1] = (decodedData[i - 1] + decodeZigZagInt32Value(data[i + 1])) >>> 0;\n }\n return decodedData;\n}\n\nexport function decodeUnsignedComponentwiseDeltaVec2Scaled(\n data: Uint32Array,\n scale: number,\n min: number,\n max: number,\n): Uint32Array {\n const scaledValues = decodeComponentwiseDeltaVec2Scaled(data, scale, min, max);\n return new Uint32Array(scaledValues);\n}\n\nexport function decodeUnsignedConstRleInt32(data: Int32Array | Uint32Array): number {\n return data[1];\n}\n\nexport function decodeZigZagConstRleInt32(data: Int32Array | Uint32Array): number {\n return decodeZigZagInt32Value(data[1]);\n}\n\nexport function decodeZigZagSequenceRleInt32(data: Int32Array | Uint32Array): [baseValue: number, delta: number] {\n /* base value and delta value are equal */\n if (data.length === 2) {\n const value = decodeZigZagInt32Value(data[1]);\n return [value, value];\n }\n\n /* base value and delta value are not equal -> 2 runs and 2 values*/\n const base = decodeZigZagInt32Value(data[2]);\n const delta = decodeZigZagInt32Value(data[3]);\n return [base, delta];\n}\n\nexport function decodeUnsignedConstRleInt64(data: BigInt64Array | BigUint64Array): bigint {\n return data[1];\n}\n\nexport function decodeZigZagConstRleInt64(data: BigInt64Array | BigUint64Array): bigint {\n return decodeZigZagInt64Value(data[1]);\n}\n\nexport function decodeZigZagSequenceRleInt64(data: BigInt64Array | BigUint64Array): [baseValue: bigint, delta: bigint] {\n /* base value and delta value are equal */\n if (data.length === 2) {\n const value = decodeZigZagInt64Value(data[1]);\n return [value, value];\n }\n\n /* base value and delta value are not equal -> 2 runs and 2 values*/\n const base = decodeZigZagInt64Value(data[2]);\n const delta = decodeZigZagInt64Value(data[3]);\n return [base, delta];\n}\n"]}
|
|
@@ -1,15 +1,19 @@
|
|
|
1
|
-
import
|
|
1
|
+
import IntWrapper from "./intWrapper";
|
|
2
2
|
import type { StreamMetadata } from "../metadata/tile/streamMetadataDecoder";
|
|
3
3
|
import BitVector from "../vector/flat/bitVector";
|
|
4
4
|
import { VectorType } from "../vector/vectorType";
|
|
5
5
|
import type GeometryScaling from "./geometryScaling";
|
|
6
|
-
export declare function
|
|
6
|
+
export declare function decodeSignedInt32Stream(data: Uint8Array, offset: IntWrapper, streamMetadata: StreamMetadata, scalingData?: GeometryScaling, nullabilityBuffer?: BitVector): Int32Array;
|
|
7
|
+
export declare function decodeUnsignedInt32Stream(data: Uint8Array, offset: IntWrapper, streamMetadata: StreamMetadata, scalingData?: GeometryScaling, nullabilityBuffer?: BitVector): Uint32Array;
|
|
7
8
|
export declare function decodeLengthStreamToOffsetBuffer(data: Uint8Array, offset: IntWrapper, streamMetadata: StreamMetadata): Uint32Array;
|
|
8
|
-
export declare function
|
|
9
|
-
export declare function
|
|
10
|
-
export declare function
|
|
11
|
-
export declare function
|
|
12
|
-
export declare function
|
|
13
|
-
export declare function
|
|
14
|
-
export declare function
|
|
15
|
-
export declare function
|
|
9
|
+
export declare function decodeSignedConstInt32Stream(data: Uint8Array, offset: IntWrapper, streamMetadata: StreamMetadata): number;
|
|
10
|
+
export declare function decodeUnsignedConstInt32Stream(data: Uint8Array, offset: IntWrapper, streamMetadata: StreamMetadata): number;
|
|
11
|
+
export declare function decodeSequenceInt32Stream(data: Uint8Array, offset: IntWrapper, streamMetadata: StreamMetadata): [baseValue: number, delta: number];
|
|
12
|
+
export declare function decodeSequenceInt64Stream(data: Uint8Array, offset: IntWrapper, streamMetadata: StreamMetadata): [baseValue: bigint, delta: bigint];
|
|
13
|
+
export declare function decodeSignedInt64Stream(data: Uint8Array, offset: IntWrapper, streamMetadata: StreamMetadata, nullabilityBuffer?: BitVector): BigInt64Array;
|
|
14
|
+
export declare function decodeUnsignedInt64Stream(data: Uint8Array, offset: IntWrapper, streamMetadata: StreamMetadata, nullabilityBuffer?: BitVector): BigUint64Array;
|
|
15
|
+
export declare function decodeSignedInt64AsFloat64Stream(data: Uint8Array, offset: IntWrapper, streamMetadata: StreamMetadata): Float64Array;
|
|
16
|
+
export declare function decodeUnsignedInt64AsFloat64Stream(data: Uint8Array, offset: IntWrapper, streamMetadata: StreamMetadata): Float64Array;
|
|
17
|
+
export declare function decodeSignedConstInt64Stream(data: Uint8Array, offset: IntWrapper, streamMetadata: StreamMetadata): bigint;
|
|
18
|
+
export declare function decodeUnsignedConstInt64Stream(data: Uint8Array, offset: IntWrapper, streamMetadata: StreamMetadata): bigint;
|
|
19
|
+
export declare function getVectorType(streamMetadata: StreamMetadata, sizeOrNullabilityBuffer: number | BitVector, data: Uint8Array, offset: IntWrapper, varintWidth?: "int32" | "int64"): VectorType;
|
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
import { PhysicalLevelTechnique } from "../metadata/tile/physicalLevelTechnique";
|
|
2
|
-
import
|
|
2
|
+
import IntWrapper from "./intWrapper";
|
|
3
|
+
import { decodeComponentwiseDeltaVec2, decodeComponentwiseDeltaVec2Scaled, decodeDeltaRleInt32, decodeDeltaRleInt64, decodeFastPfor, decodeUnsignedComponentwiseDeltaVec2, decodeUnsignedComponentwiseDeltaVec2Scaled, decodeUnsignedConstRleInt32, decodeUnsignedConstRleInt64, decodeUnsignedRleInt32, decodeUnsignedRleInt64, decodeUnsignedRleFloat64, decodeUnsignedZigZagDeltaInt32, decodeUnsignedZigZagDeltaInt64, decodeVarintInt32, decodeVarintInt64, decodeVarintFloat64, decodeZigZagInt32, decodeZigZagInt64, decodeZigZagFloat64, decodeZigZagConstRleInt32, decodeZigZagConstRleInt64, decodeZigZagDeltaInt32, decodeZigZagDeltaInt64, decodeZigZagDeltaFloat64, decodeZigZagSequenceRleInt32, decodeZigZagSequenceRleInt64, decodeZigZagInt32Value, decodeZigZagInt64Value, fastInverseDelta, inverseDelta, decodeRleDeltaInt32, decodeZigZagDeltaOfDeltaInt32, decodeZigZagRleDeltaInt32, decodeZigZagRleInt32, decodeZigZagRleInt64, decodeZigZagRleFloat64, } from "./integerDecodingUtils";
|
|
3
4
|
import { LogicalLevelTechnique } from "../metadata/tile/logicalLevelTechnique";
|
|
4
5
|
import BitVector from "../vector/flat/bitVector";
|
|
5
6
|
import { VectorType } from "../vector/vectorType";
|
|
6
7
|
import { unpackNullable } from "./unpackNullableUtils";
|
|
7
|
-
export function
|
|
8
|
+
export function decodeSignedInt32Stream(data, offset, streamMetadata, scalingData, nullabilityBuffer) {
|
|
8
9
|
const values = decodePhysicalLevelTechnique(data, offset, streamMetadata);
|
|
9
|
-
return
|
|
10
|
+
return decodeSignedInt32(values, streamMetadata, scalingData, nullabilityBuffer);
|
|
11
|
+
}
|
|
12
|
+
export function decodeUnsignedInt32Stream(data, offset, streamMetadata, scalingData, nullabilityBuffer) {
|
|
13
|
+
const values = decodePhysicalLevelTechnique(data, offset, streamMetadata);
|
|
14
|
+
return decodeUnsignedInt32(values, streamMetadata, scalingData, nullabilityBuffer);
|
|
10
15
|
}
|
|
11
16
|
export function decodeLengthStreamToOffsetBuffer(data, offset, streamMetadata) {
|
|
12
17
|
const values = decodePhysicalLevelTechnique(data, offset, streamMetadata);
|
|
@@ -14,53 +19,73 @@ export function decodeLengthStreamToOffsetBuffer(data, offset, streamMetadata) {
|
|
|
14
19
|
}
|
|
15
20
|
function decodePhysicalLevelTechnique(data, offset, streamMetadata) {
|
|
16
21
|
const physicalLevelTechnique = streamMetadata.physicalLevelTechnique;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
+
switch (physicalLevelTechnique) {
|
|
23
|
+
case PhysicalLevelTechnique.FAST_PFOR:
|
|
24
|
+
return decodeFastPfor(data, streamMetadata.numValues, streamMetadata.byteLength, offset);
|
|
25
|
+
case PhysicalLevelTechnique.VARINT:
|
|
26
|
+
return decodeVarintInt32(data, offset, streamMetadata.numValues);
|
|
27
|
+
case PhysicalLevelTechnique.NONE: {
|
|
28
|
+
const dataOffset = offset.get();
|
|
29
|
+
const byteLength = streamMetadata.byteLength;
|
|
30
|
+
offset.add(byteLength);
|
|
31
|
+
const slice = data.subarray(dataOffset, offset.get());
|
|
32
|
+
return new Uint32Array(slice);
|
|
33
|
+
}
|
|
34
|
+
default:
|
|
35
|
+
throw new Error(`Specified physicalLevelTechnique ${physicalLevelTechnique} is not supported (yet).`);
|
|
22
36
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
const slice = data.subarray(dataOffset, offset.get());
|
|
29
|
-
return new Int32Array(slice);
|
|
37
|
+
}
|
|
38
|
+
export function decodeSignedConstInt32Stream(data, offset, streamMetadata) {
|
|
39
|
+
const values = decodePhysicalLevelTechnique(data, offset, streamMetadata);
|
|
40
|
+
if (values.length === 1) {
|
|
41
|
+
return decodeZigZagInt32Value(values[0]);
|
|
30
42
|
}
|
|
31
|
-
|
|
43
|
+
return decodeZigZagConstRleInt32(values);
|
|
32
44
|
}
|
|
33
|
-
export function
|
|
45
|
+
export function decodeUnsignedConstInt32Stream(data, offset, streamMetadata) {
|
|
34
46
|
const values = decodePhysicalLevelTechnique(data, offset, streamMetadata);
|
|
35
47
|
if (values.length === 1) {
|
|
36
|
-
|
|
37
|
-
return isSigned ? decodeZigZagInt32Value(value) : value;
|
|
48
|
+
return values[0];
|
|
38
49
|
}
|
|
39
|
-
return
|
|
50
|
+
return decodeUnsignedConstRleInt32(values);
|
|
40
51
|
}
|
|
41
|
-
export function
|
|
52
|
+
export function decodeSequenceInt32Stream(data, offset, streamMetadata) {
|
|
42
53
|
const values = decodePhysicalLevelTechnique(data, offset, streamMetadata);
|
|
43
54
|
return decodeZigZagSequenceRleInt32(values);
|
|
44
55
|
}
|
|
45
|
-
export function
|
|
56
|
+
export function decodeSequenceInt64Stream(data, offset, streamMetadata) {
|
|
46
57
|
const values = decodeVarintInt64(data, offset, streamMetadata.numValues);
|
|
47
58
|
return decodeZigZagSequenceRleInt64(values);
|
|
48
59
|
}
|
|
49
|
-
export function
|
|
60
|
+
export function decodeSignedInt64Stream(data, offset, streamMetadata, nullabilityBuffer) {
|
|
50
61
|
const values = decodeVarintInt64(data, offset, streamMetadata.numValues);
|
|
51
|
-
return
|
|
62
|
+
return decodeSignedInt64(values, streamMetadata, nullabilityBuffer);
|
|
52
63
|
}
|
|
53
|
-
export function
|
|
64
|
+
export function decodeUnsignedInt64Stream(data, offset, streamMetadata, nullabilityBuffer) {
|
|
65
|
+
const values = decodeVarintInt64(data, offset, streamMetadata.numValues);
|
|
66
|
+
return decodeUnsignedInt64(values, streamMetadata, nullabilityBuffer);
|
|
67
|
+
}
|
|
68
|
+
export function decodeSignedInt64AsFloat64Stream(data, offset, streamMetadata) {
|
|
54
69
|
const values = decodeVarintFloat64(data, offset, streamMetadata.numValues);
|
|
55
|
-
return
|
|
70
|
+
return decodeFloat64Values(values, streamMetadata, true);
|
|
56
71
|
}
|
|
57
|
-
export function
|
|
72
|
+
export function decodeUnsignedInt64AsFloat64Stream(data, offset, streamMetadata) {
|
|
73
|
+
const values = decodeVarintFloat64(data, offset, streamMetadata.numValues);
|
|
74
|
+
return decodeFloat64Values(values, streamMetadata, false);
|
|
75
|
+
}
|
|
76
|
+
export function decodeSignedConstInt64Stream(data, offset, streamMetadata) {
|
|
77
|
+
const values = decodeVarintInt64(data, offset, streamMetadata.numValues);
|
|
78
|
+
if (values.length === 1) {
|
|
79
|
+
return decodeZigZagInt64Value(values[0]);
|
|
80
|
+
}
|
|
81
|
+
return decodeZigZagConstRleInt64(values);
|
|
82
|
+
}
|
|
83
|
+
export function decodeUnsignedConstInt64Stream(data, offset, streamMetadata) {
|
|
58
84
|
const values = decodeVarintInt64(data, offset, streamMetadata.numValues);
|
|
59
85
|
if (values.length === 1) {
|
|
60
|
-
|
|
61
|
-
return isSigned ? decodeZigZagInt64Value(value) : value;
|
|
86
|
+
return values[0];
|
|
62
87
|
}
|
|
63
|
-
return
|
|
88
|
+
return decodeUnsignedConstRleInt64(values);
|
|
64
89
|
}
|
|
65
90
|
/**
|
|
66
91
|
* This method decodes integer streams.
|
|
@@ -73,7 +98,8 @@ export function decodeConstLongStream(data, offset, streamMetadata, isSigned) {
|
|
|
73
98
|
* - Delta Rle
|
|
74
99
|
* - Componentwise Delta -> always ZigZag encoding is used
|
|
75
100
|
*/
|
|
76
|
-
function
|
|
101
|
+
function decodeSignedInt32(values, streamMetadata, scalingData, nullabilityBuffer) {
|
|
102
|
+
let decodedValues;
|
|
77
103
|
switch (streamMetadata.logicalLevelTechnique1) {
|
|
78
104
|
case LogicalLevelTechnique.DELTA:
|
|
79
105
|
if (streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {
|
|
@@ -82,36 +108,76 @@ function decodeInt32(values, streamMetadata, isSigned, scalingData, nullabilityB
|
|
|
82
108
|
return decodeDeltaRleInt32(values, rleMetadata.runs, rleMetadata.numRleValues);
|
|
83
109
|
}
|
|
84
110
|
values = decodeUnsignedRleInt32(values, rleMetadata.runs, rleMetadata.numRleValues);
|
|
111
|
+
decodedValues = decodeZigZagDeltaInt32(values);
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
decodedValues = decodeZigZagDeltaInt32(values);
|
|
85
115
|
}
|
|
86
|
-
decodeZigZagDeltaInt32(values);
|
|
87
116
|
break;
|
|
88
117
|
case LogicalLevelTechnique.RLE:
|
|
89
|
-
|
|
118
|
+
decodedValues = decodeZigZagRleInt32(values, streamMetadata.runs, streamMetadata.numRleValues);
|
|
90
119
|
break;
|
|
91
120
|
case LogicalLevelTechnique.MORTON:
|
|
92
121
|
fastInverseDelta(values);
|
|
122
|
+
decodedValues = new Int32Array(values);
|
|
93
123
|
break;
|
|
94
124
|
case LogicalLevelTechnique.COMPONENTWISE_DELTA:
|
|
95
125
|
if (scalingData && !nullabilityBuffer) {
|
|
96
|
-
decodeComponentwiseDeltaVec2Scaled(values, scalingData.scale, scalingData.min, scalingData.max);
|
|
97
|
-
return values;
|
|
126
|
+
return decodeComponentwiseDeltaVec2Scaled(values, scalingData.scale, scalingData.min, scalingData.max);
|
|
98
127
|
}
|
|
99
|
-
decodeComponentwiseDeltaVec2(values);
|
|
128
|
+
decodedValues = decodeComponentwiseDeltaVec2(values);
|
|
100
129
|
break;
|
|
101
130
|
case LogicalLevelTechnique.NONE:
|
|
102
|
-
|
|
103
|
-
|
|
131
|
+
decodedValues = decodeZigZagInt32(values);
|
|
132
|
+
break;
|
|
133
|
+
default:
|
|
134
|
+
throw new Error(`The specified Logical level technique is not supported: ${streamMetadata.logicalLevelTechnique1}`);
|
|
135
|
+
}
|
|
136
|
+
if (nullabilityBuffer) {
|
|
137
|
+
return unpackNullable(decodedValues, nullabilityBuffer, 0);
|
|
138
|
+
}
|
|
139
|
+
return decodedValues;
|
|
140
|
+
}
|
|
141
|
+
function decodeUnsignedInt32(values, streamMetadata, scalingData, nullabilityBuffer) {
|
|
142
|
+
let decodedValues;
|
|
143
|
+
switch (streamMetadata.logicalLevelTechnique1) {
|
|
144
|
+
case LogicalLevelTechnique.DELTA:
|
|
145
|
+
if (streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {
|
|
146
|
+
const rleMetadata = streamMetadata;
|
|
147
|
+
const deltaValues = decodeUnsignedRleInt32(values, rleMetadata.runs, rleMetadata.numRleValues);
|
|
148
|
+
decodedValues = decodeUnsignedZigZagDeltaInt32(deltaValues);
|
|
104
149
|
}
|
|
150
|
+
else {
|
|
151
|
+
decodedValues = decodeUnsignedZigZagDeltaInt32(values);
|
|
152
|
+
}
|
|
153
|
+
break;
|
|
154
|
+
case LogicalLevelTechnique.RLE:
|
|
155
|
+
decodedValues = decodeUnsignedRleInt32(values, streamMetadata.runs, streamMetadata.numRleValues);
|
|
156
|
+
break;
|
|
157
|
+
case LogicalLevelTechnique.MORTON:
|
|
158
|
+
fastInverseDelta(values);
|
|
159
|
+
decodedValues = values;
|
|
160
|
+
break;
|
|
161
|
+
case LogicalLevelTechnique.COMPONENTWISE_DELTA:
|
|
162
|
+
if (scalingData && !nullabilityBuffer) {
|
|
163
|
+
decodedValues = decodeUnsignedComponentwiseDeltaVec2Scaled(values, scalingData.scale, scalingData.min, scalingData.max);
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
decodedValues = decodeUnsignedComponentwiseDeltaVec2(values);
|
|
167
|
+
}
|
|
168
|
+
break;
|
|
169
|
+
case LogicalLevelTechnique.NONE:
|
|
170
|
+
decodedValues = values;
|
|
105
171
|
break;
|
|
106
172
|
default:
|
|
107
173
|
throw new Error(`The specified Logical level technique is not supported: ${streamMetadata.logicalLevelTechnique1}`);
|
|
108
174
|
}
|
|
109
175
|
if (nullabilityBuffer) {
|
|
110
|
-
return unpackNullable(
|
|
176
|
+
return unpackNullable(decodedValues, nullabilityBuffer, 0);
|
|
111
177
|
}
|
|
112
|
-
return
|
|
178
|
+
return decodedValues;
|
|
113
179
|
}
|
|
114
|
-
function
|
|
180
|
+
function decodeSignedInt64(values, streamMetadata, nullabilityBuffer) {
|
|
115
181
|
let decodedValues;
|
|
116
182
|
switch (streamMetadata.logicalLevelTechnique1) {
|
|
117
183
|
case LogicalLevelTechnique.DELTA:
|
|
@@ -128,16 +194,38 @@ function decodeInt64(values, streamMetadata, isSigned, nullabilityBuffer) {
|
|
|
128
194
|
}
|
|
129
195
|
break;
|
|
130
196
|
case LogicalLevelTechnique.RLE:
|
|
131
|
-
decodedValues =
|
|
197
|
+
decodedValues = decodeZigZagRleInt64(values, streamMetadata.runs, streamMetadata.numRleValues);
|
|
132
198
|
break;
|
|
133
199
|
case LogicalLevelTechnique.NONE:
|
|
134
|
-
|
|
135
|
-
|
|
200
|
+
decodedValues = decodeZigZagInt64(values);
|
|
201
|
+
break;
|
|
202
|
+
default:
|
|
203
|
+
throw new Error(`The specified Logical level technique is not supported: ${streamMetadata.logicalLevelTechnique1}`);
|
|
204
|
+
}
|
|
205
|
+
if (nullabilityBuffer) {
|
|
206
|
+
return unpackNullable(decodedValues, nullabilityBuffer, 0n);
|
|
207
|
+
}
|
|
208
|
+
return decodedValues;
|
|
209
|
+
}
|
|
210
|
+
function decodeUnsignedInt64(values, streamMetadata, nullabilityBuffer) {
|
|
211
|
+
let decodedValues;
|
|
212
|
+
switch (streamMetadata.logicalLevelTechnique1) {
|
|
213
|
+
case LogicalLevelTechnique.DELTA:
|
|
214
|
+
if (streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {
|
|
215
|
+
const rleMetadata = streamMetadata;
|
|
216
|
+
const deltaValues = decodeUnsignedRleInt64(values, rleMetadata.runs, rleMetadata.numRleValues);
|
|
217
|
+
decodedValues = decodeUnsignedZigZagDeltaInt64(deltaValues);
|
|
136
218
|
}
|
|
137
219
|
else {
|
|
138
|
-
decodedValues =
|
|
220
|
+
decodedValues = decodeUnsignedZigZagDeltaInt64(values);
|
|
139
221
|
}
|
|
140
222
|
break;
|
|
223
|
+
case LogicalLevelTechnique.RLE:
|
|
224
|
+
decodedValues = decodeUnsignedRleInt64(values, streamMetadata.runs, streamMetadata.numRleValues);
|
|
225
|
+
break;
|
|
226
|
+
case LogicalLevelTechnique.NONE:
|
|
227
|
+
decodedValues = values;
|
|
228
|
+
break;
|
|
141
229
|
default:
|
|
142
230
|
throw new Error(`The specified Logical level technique is not supported: ${streamMetadata.logicalLevelTechnique1}`);
|
|
143
231
|
}
|
|
@@ -146,7 +234,7 @@ function decodeInt64(values, streamMetadata, isSigned, nullabilityBuffer) {
|
|
|
146
234
|
}
|
|
147
235
|
return decodedValues;
|
|
148
236
|
}
|
|
149
|
-
|
|
237
|
+
function decodeFloat64Values(values, streamMetadata, isSigned) {
|
|
150
238
|
switch (streamMetadata.logicalLevelTechnique1) {
|
|
151
239
|
case LogicalLevelTechnique.DELTA:
|
|
152
240
|
if (streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {
|
|
@@ -191,11 +279,11 @@ function decodeLengthToOffsetBuffer(values, streamMetadata) {
|
|
|
191
279
|
const rleMetadata = streamMetadata;
|
|
192
280
|
const decodedValues = decodeZigZagRleDeltaInt32(values, rleMetadata.runs, rleMetadata.numRleValues);
|
|
193
281
|
fastInverseDelta(decodedValues);
|
|
194
|
-
return decodedValues;
|
|
282
|
+
return new Uint32Array(decodedValues);
|
|
195
283
|
}
|
|
196
284
|
throw new Error("Only delta encoding is supported for transforming length to offset streams yet.");
|
|
197
285
|
}
|
|
198
|
-
export function getVectorType(streamMetadata, sizeOrNullabilityBuffer, data, offset) {
|
|
286
|
+
export function getVectorType(streamMetadata, sizeOrNullabilityBuffer, data, offset, varintWidth = "int32") {
|
|
199
287
|
const logicalLevelTechnique1 = streamMetadata.logicalLevelTechnique1;
|
|
200
288
|
if (logicalLevelTechnique1 === LogicalLevelTechnique.RLE) {
|
|
201
289
|
return streamMetadata.runs === 1 ? VectorType.CONST : VectorType.FLAT;
|
|
@@ -218,14 +306,14 @@ export function getVectorType(streamMetadata, sizeOrNullabilityBuffer, data, off
|
|
|
218
306
|
}
|
|
219
307
|
// Two runs can be a sequence if both deltas are equal to 1
|
|
220
308
|
const savedOffset = offset.get();
|
|
221
|
-
let values;
|
|
222
309
|
if (streamMetadata.physicalLevelTechnique === PhysicalLevelTechnique.VARINT) {
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
values = new Int32Array(data.buffer, data.byteOffset + byteOffset, 4);
|
|
310
|
+
if (isDeltaRleSequenceVarintWidth(data, offset, varintWidth)) {
|
|
311
|
+
return VectorType.SEQUENCE;
|
|
312
|
+
}
|
|
313
|
+
return streamMetadata.numValues === 1 ? VectorType.CONST : VectorType.FLAT;
|
|
228
314
|
}
|
|
315
|
+
const byteOffset = offset.get();
|
|
316
|
+
const values = new Int32Array(data.buffer, data.byteOffset + byteOffset, 4);
|
|
229
317
|
offset.set(savedOffset);
|
|
230
318
|
// Check if both deltas are encoded 1
|
|
231
319
|
const zigZagOne = 2;
|
|
@@ -234,15 +322,14 @@ export function getVectorType(streamMetadata, sizeOrNullabilityBuffer, data, off
|
|
|
234
322
|
}
|
|
235
323
|
return streamMetadata.numValues === 1 ? VectorType.CONST : VectorType.FLAT;
|
|
236
324
|
}
|
|
237
|
-
function
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
: new BigInt64Array(decodeUnsignedRleInt64(data, streamMetadata.runs, streamMetadata.numRleValues));
|
|
325
|
+
function isDeltaRleSequenceVarintWidth(data, offset, varintWidth) {
|
|
326
|
+
const peekOffset = new IntWrapper(offset.get());
|
|
327
|
+
if (varintWidth === "int64") {
|
|
328
|
+
const values = decodeVarintInt64(data, peekOffset, 4);
|
|
329
|
+
return values[2] === 2n && values[3] === 2n;
|
|
330
|
+
}
|
|
331
|
+
const values = decodeVarintInt32(data, peekOffset, 4);
|
|
332
|
+
return values[2] === 2 && values[3] === 2;
|
|
246
333
|
}
|
|
247
334
|
function decodeRleFloat64(data, streamMetadata, isSigned) {
|
|
248
335
|
return isSigned
|