@maplibre/mlt 1.1.6 → 1.1.7
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 +13 -0
- package/dist/decoding/bigEndianDecode.js +50 -0
- package/dist/decoding/bigEndianDecode.js.map +1 -0
- package/dist/decoding/decodingTestUtils.d.ts +1 -1
- package/dist/decoding/decodingTestUtils.js.map +1 -1
- package/dist/decoding/decodingUtils.js +4 -2
- package/dist/decoding/decodingUtils.js.map +1 -1
- package/dist/decoding/fastPforDecoder.d.ts +48 -0
- package/dist/decoding/fastPforDecoder.js +482 -0
- package/dist/decoding/fastPforDecoder.js.map +1 -0
- package/dist/decoding/fastPforShared.d.ts +9 -0
- package/dist/decoding/fastPforShared.js +29 -0
- package/dist/decoding/fastPforShared.js.map +1 -0
- package/dist/decoding/fastPforUnpack.d.ts +23 -0
- package/dist/decoding/fastPforUnpack.js +910 -0
- package/dist/decoding/fastPforUnpack.js.map +1 -0
- package/dist/decoding/geometryDecoder.d.ts +2 -2
- package/dist/decoding/geometryDecoder.js +11 -8
- package/dist/decoding/geometryDecoder.js.map +1 -1
- package/dist/decoding/integerDecodingUtils.d.ts +14 -10
- package/dist/decoding/integerDecodingUtils.js +44 -22
- package/dist/decoding/integerDecodingUtils.js.map +1 -1
- package/dist/decoding/integerStreamDecoder.d.ts +1 -1
- package/dist/decoding/integerStreamDecoder.js +13 -6
- package/dist/decoding/integerStreamDecoder.js.map +1 -1
- package/dist/decoding/propertyDecoder.js +10 -14
- package/dist/decoding/propertyDecoder.js.map +1 -1
- package/dist/decoding/stringDecoder.js +1 -4
- package/dist/decoding/stringDecoder.js.map +1 -1
- package/dist/encoding/bigEndianEncode.d.ts +7 -0
- package/dist/encoding/bigEndianEncode.js +16 -0
- package/dist/encoding/bigEndianEncode.js.map +1 -0
- package/dist/encoding/constGeometryVectorEncoder.d.ts +19 -0
- package/dist/encoding/constGeometryVectorEncoder.js +248 -0
- package/dist/encoding/constGeometryVectorEncoder.js.map +1 -0
- package/dist/encoding/encodingUtils.d.ts +1 -1
- package/dist/encoding/encodingUtils.js +2 -2
- package/dist/encoding/encodingUtils.js.map +1 -1
- package/dist/encoding/fastPforEncoder.d.ts +19 -0
- package/dist/encoding/fastPforEncoder.js +310 -0
- package/dist/encoding/fastPforEncoder.js.map +1 -0
- package/dist/encoding/integerEncodingUtils.d.ts +7 -7
- package/dist/encoding/integerEncodingUtils.js +25 -17
- package/dist/encoding/integerEncodingUtils.js.map +1 -1
- package/dist/encoding/integerStreamEncoder.d.ts +1 -1
- package/dist/encoding/integerStreamEncoder.js +5 -5
- package/dist/encoding/integerStreamEncoder.js.map +1 -1
- package/dist/encoding/packNullableUtils.d.ts +1 -1
- package/dist/encoding/packNullableUtils.js.map +1 -1
- package/dist/encoding/propertyEncoder.d.ts +1 -1
- package/dist/encoding/propertyEncoder.js +8 -8
- package/dist/encoding/propertyEncoder.js.map +1 -1
- package/dist/encoding/stringEncoder.js +3 -3
- package/dist/encoding/stringEncoder.js.map +1 -1
- package/dist/encoding/zOrderCurveEncoder.js +1 -1
- package/dist/encoding/zOrderCurveEncoder.js.map +1 -1
- package/dist/metadata/tile/logicalStreamType.d.ts +3 -3
- package/dist/metadata/tile/logicalStreamType.js.map +1 -1
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.d.ts +1 -1
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.js.map +1 -1
- package/dist/metadata/tileset/typeMap.d.ts +10 -2
- package/dist/metadata/tileset/typeMap.js +25 -15
- package/dist/metadata/tileset/typeMap.js.map +1 -1
- package/dist/mltDecoder.js +29 -26
- package/dist/mltDecoder.js.map +1 -1
- package/dist/mltMetadata.js.map +1 -1
- package/dist/vector/constant/intConstVector.d.ts +1 -1
- package/dist/vector/constant/intConstVector.js +1 -1
- package/dist/vector/constant/intConstVector.js.map +1 -1
- package/dist/vector/constant/longConstVector.d.ts +1 -1
- package/dist/vector/constant/longConstVector.js +1 -1
- package/dist/vector/constant/longConstVector.js.map +1 -1
- package/dist/vector/dictionary/stringDictionaryVector.d.ts +0 -1
- package/dist/vector/dictionary/stringDictionaryVector.js +0 -2
- package/dist/vector/dictionary/stringDictionaryVector.js.map +1 -1
- package/dist/vector/featureTable.d.ts +4 -5
- package/dist/vector/featureTable.js +2 -29
- package/dist/vector/featureTable.js.map +1 -1
- package/dist/vector/filter/flatSelectionVector.d.ts +1 -1
- package/dist/vector/filter/flatSelectionVector.js.map +1 -1
- package/dist/vector/filter/selectionVectorUtils.d.ts +1 -1
- package/dist/vector/filter/selectionVectorUtils.js.map +1 -1
- package/dist/vector/filter/sequenceSelectionVector.d.ts +1 -1
- package/dist/vector/filter/sequenceSelectionVector.js.map +1 -1
- package/dist/vector/flat/stringFlatVector.d.ts +0 -1
- package/dist/vector/flat/stringFlatVector.js +0 -2
- package/dist/vector/flat/stringFlatVector.js.map +1 -1
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.d.ts +0 -2
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.js +0 -36
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.js.map +1 -1
- package/dist/vector/geometry/constGeometryVector.d.ts +2 -2
- package/dist/vector/geometry/constGeometryVector.js +1 -1
- package/dist/vector/geometry/constGeometryVector.js.map +1 -1
- package/dist/vector/geometry/constGpuVector.d.ts +2 -2
- package/dist/vector/geometry/constGpuVector.js +1 -1
- package/dist/vector/geometry/constGpuVector.js.map +1 -1
- package/dist/vector/geometry/flatGeometryVector.d.ts +1 -1
- package/dist/vector/geometry/flatGeometryVector.js.map +1 -1
- package/dist/vector/geometry/flatGpuVector.d.ts +1 -1
- package/dist/vector/geometry/flatGpuVector.js.map +1 -1
- package/dist/vector/geometry/geometryType.js.map +1 -1
- package/dist/vector/geometry/geometryVector.d.ts +4 -5
- package/dist/vector/geometry/geometryVector.js +0 -8
- package/dist/vector/geometry/geometryVector.js.map +1 -1
- package/dist/vector/geometry/geometryVectorConverter.d.ts +1 -1
- package/dist/vector/geometry/geometryVectorConverter.js +167 -211
- package/dist/vector/geometry/geometryVectorConverter.js.map +1 -1
- package/dist/vector/geometry/gpuVector.d.ts +2 -2
- package/dist/vector/geometry/gpuVector.js.map +1 -1
- package/dist/vector/geometry/topologyVector.d.ts +5 -9
- package/dist/vector/geometry/topologyVector.js +1 -19
- package/dist/vector/geometry/topologyVector.js.map +1 -1
- package/dist/vector/geometry/vertexBufferType.js.map +1 -1
- package/dist/vector/intVector.d.ts +7 -7
- package/dist/vector/intVector.js.map +1 -1
- package/dist/vector/vector.js +1 -1
- package/dist/vector/vector.js.map +1 -1
- package/dist/vector/vectorType.js.map +1 -1
- package/package.json +9 -10
- package/dist/decoding/decodingUtils.spec.d.ts +0 -1
- package/dist/decoding/decodingUtils.spec.js +0 -141
- package/dist/decoding/decodingUtils.spec.js.map +0 -1
- package/dist/decoding/fsstDecoder.spec.d.ts +0 -1
- package/dist/decoding/fsstDecoder.spec.js +0 -57
- package/dist/decoding/fsstDecoder.spec.js.map +0 -1
- package/dist/decoding/integerDecodingUtils.spec.d.ts +0 -1
- package/dist/decoding/integerDecodingUtils.spec.js +0 -300
- package/dist/decoding/integerDecodingUtils.spec.js.map +0 -1
- package/dist/decoding/integerStreamDecoder.spec.d.ts +0 -1
- package/dist/decoding/integerStreamDecoder.spec.js +0 -402
- package/dist/decoding/integerStreamDecoder.spec.js.map +0 -1
- package/dist/decoding/propertyDecoder.spec.d.ts +0 -1
- package/dist/decoding/propertyDecoder.spec.js +0 -448
- package/dist/decoding/propertyDecoder.spec.js.map +0 -1
- package/dist/decoding/stringDecoder.spec.d.ts +0 -1
- package/dist/decoding/stringDecoder.spec.js +0 -387
- package/dist/decoding/stringDecoder.spec.js.map +0 -1
- package/dist/decoding/unpackNullableUtils.spec.d.ts +0 -1
- package/dist/decoding/unpackNullableUtils.spec.js +0 -71
- package/dist/decoding/unpackNullableUtils.spec.js.map +0 -1
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.spec.d.ts +0 -1
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.spec.js +0 -142
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.spec.js.map +0 -1
- package/dist/mltDecoder.spec.d.ts +0 -1
- package/dist/mltDecoder.spec.js +0 -152
- package/dist/mltDecoder.spec.js.map +0 -1
- package/dist/vector/filter/flatSelectionVector.spec.d.ts +0 -1
- package/dist/vector/filter/flatSelectionVector.spec.js +0 -51
- package/dist/vector/filter/flatSelectionVector.spec.js.map +0 -1
- package/dist/vector/filter/selectionVectorUtil.spec.d.ts +0 -1
- package/dist/vector/filter/selectionVectorUtil.spec.js +0 -154
- package/dist/vector/filter/selectionVectorUtil.spec.js.map +0 -1
- package/dist/vector/filter/sequenceSelectionVector.spec.d.ts +0 -1
- package/dist/vector/filter/sequenceSelectionVector.spec.js +0 -115
- package/dist/vector/filter/sequenceSelectionVector.spec.js.map +0 -1
- package/dist/vector/flat/floatFlatVector.spec.d.ts +0 -1
- package/dist/vector/flat/floatFlatVector.spec.js +0 -14
- package/dist/vector/flat/floatFlatVector.spec.js.map +0 -1
- package/dist/vector/flat/intFlatVector.spec.d.ts +0 -1
- package/dist/vector/flat/intFlatVector.spec.js +0 -15
- package/dist/vector/flat/intFlatVector.spec.js.map +0 -1
- package/dist/vector/flat/longFlatVector.spec.d.ts +0 -1
- package/dist/vector/flat/longFlatVector.spec.js +0 -14
- package/dist/vector/flat/longFlatVector.spec.js.map +0 -1
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.spec.d.ts +0 -1
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.spec.js +0 -28
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.spec.js.map +0 -1
- package/dist/vector/geometry/zOrderCurve.spec.d.ts +0 -1
- package/dist/vector/geometry/zOrderCurve.spec.js +0 -25
- package/dist/vector/geometry/zOrderCurve.spec.js.map +0 -1
- package/dist/vector/sequence/longSequenceVektor.spec.d.ts +0 -1
- package/dist/vector/sequence/longSequenceVektor.spec.js +0 -11
- package/dist/vector/sequence/longSequenceVektor.spec.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integerEncodingUtils.js","sourceRoot":"","sources":["../../src/encoding/integerEncodingUtils.ts"],"names":[],"mappings":"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","sourcesContent":["import IntWrapper from \"../decoding/intWrapper\";\n\nexport function encodeVarintInt32Value(value: number, dst: Uint8Array, offset: IntWrapper): void {\n let v = value;\n while (v > 0x7f) {\n dst[offset.get()] = (v & 0x7f) | 0x80;\n offset.increment();\n v >>>= 7;\n }\n dst[offset.get()] = v & 0x7f;\n offset.increment();\n}\n\nexport function encodeVarintInt32(values: Int32Array): Uint8Array {\n const buffer = new Uint8Array(values.length * 5);\n const offset = new IntWrapper(0);\n\n for (const value of values) {\n encodeVarintInt32Value(value, buffer, offset);\n }\n return buffer.slice(0, offset.get());\n}\n\nexport function encodeVarintInt64(values: BigInt64Array): Uint8Array {\n const buffer = new Uint8Array(values.length * 10);\n const offset = new IntWrapper(0);\n\n for (const value of values) {\n encodeVarintInt64Value(value, buffer, offset);\n }\n return buffer.slice(0, offset.get());\n}\n\nfunction encodeVarintInt64Value(value: bigint, dst: Uint8Array, offset: IntWrapper): void {\n let v = value;\n while (v > 0x7fn) {\n dst[offset.get()] = Number(v & 0x7fn) | 0x80;\n offset.increment();\n v >>= 7n;\n }\n dst[offset.get()] = Number(v & 0x7fn);\n offset.increment();\n}\n\nexport function encodeVarintFloat64(values: Float64Array): Uint8Array {\n // 1. Calculate the exact size required for the buffer\n let size = 0;\n for (let i = 0; i < values.length; i++) {\n let val = values[i];\n // Ensure we handle the value as a positive integer\n val = val < 0 ? 0 : Math.floor(val);\n\n // 0 always takes 1 byte\n if (val === 0) {\n size++;\n continue;\n }\n\n // Calculate bytes needed: ceil(log128(val + 1))\n while (val > 0) {\n size++;\n val = Math.floor(val / 128);\n }\n }\n\n const dst = new Uint8Array(size);\n const offset = new IntWrapper(0);\n\n for (let i = 0; i < values.length; i++) {\n encodeVarintFloat64Value(values[i], dst, offset);\n }\n\n return dst;\n}\n\n/**\n * Encodes a single number into the buffer at the given offset using Varint encoding.\n * Handles numbers up to 2^53 (MAX_SAFE_INTEGER) correctly.\n */\nfunction encodeVarintFloat64Value(val: number, buf: Uint8Array, offset: IntWrapper): void {\n // Ensure integer\n val = Math.floor(val);\n\n // Handle 0 explicitly or ensure loop runs once\n if (val === 0) {\n buf[offset.get()] = 0;\n offset.increment();\n return;\n }\n\n while (val >= 128) {\n // Write 7 bits of data | 0x80 (continuation bit)\n buf[offset.get()] = (val % 128) | 0x80;\n offset.increment();\n // Shift right by 7 bits\n val = Math.floor(val / 128);\n }\n\n // Write the last byte (no continuation bit)\n buf[offset.get()] = val;\n offset.increment();\n}\n\nexport function encodeFastPfor(data: Int32Array): Uint8Array {\n throw new Error(\"FastPFor is not implemented yet.\");\n}\n\nexport function encodeZigZagInt32Value(value: number): number {\n return (value << 1) ^ (value >> 31);\n}\n\nexport function encodeZigZagInt64Value(value: bigint): bigint {\n return (value << 1n) ^ (value >> 63n);\n}\n\nexport function encodeZigZagFloat64Value(n: number): number {\n return n >= 0 ? n * 2 : n * -2 - 1;\n}\nexport function encodeZigZagInt32(data: Int32Array): void {\n for (let i = 0; i < data.length; i++) {\n data[i] = encodeZigZagInt32Value(data[i]);\n }\n}\n\nexport function encodeZigZagInt64(data: BigInt64Array): void {\n for (let i = 0; i < data.length; i++) {\n data[i] = encodeZigZagInt64Value(data[i]);\n }\n}\n\nexport function encodeZigZagFloat64(data: Float64Array): void {\n for (let i = 0; i < data.length; i++) {\n data[i] = encodeZigZagFloat64Value(data[i]);\n }\n}\n\nexport function encodeUnsignedRleInt32(input: Int32Array): { data: Int32Array; runs: number } {\n if (input.length === 0) {\n return { data: new Int32Array(0), runs: 0 };\n }\n\n const runLengths: number[] = [];\n const runValues: number[] = [];\n\n let currentRunLength = 0;\n let currentValue = input[0];\n\n for (let i = 0; i < input.length; i++) {\n const nextValue = input[i];\n\n if (nextValue === currentValue) {\n currentRunLength++;\n } else {\n // End of the current run, record it\n runLengths.push(currentRunLength);\n runValues.push(currentValue);\n\n // Start a new run\n currentValue = nextValue;\n currentRunLength = 1;\n }\n }\n\n // Record the final run after the loop finishes\n runLengths.push(currentRunLength);\n runValues.push(currentValue);\n\n // Combine lengths and values into the final structured output array\n const numRuns = runLengths.length;\n const encodedData = new Int32Array(numRuns * 2);\n\n // Populate the first half with lengths\n encodedData.set(runLengths, 0);\n\n // Populate the second half with values, offset by the total number of runs\n encodedData.set(runValues, numRuns);\n\n return { data: encodedData, runs: numRuns };\n}\n\nexport function encodeUnsignedRleInt64(input: BigInt64Array): { data: BigInt64Array; runs: number } {\n if (input.length === 0) {\n return { data: new BigInt64Array(0), runs: 0 };\n }\n\n const runLengths: number[] = [];\n const runValues: bigint[] = [];\n\n let currentRunLength = 0;\n let currentValue: bigint = input[0];\n\n for (let i = 0; i < input.length; i++) {\n const nextValue = input[i];\n\n if (nextValue === currentValue) {\n currentRunLength++;\n } else {\n // End of the current run, record it\n runLengths.push(currentRunLength);\n runValues.push(currentValue);\n\n // Start a new run\n currentValue = nextValue;\n currentRunLength = 1;\n }\n }\n\n // Record the final run after the loop finishes\n runLengths.push(currentRunLength);\n runValues.push(currentValue);\n\n // Combine lengths and values into the final structured output array (BigInt64Array)\n const numRuns = runLengths.length;\n const encodedData = new BigInt64Array(numRuns * 2);\n\n // Populate the first half with lengths. We must convert the numbers back to BigInts here.\n for (let i = 0; i < numRuns; i++) {\n encodedData[i] = BigInt(runLengths[i]);\n }\n\n // Populate the second half with values, offset by the total number of runs\n encodedData.set(runValues, numRuns);\n\n return { data: encodedData, runs: numRuns };\n}\n\nexport function encodeUnsignedRleFloat64(input: Float64Array): { data: Float64Array; runs: number } {\n if (input.length === 0) {\n return { data: new Float64Array(0), runs: 0 };\n }\n\n const runLengths: number[] = [];\n const runValues: number[] = [];\n\n let currentRunLength = 0;\n let currentValue = input[0];\n\n for (let i = 0; i < input.length; i++) {\n const nextValue = input[i];\n\n if (nextValue === currentValue) {\n currentRunLength++;\n } else {\n // End of the current run, record it\n runLengths.push(currentRunLength);\n runValues.push(currentValue);\n\n // Start a new run\n currentValue = nextValue;\n currentRunLength = 1;\n }\n }\n\n // Record the final run after the loop finishes\n runLengths.push(currentRunLength);\n runValues.push(currentValue);\n\n // Combine lengths and values into the final structured output array (Float64Array)\n const numRuns = runLengths.length;\n // The final array is twice the size of the number of runs\n const encodedData = new Float64Array(numRuns * 2);\n\n // Populate the first half with lengths\n encodedData.set(runLengths, 0);\n\n // Populate the second half with values, offset by the total number of runs\n encodedData.set(runValues, numRuns);\n\n return { data: encodedData, runs: numRuns };\n}\n\nexport function encodeZigZagDeltaInt32(data: Int32Array): void {\n if (data.length === 0) {\n return;\n }\n\n let previousValue = data[0];\n data[0] = encodeZigZagInt32Value(previousValue);\n\n for (let i = 1; i < data.length; i++) {\n const currentValue = data[i];\n const delta = currentValue - previousValue;\n const encodedDelta = encodeZigZagInt32Value(delta);\n\n // Store the encoded delta back into the array\n data[i] = encodedDelta;\n\n // Update the previous value tracker for the next iteration's delta calculation\n previousValue = currentValue;\n }\n}\n\nexport function encodeZigZagDeltaInt64(data: BigInt64Array): void {\n if (data.length === 0) {\n return;\n }\n\n let previousValue = data[0];\n data[0] = encodeZigZagInt64Value(previousValue);\n\n for (let i = 1; i < data.length; i++) {\n const currentValue = data[i];\n const delta = currentValue - previousValue;\n const encodedDelta = encodeZigZagInt64Value(delta);\n\n // Store the encoded delta back into the array\n data[i] = encodedDelta;\n\n // Update the previous value tracker for the next iteration's delta calculation\n previousValue = currentValue;\n }\n}\n\nexport function encodeZigZagDeltaFloat64(data: Float64Array): void {\n if (data.length === 0) {\n return;\n }\n\n let previousValue = data[0];\n data[0] = encodeZigZagFloat64Value(previousValue);\n\n for (let i = 1; i < data.length; i++) {\n const currentValue = data[i];\n const delta = currentValue - previousValue;\n const encodedDelta = encodeZigZagFloat64Value(delta);\n\n // Store the encoded delta back into the array\n data[i] = encodedDelta;\n\n // Update the previous value tracker for the next iteration's delta calculation\n previousValue = currentValue;\n }\n}\n\nexport function encodeZigZagRleInt32(input: Int32Array): {\n data: Int32Array;\n runs: number;\n numTotalValues: number;\n} {\n if (input.length === 0) {\n return { data: new Int32Array(0), runs: 0, numTotalValues: 0 };\n }\n\n const zigzagEncodedStream: number[] = [];\n\n // Step 1: Apply Zigzag Encoding to all values\n for (let i = 0; i < input.length; i++) {\n zigzagEncodedStream.push(encodeZigZagInt32Value(input[i]));\n }\n // zigzagEncodedStream now holds the intermediate stream of zigzag values\n\n // Step 2: Apply RLE to the stream of zigzag-encoded values\n const runLengths: number[] = [];\n const runZigZagValues: number[] = [];\n\n let currentRunLength = 0;\n let currentValue = zigzagEncodedStream[0];\n\n for (let i = 0; i < zigzagEncodedStream.length; i++) {\n const nextValue = zigzagEncodedStream[i];\n\n if (nextValue === currentValue) {\n currentRunLength++;\n } else {\n runLengths.push(currentRunLength);\n runZigZagValues.push(currentValue);\n currentValue = nextValue;\n currentRunLength = 1;\n }\n }\n // Record the final run\n runLengths.push(currentRunLength);\n runZigZagValues.push(currentValue);\n\n // Step 3: Combine lengths and values into the final structured output array\n const numRuns = runLengths.length;\n // The final array uses Int32Array for lengths AND values\n const encodedData = new Int32Array(numRuns * 2);\n\n // Populate the first half with lengths\n encodedData.set(runLengths, 0);\n\n // Populate the second half with zigzagged values\n encodedData.set(runZigZagValues, numRuns);\n\n return {\n data: encodedData,\n runs: numRuns,\n numTotalValues: input.length, // Total original values count\n };\n}\n\nexport function encodeZigZagRleInt64(input: BigInt64Array): {\n data: BigInt64Array;\n runs: number;\n numTotalValues: number;\n} {\n if (input.length === 0) {\n return { data: new BigInt64Array(0), runs: 0, numTotalValues: 0 };\n }\n\n const zigzagEncodedStream: bigint[] = [];\n\n // Step 1: Apply Zigzag Encoding to all values\n for (let i = 0; i < input.length; i++) {\n zigzagEncodedStream.push(encodeZigZagInt64Value(input[i]));\n }\n // zigzagEncodedStream now holds the intermediate stream of zigzag values\n\n // Step 2: Apply RLE to the stream of zigzag-encoded values\n const runLengths: number[] = [];\n const runZigZagValues: bigint[] = [];\n\n let currentRunLength = 0;\n let currentValue: bigint = zigzagEncodedStream[0];\n\n for (let i = 0; i < zigzagEncodedStream.length; i++) {\n const nextValue = zigzagEncodedStream[i];\n\n if (nextValue === currentValue) {\n currentRunLength++;\n } else {\n runLengths.push(currentRunLength);\n runZigZagValues.push(currentValue);\n currentValue = nextValue;\n currentRunLength = 1;\n }\n }\n // Record the final run\n runLengths.push(currentRunLength);\n runZigZagValues.push(currentValue);\n\n // Step 3: Combine lengths and values into the final structured output array\n const numRuns = runLengths.length;\n // The final array uses BigInt64Array for lengths AND values\n const encodedData = new BigInt64Array(numRuns * 2);\n\n // Populate the first half with lengths (converting numbers back to BigInts)\n for (let i = 0; i < numRuns; i++) {\n encodedData[i] = BigInt(runLengths[i]);\n }\n\n // Populate the second half with zigzagged values\n encodedData.set(runZigZagValues, numRuns);\n\n return {\n data: encodedData,\n runs: numRuns,\n numTotalValues: input.length, // Total original values count\n };\n}\n\nexport function encodeZigZagRleFloat64(input: Float64Array): {\n data: Float64Array;\n runs: number;\n numTotalValues: number;\n} {\n if (input.length === 0) {\n return { data: new Float64Array(0), runs: 0, numTotalValues: 0 };\n }\n\n const zigzagEncodedStream: number[] = [];\n\n // Step 1: Apply Float-based Zigzag Encoding to all values\n for (let i = 0; i < input.length; i++) {\n zigzagEncodedStream.push(encodeZigZagFloat64Value(input[i]));\n }\n // zigzagEncodedStream now holds the intermediate stream of zigzag values (as floats acting as integers)\n\n // Step 2: Apply RLE to the stream of zigzag-encoded values\n const runLengths: number[] = [];\n const runZigZagValues: number[] = [];\n\n let currentRunLength = 0;\n let currentValue = zigzagEncodedStream[0];\n\n for (let i = 0; i < zigzagEncodedStream.length; i++) {\n const nextValue = zigzagEncodedStream[i];\n\n if (nextValue === currentValue) {\n currentRunLength++;\n } else {\n runLengths.push(currentRunLength);\n runZigZagValues.push(currentValue);\n currentValue = nextValue;\n currentRunLength = 1;\n }\n }\n // Record the final run\n runLengths.push(currentRunLength);\n runZigZagValues.push(currentValue);\n\n // Step 3: Combine lengths and values into the final structured output array\n const numRuns = runLengths.length;\n // The final array uses Float64Array for lengths AND values\n const encodedData = new Float64Array(numRuns * 2);\n\n // Populate the first half with lengths\n encodedData.set(runLengths, 0);\n\n // Populate the second half with zigzagged values\n encodedData.set(runZigZagValues, numRuns);\n\n return {\n data: encodedData,\n runs: numRuns,\n numTotalValues: input.length, // Total original values count\n };\n}\n\n/**\n * This is not really a encode, but more of a decode method...\n */\nexport function encodeDeltaInt32(data: Int32Array): void {\n if (data.length === 0) {\n return;\n }\n for (let i = data.length - 1; i >= 1; i--) {\n data[i] = data[i] - data[i - 1];\n }\n}\n\nexport function encodeComponentwiseDeltaVec2(data: Int32Array): void {\n if (data.length < 2) return;\n\n // Reverse iterate to avoid overwriting data needed for delta computation\n for (let i = data.length - 2; i >= 2; i -= 2) {\n const deltaX = data[i] - data[i - 2];\n const deltaY = data[i + 1] - data[i - 1];\n data[i] = encodeZigZagInt32Value(deltaX);\n data[i + 1] = encodeZigZagInt32Value(deltaY);\n }\n\n // Encode first vertex last (after computing all deltas)\n data[0] = encodeZigZagInt32Value(data[0]);\n data[1] = encodeZigZagInt32Value(data[1]);\n}\n\nexport function encodeComponentwiseDeltaVec2Scaled(data: Int32Array, scale: number): void {\n if (data.length < 2) return;\n\n // First, inverse scale all values (tile space -> original space)\n for (let i = 0; i < data.length; i++) {\n data[i] = Math.round(data[i] / scale);\n }\n\n // Then apply componentwise delta encoding (same as non-scaled version)\n // Reverse iterate to avoid overwriting data needed for delta computation\n for (let i = data.length - 2; i >= 2; i -= 2) {\n const deltaX = data[i] - data[i - 2];\n const deltaY = data[i + 1] - data[i - 1];\n data[i] = encodeZigZagInt32Value(deltaX);\n data[i + 1] = encodeZigZagInt32Value(deltaY);\n }\n\n // Encode first vertex last (after computing all deltas)\n data[0] = encodeZigZagInt32Value(data[0]);\n data[1] = encodeZigZagInt32Value(data[1]);\n}\n\n// HM TODO:\n// zigZagDeltaOfDeltaDecoding\n\nexport function encodeZigZagRleDeltaInt32(values: Int32Array | number[]): {\n data: Int32Array;\n runs: number;\n numTotalValues: number;\n} {\n if (values.length === 0) {\n return { data: new Int32Array(0), runs: 0, numTotalValues: 0 };\n }\n\n const runLengths: number[] = [];\n const encodedDeltas: number[] = [];\n\n // The decoder explicitly sets decodedValues[0] = 0 and uses previousValue = 0.\n // Therefore, we initialize our 'previous' tracker to 0 to calculate the first delta correctly.\n let previousValue = 0;\n\n // Variables to track the current run\n let currentDelta: number | null = null;\n let currentRunLength = 0;\n\n for (let i = 0; i < values.length; i++) {\n const value = values[i];\n const delta = value - previousValue;\n previousValue = value;\n\n if (currentDelta === null) {\n // First element initialization\n currentDelta = delta;\n currentRunLength = 1;\n } else if (delta === currentDelta) {\n // Continuation of the current run\n currentRunLength++;\n } else {\n // The run has broken (delta changed)\n // 1. Push the length of the previous run\n runLengths.push(currentRunLength);\n // 2. ZigZag encode the previous delta and push it\n encodedDeltas.push(encodeZigZagInt32Value(currentDelta));\n\n // Start the new run\n currentDelta = delta;\n currentRunLength = 1;\n }\n }\n\n // Flush the final run remaining after the loop finishes\n if (currentDelta !== null) {\n runLengths.push(currentRunLength);\n encodedDeltas.push(encodeZigZagInt32Value(currentDelta));\n }\n\n const numRuns = runLengths.length;\n\n // The decoder expects 'data' to be: [RunLength 1, RunLength 2... | Value 1, Value 2...]\n // Size is numRuns * 2 (First half lengths, second half values)\n const data = new Int32Array(numRuns * 2);\n\n for (let i = 0; i < numRuns; i++) {\n data[i] = runLengths[i]; // First half: Run Lengths\n data[i + numRuns] = encodedDeltas[i]; // Second half: ZigZag Encoded Deltas\n }\n\n return {\n data: data,\n runs: numRuns,\n numTotalValues: values.length,\n };\n}\n\nexport function encodeRleDeltaInt32(values: Int32Array | number[]): {\n data: Int32Array;\n runs: number;\n numTotalValues: number;\n} {\n if (values.length === 0) {\n return { data: new Int32Array(0), runs: 0, numTotalValues: 0 };\n }\n\n const runLengths: number[] = [];\n const deltas: number[] = [];\n\n // The decoder logic relies on: decodedValues[0] = 0; previousValue = 0;\n // So the encoder must assume the sequence starts relative to 0.\n let previousValue = 0;\n\n // Track the current run of deltas\n let currentDelta: number | null = null;\n let currentRunLength = 0;\n\n for (let i = 0; i < values.length; i++) {\n const value = values[i];\n const delta = value - previousValue;\n previousValue = value;\n\n if (currentDelta === null) {\n // Initialize first run\n currentDelta = delta;\n currentRunLength = 1;\n } else if (delta === currentDelta) {\n // Continue current run\n currentRunLength++;\n } else {\n // Delta changed: flush the previous run\n runLengths.push(currentRunLength);\n deltas.push(currentDelta);\n\n // Start new run\n currentDelta = delta;\n currentRunLength = 1;\n }\n }\n\n // Flush the final run\n if (currentDelta !== null) {\n runLengths.push(currentRunLength);\n deltas.push(currentDelta);\n }\n\n const numRuns = runLengths.length;\n\n // Pack into Int32Array: [ RunLength 1...N | Delta 1...N ]\n const data = new Int32Array(numRuns * 2);\n for (let i = 0; i < numRuns; i++) {\n data[i] = runLengths[i];\n data[i + numRuns] = deltas[i];\n }\n\n return {\n data: data,\n runs: numRuns,\n numTotalValues: values.length,\n };\n}\n\nexport function encodeDeltaRleInt32(input: Int32Array): {\n data: Int32Array;\n runs: number;\n numValues: number;\n} {\n if (input.length === 0) {\n return { data: new Int32Array(0), runs: 0, numValues: 0 };\n }\n\n const deltasAndEncoded: number[] = [];\n let previousValue: number = 0;\n\n // Step 1 & 2: Calculate Deltas and Zigzag Encode them\n for (let i = 0; i < input.length; i++) {\n const currentValue = input[i];\n const delta = currentValue - previousValue;\n const encodedDelta = encodeZigZagInt32Value(delta);\n deltasAndEncoded.push(encodedDelta);\n previousValue = currentValue;\n }\n // deltasAndEncoded now holds the intermediate stream of zigzagged deltas\n\n // Step 3: Apply RLE to the stream of zigzag-encoded deltas\n const runLengths: number[] = [];\n const runZigZagDeltas: number[] = [];\n\n let currentRunLength = 0;\n let currentRunValue = deltasAndEncoded[0];\n\n for (let i = 0; i < deltasAndEncoded.length; i++) {\n const nextValue = deltasAndEncoded[i];\n\n if (nextValue === currentRunValue) {\n currentRunLength++;\n } else {\n runLengths.push(currentRunLength);\n runZigZagDeltas.push(currentRunValue);\n currentRunValue = nextValue;\n currentRunLength = 1;\n }\n }\n // Record the final run\n runLengths.push(currentRunLength);\n runZigZagDeltas.push(currentRunValue);\n\n // Step 4: Combine lengths and values into the final structured output array\n const numRuns = runLengths.length;\n const encodedData = new Int32Array(numRuns * 2);\n\n // Populate the first half with lengths\n for (let i = 0; i < numRuns; i++) {\n encodedData[i] = runLengths[i];\n }\n\n // Populate the second half with zigzagged deltas\n // Int32Array.set() works with standard number arrays\n encodedData.set(runZigZagDeltas, numRuns);\n\n return {\n data: encodedData,\n runs: numRuns,\n numValues: input.length, // Total original values count\n };\n}\n\nexport function encodeDeltaRleInt64(input: BigInt64Array): {\n data: BigInt64Array;\n runs: number;\n numValues: number;\n} {\n if (input.length === 0) {\n return { data: new BigInt64Array(0), runs: 0, numValues: 0 };\n }\n\n const deltasAndEncoded: bigint[] = [];\n let previousValue: bigint = 0n;\n\n // Step 1 & 2: Calculate Deltas and Zigzag Encode them\n for (let i = 0; i < input.length; i++) {\n const currentValue = input[i];\n const delta = currentValue - previousValue;\n const encodedDelta = encodeZigZagInt64Value(delta);\n deltasAndEncoded.push(encodedDelta);\n previousValue = currentValue;\n }\n // deltasAndEncoded now holds the intermediate stream of zigzagged deltas\n\n // Step 3: Apply RLE to the stream of zigzag-encoded deltas\n const runLengths: number[] = [];\n const runZigZagDeltas: bigint[] = [];\n\n let currentRunLength = 0;\n let currentValue = deltasAndEncoded[0];\n\n for (let i = 0; i < deltasAndEncoded.length; i++) {\n const nextValue = deltasAndEncoded[i];\n\n if (nextValue === currentValue) {\n currentRunLength++;\n } else {\n runLengths.push(currentRunLength);\n runZigZagDeltas.push(currentValue);\n currentValue = nextValue;\n currentRunLength = 1;\n }\n }\n // Record the final run\n runLengths.push(currentRunLength);\n runZigZagDeltas.push(currentValue);\n\n // Step 4: Combine lengths and values into the final structured output array\n const numRuns = runLengths.length;\n const encodedData = new BigInt64Array(numRuns * 2);\n\n // Populate the first half with lengths (converting numbers back to BigInts for storage)\n for (let i = 0; i < numRuns; i++) {\n encodedData[i] = BigInt(runLengths[i]);\n }\n\n // Populate the second half with zigzagged deltas\n encodedData.set(runZigZagDeltas, numRuns);\n\n return {\n data: encodedData,\n runs: numRuns,\n numValues: input.length, // Total original values count\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"integerEncodingUtils.js","sourceRoot":"","sources":["../../src/encoding/integerEncodingUtils.ts"],"names":[],"mappings":"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","sourcesContent":["import IntWrapper from \"../decoding/intWrapper\";\nimport { createFastPforEncoderWorkspace, encodeFastPforInt32WithWorkspace } from \"./fastPforEncoder\";\nimport { encodeBigEndianInt32s } from \"./bigEndianEncode\";\n\nexport function encodeVarintInt32Value(value: number, dst: Uint8Array, offset: IntWrapper): void {\n let v = value;\n while (v > 0x7f) {\n dst[offset.get()] = (v & 0x7f) | 0x80;\n offset.increment();\n v >>>= 7;\n }\n dst[offset.get()] = v & 0x7f;\n offset.increment();\n}\n\nexport function encodeVarintInt32(values: Int32Array): Uint8Array {\n const buffer = new Uint8Array(values.length * 5);\n const offset = new IntWrapper(0);\n\n for (const value of values) {\n encodeVarintInt32Value(value, buffer, offset);\n }\n return buffer.slice(0, offset.get());\n}\n\nexport function encodeVarintInt64(values: BigUint64Array): Uint8Array {\n const buffer = new Uint8Array(values.length * 10);\n const offset = new IntWrapper(0);\n\n for (const value of values) {\n encodeVarintInt64Value(value, buffer, offset);\n }\n return buffer.slice(0, offset.get());\n}\n\nfunction encodeVarintInt64Value(value: bigint, dst: Uint8Array, offset: IntWrapper): void {\n let v = value;\n while (v > 0x7fn) {\n dst[offset.get()] = Number(v & 0x7fn) | 0x80;\n offset.increment();\n v >>= 7n;\n }\n dst[offset.get()] = Number(v & 0x7fn);\n offset.increment();\n}\n\nexport function encodeVarintFloat64(values: Float64Array): Uint8Array {\n // 1. Calculate the exact size required for the buffer\n let size = 0;\n for (let i = 0; i < values.length; i++) {\n let val = values[i];\n // Ensure we handle the value as a positive integer\n val = val < 0 ? 0 : Math.floor(val);\n\n // 0 always takes 1 byte\n if (val === 0) {\n size++;\n continue;\n }\n\n // Calculate bytes needed: ceil(log128(val + 1))\n while (val > 0) {\n size++;\n val = Math.floor(val / 128);\n }\n }\n\n const dst = new Uint8Array(size);\n const offset = new IntWrapper(0);\n\n for (let i = 0; i < values.length; i++) {\n encodeVarintFloat64Value(values[i], dst, offset);\n }\n\n return dst;\n}\n\n/**\n * Encodes a single number into the buffer at the given offset using Varint encoding.\n * Handles numbers up to 2^53 (MAX_SAFE_INTEGER) correctly.\n */\nfunction encodeVarintFloat64Value(val: number, buf: Uint8Array, offset: IntWrapper): void {\n // Ensure integer\n val = Math.floor(val);\n\n // Handle 0 explicitly or ensure loop runs once\n if (val === 0) {\n buf[offset.get()] = 0;\n offset.increment();\n return;\n }\n\n while (val >= 128) {\n // Write 7 bits of data | 0x80 (continuation bit)\n buf[offset.get()] = (val % 128) | 0x80;\n offset.increment();\n // Shift right by 7 bits\n val = Math.floor(val / 128);\n }\n\n // Write the last byte (no continuation bit)\n buf[offset.get()] = val;\n offset.increment();\n}\n\nexport function encodeFastPfor(values: Int32Array): Uint8Array {\n const encoderWorkspace = createFastPforEncoderWorkspace();\n const encodedWords = encodeFastPforInt32WithWorkspace(values, encoderWorkspace);\n return encodeBigEndianInt32s(encodedWords);\n}\n\nexport function encodeZigZagInt32Value(value: number): number {\n return (value << 1) ^ (value >> 31);\n}\n\nexport function encodeZigZagInt64Value(value: bigint): bigint {\n return (value << 1n) ^ (value >> 63n);\n}\n\nexport function encodeZigZagFloat64Value(n: number): number {\n return n >= 0 ? n * 2 : n * -2 - 1;\n}\nexport function encodeZigZagInt32(data: Int32Array): void {\n for (let i = 0; i < data.length; i++) {\n data[i] = encodeZigZagInt32Value(data[i]);\n }\n}\n\nexport function encodeZigZagInt64(data: BigInt64Array): BigUint64Array {\n const result = new BigUint64Array(data.length);\n for (let i = 0; i < data.length; i++) {\n result[i] = encodeZigZagInt64Value(data[i]);\n }\n return result;\n}\n\nexport function encodeZigZagFloat64(data: Float64Array): void {\n for (let i = 0; i < data.length; i++) {\n data[i] = encodeZigZagFloat64Value(data[i]);\n }\n}\n\nexport function encodeUnsignedRleInt32(input: Int32Array): { data: Int32Array; runs: number } {\n if (input.length === 0) {\n return { data: new Int32Array(0), runs: 0 };\n }\n\n const runLengths: number[] = [];\n const runValues: number[] = [];\n\n let currentRunLength = 0;\n let currentValue = input[0];\n\n for (let i = 0; i < input.length; i++) {\n const nextValue = input[i];\n\n if (nextValue === currentValue) {\n currentRunLength++;\n } else {\n // End of the current run, record it\n runLengths.push(currentRunLength);\n runValues.push(currentValue);\n\n // Start a new run\n currentValue = nextValue;\n currentRunLength = 1;\n }\n }\n\n // Record the final run after the loop finishes\n runLengths.push(currentRunLength);\n runValues.push(currentValue);\n\n // Combine lengths and values into the final structured output array\n const numRuns = runLengths.length;\n const encodedData = new Int32Array(numRuns * 2);\n\n // Populate the first half with lengths\n encodedData.set(runLengths, 0);\n\n // Populate the second half with values, offset by the total number of runs\n encodedData.set(runValues, numRuns);\n\n return { data: encodedData, runs: numRuns };\n}\n\nexport function encodeUnsignedRleInt64(input: BigInt64Array): { data: BigUint64Array; runs: number } {\n if (input.length === 0) {\n return { data: new BigUint64Array(0), runs: 0 };\n }\n\n const runLengths: number[] = [];\n const runValues: bigint[] = [];\n\n let currentRunLength = 0;\n let currentValue: bigint = input[0];\n\n for (let i = 0; i < input.length; i++) {\n const nextValue = input[i];\n\n if (nextValue === currentValue) {\n currentRunLength++;\n } else {\n // End of the current run, record it\n runLengths.push(currentRunLength);\n runValues.push(currentValue);\n\n // Start a new run\n currentValue = nextValue;\n currentRunLength = 1;\n }\n }\n\n // Record the final run after the loop finishes\n runLengths.push(currentRunLength);\n runValues.push(currentValue);\n\n // Combine lengths and values into the final structured output array (BigUint64Array)\n const numRuns = runLengths.length;\n const encodedData = new BigUint64Array(numRuns * 2);\n\n // Populate the first half with lengths, converting the run length numbers to bigint for storage in the BigUint64Array.\n for (let i = 0; i < numRuns; i++) {\n encodedData[i] = BigInt(runLengths[i]);\n }\n\n // Populate the second half with values, offset by the total number of runs\n encodedData.set(runValues, numRuns);\n\n return { data: encodedData, runs: numRuns };\n}\n\nexport function encodeUnsignedRleFloat64(input: Float64Array): { data: Float64Array; runs: number } {\n if (input.length === 0) {\n return { data: new Float64Array(0), runs: 0 };\n }\n\n const runLengths: number[] = [];\n const runValues: number[] = [];\n\n let currentRunLength = 0;\n let currentValue = input[0];\n\n for (let i = 0; i < input.length; i++) {\n const nextValue = input[i];\n\n if (nextValue === currentValue) {\n currentRunLength++;\n } else {\n // End of the current run, record it\n runLengths.push(currentRunLength);\n runValues.push(currentValue);\n\n // Start a new run\n currentValue = nextValue;\n currentRunLength = 1;\n }\n }\n\n // Record the final run after the loop finishes\n runLengths.push(currentRunLength);\n runValues.push(currentValue);\n\n // Combine lengths and values into the final structured output array (Float64Array)\n const numRuns = runLengths.length;\n // The final array is twice the size of the number of runs\n const encodedData = new Float64Array(numRuns * 2);\n\n // Populate the first half with lengths\n encodedData.set(runLengths, 0);\n\n // Populate the second half with values, offset by the total number of runs\n encodedData.set(runValues, numRuns);\n\n return { data: encodedData, runs: numRuns };\n}\n\nexport function encodeZigZagDeltaInt32(data: Int32Array): void {\n if (data.length === 0) {\n return;\n }\n\n let previousValue = data[0];\n data[0] = encodeZigZagInt32Value(previousValue);\n\n for (let i = 1; i < data.length; i++) {\n const currentValue = data[i];\n const delta = currentValue - previousValue;\n const encodedDelta = encodeZigZagInt32Value(delta);\n\n // Store the encoded delta back into the array\n data[i] = encodedDelta;\n\n // Update the previous value tracker for the next iteration's delta calculation\n previousValue = currentValue;\n }\n}\n\nexport function encodeZigZagDeltaInt64(data: BigInt64Array): BigUint64Array {\n if (data.length === 0) {\n return new BigUint64Array(0);\n }\n\n const encodedData = new BigUint64Array(data.length);\n let previousValue = data[0];\n encodedData[0] = encodeZigZagInt64Value(previousValue);\n\n for (let i = 1; i < data.length; i++) {\n const currentValue = data[i];\n const delta = currentValue - previousValue;\n const encodedDelta = encodeZigZagInt64Value(delta);\n\n // Store the encoded delta back into the array\n encodedData[i] = encodedDelta;\n\n // Update the previous value tracker for the next iteration's delta calculation\n previousValue = currentValue;\n }\n return encodedData;\n}\n\nexport function encodeZigZagDeltaFloat64(data: Float64Array): void {\n if (data.length === 0) {\n return;\n }\n\n let previousValue = data[0];\n data[0] = encodeZigZagFloat64Value(previousValue);\n\n for (let i = 1; i < data.length; i++) {\n const currentValue = data[i];\n const delta = currentValue - previousValue;\n const encodedDelta = encodeZigZagFloat64Value(delta);\n\n // Store the encoded delta back into the array\n data[i] = encodedDelta;\n\n // Update the previous value tracker for the next iteration's delta calculation\n previousValue = currentValue;\n }\n}\n\nexport function encodeZigZagRleInt32(input: Int32Array): {\n data: Int32Array;\n runs: number;\n numTotalValues: number;\n} {\n if (input.length === 0) {\n return { data: new Int32Array(0), runs: 0, numTotalValues: 0 };\n }\n\n const zigzagEncodedStream: number[] = [];\n\n // Step 1: Apply Zigzag Encoding to all values\n for (let i = 0; i < input.length; i++) {\n zigzagEncodedStream.push(encodeZigZagInt32Value(input[i]));\n }\n // zigzagEncodedStream now holds the intermediate stream of zigzag values\n\n // Step 2: Apply RLE to the stream of zigzag-encoded values\n const runLengths: number[] = [];\n const runZigZagValues: number[] = [];\n\n let currentRunLength = 0;\n let currentValue = zigzagEncodedStream[0];\n\n for (let i = 0; i < zigzagEncodedStream.length; i++) {\n const nextValue = zigzagEncodedStream[i];\n\n if (nextValue === currentValue) {\n currentRunLength++;\n } else {\n runLengths.push(currentRunLength);\n runZigZagValues.push(currentValue);\n currentValue = nextValue;\n currentRunLength = 1;\n }\n }\n // Record the final run\n runLengths.push(currentRunLength);\n runZigZagValues.push(currentValue);\n\n // Step 3: Combine lengths and values into the final structured output array\n const numRuns = runLengths.length;\n // The final array uses Int32Array for lengths AND values\n const encodedData = new Int32Array(numRuns * 2);\n\n // Populate the first half with lengths\n encodedData.set(runLengths, 0);\n\n // Populate the second half with zigzagged values\n encodedData.set(runZigZagValues, numRuns);\n\n return {\n data: encodedData,\n runs: numRuns,\n numTotalValues: input.length, // Total original values count\n };\n}\n\nexport function encodeZigZagRleInt64(input: BigInt64Array): {\n data: BigUint64Array;\n runs: number;\n numTotalValues: number;\n} {\n if (input.length === 0) {\n return { data: new BigUint64Array(0), runs: 0, numTotalValues: 0 };\n }\n\n const zigzagEncodedStream: bigint[] = [];\n\n // Step 1: Apply Zigzag Encoding to all values\n for (let i = 0; i < input.length; i++) {\n zigzagEncodedStream.push(encodeZigZagInt64Value(input[i]));\n }\n // zigzagEncodedStream now holds the intermediate stream of zigzag values\n\n // Step 2: Apply RLE to the stream of zigzag-encoded values\n const runLengths: number[] = [];\n const runZigZagValues: bigint[] = [];\n\n let currentRunLength = 0;\n let currentValue: bigint = zigzagEncodedStream[0];\n\n for (let i = 0; i < zigzagEncodedStream.length; i++) {\n const nextValue = zigzagEncodedStream[i];\n\n if (nextValue === currentValue) {\n currentRunLength++;\n } else {\n runLengths.push(currentRunLength);\n runZigZagValues.push(currentValue);\n currentValue = nextValue;\n currentRunLength = 1;\n }\n }\n // Record the final run\n runLengths.push(currentRunLength);\n runZigZagValues.push(currentValue);\n\n // Step 3: Combine lengths and values into the final structured output array\n const numRuns = runLengths.length;\n // The final array uses BigUint64Array for lengths AND values\n const encodedData = new BigUint64Array(numRuns * 2);\n\n // Populate the first half with lengths (converting numbers back to BigUint64Array format)\n for (let i = 0; i < numRuns; i++) {\n encodedData[i] = BigInt(runLengths[i]);\n }\n\n // Populate the second half with zigzagged values\n encodedData.set(runZigZagValues, numRuns);\n\n return {\n data: encodedData,\n runs: numRuns,\n numTotalValues: input.length, // Total original values count\n };\n}\n\nexport function encodeZigZagRleFloat64(input: Float64Array): {\n data: Float64Array;\n runs: number;\n numTotalValues: number;\n} {\n if (input.length === 0) {\n return { data: new Float64Array(0), runs: 0, numTotalValues: 0 };\n }\n\n const zigzagEncodedStream: number[] = [];\n\n // Step 1: Apply Float-based Zigzag Encoding to all values\n for (let i = 0; i < input.length; i++) {\n zigzagEncodedStream.push(encodeZigZagFloat64Value(input[i]));\n }\n // zigzagEncodedStream now holds the intermediate stream of zigzag values (as floats acting as integers)\n\n // Step 2: Apply RLE to the stream of zigzag-encoded values\n const runLengths: number[] = [];\n const runZigZagValues: number[] = [];\n\n let currentRunLength = 0;\n let currentValue = zigzagEncodedStream[0];\n\n for (let i = 0; i < zigzagEncodedStream.length; i++) {\n const nextValue = zigzagEncodedStream[i];\n\n if (nextValue === currentValue) {\n currentRunLength++;\n } else {\n runLengths.push(currentRunLength);\n runZigZagValues.push(currentValue);\n currentValue = nextValue;\n currentRunLength = 1;\n }\n }\n // Record the final run\n runLengths.push(currentRunLength);\n runZigZagValues.push(currentValue);\n\n // Step 3: Combine lengths and values into the final structured output array\n const numRuns = runLengths.length;\n // The final array uses Float64Array for lengths AND values\n const encodedData = new Float64Array(numRuns * 2);\n\n // Populate the first half with lengths\n encodedData.set(runLengths, 0);\n\n // Populate the second half with zigzagged values\n encodedData.set(runZigZagValues, numRuns);\n\n return {\n data: encodedData,\n runs: numRuns,\n numTotalValues: input.length, // Total original values count\n };\n}\n\n/**\n * This is not really a encode, but more of a decode method...\n */\nexport function encodeDeltaInt32(data: Int32Array): void {\n if (data.length === 0) {\n return;\n }\n for (let i = data.length - 1; i >= 1; i--) {\n data[i] = data[i] - data[i - 1];\n }\n}\n\nexport function encodeComponentwiseDeltaVec2(data: Int32Array): void {\n if (data.length < 2) return;\n\n // Reverse iterate to avoid overwriting data needed for delta computation\n for (let i = data.length - 2; i >= 2; i -= 2) {\n const deltaX = data[i] - data[i - 2];\n const deltaY = data[i + 1] - data[i - 1];\n data[i] = encodeZigZagInt32Value(deltaX);\n data[i + 1] = encodeZigZagInt32Value(deltaY);\n }\n\n // Encode first vertex last (after computing all deltas)\n data[0] = encodeZigZagInt32Value(data[0]);\n data[1] = encodeZigZagInt32Value(data[1]);\n}\n\nexport function encodeComponentwiseDeltaVec2Scaled(data: Int32Array, scale: number): void {\n if (data.length < 2) return;\n\n // First, inverse scale all values (tile space -> original space)\n for (let i = 0; i < data.length; i++) {\n data[i] = Math.round(data[i] / scale);\n }\n\n // Then apply componentwise delta encoding (same as non-scaled version)\n // Reverse iterate to avoid overwriting data needed for delta computation\n for (let i = data.length - 2; i >= 2; i -= 2) {\n const deltaX = data[i] - data[i - 2];\n const deltaY = data[i + 1] - data[i - 1];\n data[i] = encodeZigZagInt32Value(deltaX);\n data[i + 1] = encodeZigZagInt32Value(deltaY);\n }\n\n // Encode first vertex last (after computing all deltas)\n data[0] = encodeZigZagInt32Value(data[0]);\n data[1] = encodeZigZagInt32Value(data[1]);\n}\n\n// HM TODO:\n// zigZagDeltaOfDeltaDecoding\n\nexport function encodeZigZagRleDeltaInt32(values: Int32Array | number[]): {\n data: Int32Array;\n runs: number;\n numTotalValues: number;\n} {\n if (values.length === 0) {\n return { data: new Int32Array(0), runs: 0, numTotalValues: 0 };\n }\n\n const runLengths: number[] = [];\n const encodedDeltas: number[] = [];\n\n // The decoder explicitly sets decodedValues[0] = 0 and uses previousValue = 0.\n // Therefore, we initialize our 'previous' tracker to 0 to calculate the first delta correctly.\n let previousValue = 0;\n\n // Variables to track the current run\n let currentDelta: number | null = null;\n let currentRunLength = 0;\n\n for (let i = 0; i < values.length; i++) {\n const value = values[i];\n const delta = value - previousValue;\n previousValue = value;\n\n if (currentDelta === null) {\n // First element initialization\n currentDelta = delta;\n currentRunLength = 1;\n } else if (delta === currentDelta) {\n // Continuation of the current run\n currentRunLength++;\n } else {\n // The run has broken (delta changed)\n // 1. Push the length of the previous run\n runLengths.push(currentRunLength);\n // 2. ZigZag encode the previous delta and push it\n encodedDeltas.push(encodeZigZagInt32Value(currentDelta));\n\n // Start the new run\n currentDelta = delta;\n currentRunLength = 1;\n }\n }\n\n // Flush the final run remaining after the loop finishes\n if (currentDelta !== null) {\n runLengths.push(currentRunLength);\n encodedDeltas.push(encodeZigZagInt32Value(currentDelta));\n }\n\n const numRuns = runLengths.length;\n\n // The decoder expects 'data' to be: [RunLength 1, RunLength 2... | Value 1, Value 2...]\n // Size is numRuns * 2 (First half lengths, second half values)\n const data = new Int32Array(numRuns * 2);\n\n for (let i = 0; i < numRuns; i++) {\n data[i] = runLengths[i]; // First half: Run Lengths\n data[i + numRuns] = encodedDeltas[i]; // Second half: ZigZag Encoded Deltas\n }\n\n return {\n data: data,\n runs: numRuns,\n numTotalValues: values.length,\n };\n}\n\nexport function encodeRleDeltaInt32(values: Int32Array | number[]): {\n data: Int32Array;\n runs: number;\n numTotalValues: number;\n} {\n if (values.length === 0) {\n return { data: new Int32Array(0), runs: 0, numTotalValues: 0 };\n }\n\n const runLengths: number[] = [];\n const deltas: number[] = [];\n\n // The decoder logic relies on: decodedValues[0] = 0; previousValue = 0;\n // So the encoder must assume the sequence starts relative to 0.\n let previousValue = 0;\n\n // Track the current run of deltas\n let currentDelta: number | null = null;\n let currentRunLength = 0;\n\n for (let i = 0; i < values.length; i++) {\n const value = values[i];\n const delta = value - previousValue;\n previousValue = value;\n\n if (currentDelta === null) {\n // Initialize first run\n currentDelta = delta;\n currentRunLength = 1;\n } else if (delta === currentDelta) {\n // Continue current run\n currentRunLength++;\n } else {\n // Delta changed: flush the previous run\n runLengths.push(currentRunLength);\n deltas.push(currentDelta);\n\n // Start new run\n currentDelta = delta;\n currentRunLength = 1;\n }\n }\n\n // Flush the final run\n if (currentDelta !== null) {\n runLengths.push(currentRunLength);\n deltas.push(currentDelta);\n }\n\n const numRuns = runLengths.length;\n\n // Pack into Int32Array: [ RunLength 1...N | Delta 1...N ]\n const data = new Int32Array(numRuns * 2);\n for (let i = 0; i < numRuns; i++) {\n data[i] = runLengths[i];\n data[i + numRuns] = deltas[i];\n }\n\n return {\n data: data,\n runs: numRuns,\n numTotalValues: values.length,\n };\n}\n\nexport function encodeDeltaRleInt32(input: Int32Array): {\n data: Int32Array;\n runs: number;\n numValues: number;\n} {\n if (input.length === 0) {\n return { data: new Int32Array(0), runs: 0, numValues: 0 };\n }\n\n const deltasAndEncoded: number[] = [];\n let previousValue = 0;\n\n // Step 1 & 2: Calculate Deltas and Zigzag Encode them\n for (let i = 0; i < input.length; i++) {\n const currentValue = input[i];\n const delta = currentValue - previousValue;\n const encodedDelta = encodeZigZagInt32Value(delta);\n deltasAndEncoded.push(encodedDelta);\n previousValue = currentValue;\n }\n // deltasAndEncoded now holds the intermediate stream of zigzagged deltas\n\n // Step 3: Apply RLE to the stream of zigzag-encoded deltas\n const runLengths: number[] = [];\n const runZigZagDeltas: number[] = [];\n\n let currentRunLength = 0;\n let currentRunValue = deltasAndEncoded[0];\n\n for (let i = 0; i < deltasAndEncoded.length; i++) {\n const nextValue = deltasAndEncoded[i];\n\n if (nextValue === currentRunValue) {\n currentRunLength++;\n } else {\n runLengths.push(currentRunLength);\n runZigZagDeltas.push(currentRunValue);\n currentRunValue = nextValue;\n currentRunLength = 1;\n }\n }\n // Record the final run\n runLengths.push(currentRunLength);\n runZigZagDeltas.push(currentRunValue);\n\n // Step 4: Combine lengths and values into the final structured output array\n const numRuns = runLengths.length;\n const encodedData = new Int32Array(numRuns * 2);\n\n // Populate the first half with lengths\n for (let i = 0; i < numRuns; i++) {\n encodedData[i] = runLengths[i];\n }\n\n // Populate the second half with zigzagged deltas\n // Int32Array.set() works with standard number arrays\n encodedData.set(runZigZagDeltas, numRuns);\n\n return {\n data: encodedData,\n runs: numRuns,\n numValues: input.length, // Total original values count\n };\n}\n\nexport function encodeDeltaRleInt64(input: BigInt64Array): {\n data: BigUint64Array;\n runs: number;\n numValues: number;\n} {\n if (input.length === 0) {\n return { data: new BigUint64Array(0), runs: 0, numValues: 0 };\n }\n\n const deltasAndEncoded: bigint[] = [];\n let previousValue = 0n;\n\n // Step 1 & 2: Calculate Deltas and Zigzag Encode them\n for (let i = 0; i < input.length; i++) {\n const currentValue = input[i];\n const delta = currentValue - previousValue;\n const encodedDelta = encodeZigZagInt64Value(delta);\n deltasAndEncoded.push(encodedDelta);\n previousValue = currentValue;\n }\n // deltasAndEncoded now holds the intermediate stream of zigzagged deltas\n\n // Step 3: Apply RLE to the stream of zigzag-encoded deltas\n const runLengths: number[] = [];\n const runZigZagDeltas: bigint[] = [];\n\n let currentRunLength = 0;\n let currentValue = deltasAndEncoded[0];\n\n for (let i = 0; i < deltasAndEncoded.length; i++) {\n const nextValue = deltasAndEncoded[i];\n\n if (nextValue === currentValue) {\n currentRunLength++;\n } else {\n runLengths.push(currentRunLength);\n runZigZagDeltas.push(currentValue);\n currentValue = nextValue;\n currentRunLength = 1;\n }\n }\n // Record the final run\n runLengths.push(currentRunLength);\n runZigZagDeltas.push(currentValue);\n\n // Step 4: Combine lengths and values into the final structured output array\n const numRuns = runLengths.length;\n const encodedData = new BigUint64Array(numRuns * 2);\n\n // Populate the first half with lengths (converting numbers back to BigUint64Array for storage)\n for (let i = 0; i < numRuns; i++) {\n encodedData[i] = BigInt(runLengths[i]);\n }\n\n // Populate the second half with zigzagged deltas\n encodedData.set(runZigZagDeltas, numRuns);\n\n return {\n data: encodedData,\n runs: numRuns,\n numValues: input.length, // Total original values count\n };\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { StreamMetadata } from "../metadata/tile/streamMetadataDecoder";
|
|
2
2
|
import type BitVector from "../vector/flat/bitVector";
|
|
3
3
|
import type GeometryScaling from "../decoding/geometryScaling";
|
|
4
4
|
export declare function encodeIntStream(values: Int32Array, metadata: StreamMetadata, isSigned: boolean, bitVector?: BitVector, scalingData?: GeometryScaling): Uint8Array;
|
|
@@ -84,7 +84,7 @@ function encodeRleFloat64(data, isSigned) {
|
|
|
84
84
|
* Encodes BigInt64 values with zigzag encoding and varint compression
|
|
85
85
|
*/
|
|
86
86
|
export function encodeInt64SignedNone(values) {
|
|
87
|
-
const zigzagEncoded = new
|
|
87
|
+
const zigzagEncoded = new BigUint64Array(Array.from(values, (val) => encodeZigZagInt64Value(val)));
|
|
88
88
|
return encodeVarintInt64(zigzagEncoded);
|
|
89
89
|
}
|
|
90
90
|
/**
|
|
@@ -96,7 +96,7 @@ export function encodeInt64SignedDelta(values) {
|
|
|
96
96
|
for (let i = 1; i < values.length; i++) {
|
|
97
97
|
deltaEncoded[i] = values[i] - values[i - 1];
|
|
98
98
|
}
|
|
99
|
-
const zigzagEncoded = new
|
|
99
|
+
const zigzagEncoded = new BigUint64Array(deltaEncoded.length);
|
|
100
100
|
for (let i = 0; i < deltaEncoded.length; i++) {
|
|
101
101
|
zigzagEncoded[i] = encodeZigZagInt64Value(deltaEncoded[i]);
|
|
102
102
|
}
|
|
@@ -114,7 +114,7 @@ export function encodeInt64SignedRle(runs) {
|
|
|
114
114
|
values.push(encodeZigZagInt64Value(value));
|
|
115
115
|
}
|
|
116
116
|
const rleValues = [...runLengths, ...values];
|
|
117
|
-
return encodeVarintInt64(new
|
|
117
|
+
return encodeVarintInt64(new BigUint64Array(rleValues));
|
|
118
118
|
}
|
|
119
119
|
/**
|
|
120
120
|
* Encodes BigInt64 values with delta+RLE, zigzag, and varint
|
|
@@ -128,12 +128,12 @@ export function encodeInt64SignedDeltaRle(runs) {
|
|
|
128
128
|
values.push(encodeZigZagInt64Value(value));
|
|
129
129
|
}
|
|
130
130
|
const rleValues = [...runLengths, ...values];
|
|
131
|
-
return encodeVarintInt64(new
|
|
131
|
+
return encodeVarintInt64(new BigUint64Array(rleValues));
|
|
132
132
|
}
|
|
133
133
|
/**
|
|
134
134
|
* Encodes unsigned BigInt64 values with varint compression (no zigzag)
|
|
135
135
|
*/
|
|
136
136
|
export function encodeInt64UnsignedNone(values) {
|
|
137
|
-
return encodeVarintInt64(values);
|
|
137
|
+
return encodeVarintInt64(new BigUint64Array(values));
|
|
138
138
|
}
|
|
139
139
|
//# sourceMappingURL=integerStreamEncoder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integerStreamEncoder.js","sourceRoot":"","sources":["../../src/encoding/integerStreamEncoder.ts"],"names":[],"mappings":"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","sourcesContent":["import { type StreamMetadata } from \"../metadata/tile/streamMetadataDecoder\";\nimport { LogicalLevelTechnique } from \"../metadata/tile/logicalLevelTechnique\";\nimport {\n encodeDeltaRleInt32,\n encodeZigZagInt32,\n encodeZigZagRleInt32,\n encodeUnsignedRleInt32,\n encodeDeltaInt32,\n encodeUnsignedRleFloat64,\n encodeZigZagDeltaFloat64,\n encodeZigZagFloat64,\n encodeZigZagRleFloat64,\n encodeVarintInt32,\n encodeVarintInt64,\n encodeZigZagInt64Value,\n encodeFastPfor,\n encodeComponentwiseDeltaVec2,\n encodeComponentwiseDeltaVec2Scaled,\n} from \"./integerEncodingUtils\";\nimport type BitVector from \"../vector/flat/bitVector\";\nimport { packNullable } from \"./packNullableUtils\";\nimport { PhysicalLevelTechnique } from \"../metadata/tile/physicalLevelTechnique\";\nimport type GeometryScaling from \"../decoding/geometryScaling\";\n\nexport function encodeIntStream(\n values: Int32Array,\n metadata: StreamMetadata,\n isSigned: boolean,\n bitVector?: BitVector,\n scalingData?: GeometryScaling,\n): Uint8Array {\n const { data } = encodeInt32(values, metadata, isSigned, bitVector, scalingData);\n return encodePhysicalLevelTechnique(data, metadata);\n}\n\nfunction encodePhysicalLevelTechnique(data: Int32Array, streamMetadata: StreamMetadata): Uint8Array {\n const physicalLevelTechnique = streamMetadata.physicalLevelTechnique;\n if (physicalLevelTechnique === PhysicalLevelTechnique.FAST_PFOR) {\n return encodeFastPfor(data);\n }\n if (physicalLevelTechnique === PhysicalLevelTechnique.VARINT) {\n return encodeVarintInt32(data);\n }\n\n if (physicalLevelTechnique === PhysicalLevelTechnique.NONE) {\n const slice = data.subarray(0, streamMetadata.byteLength);\n return new Uint8Array(slice);\n }\n\n throw new Error(\"Specified physicalLevelTechnique is not supported (yet).\");\n}\n\nfunction encodeInt32(\n values: Int32Array,\n streamMetadata: StreamMetadata,\n isSigned: boolean,\n bitVector?: BitVector,\n scalingData?: GeometryScaling,\n): { data: Int32Array; runs?: number } {\n const data = bitVector ? packNullable(values, bitVector) : new Int32Array(values);\n switch (streamMetadata.logicalLevelTechnique1) {\n case LogicalLevelTechnique.DELTA:\n if (streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {\n const encoded = encodeDeltaRleInt32(data);\n return { data: encoded.data, runs: encoded.runs };\n }\n encodeDeltaInt32(data);\n encodeZigZagInt32(data);\n return { data };\n case LogicalLevelTechnique.RLE: {\n if (isSigned) {\n const encoded = encodeZigZagRleInt32(data);\n return { data: encoded.data, runs: encoded.runs };\n }\n const encoded = encodeUnsignedRleInt32(data);\n return { data: encoded.data, runs: encoded.runs };\n }\n case LogicalLevelTechnique.MORTON:\n encodeDeltaInt32(data);\n return { data };\n case LogicalLevelTechnique.COMPONENTWISE_DELTA:\n if (scalingData && !bitVector) {\n encodeComponentwiseDeltaVec2Scaled(data, scalingData.scale);\n return { data };\n }\n encodeComponentwiseDeltaVec2(data);\n return { data };\n case LogicalLevelTechnique.NONE:\n if (isSigned) {\n encodeZigZagInt32(data);\n }\n return { data };\n default:\n throw new Error(\n `The specified Logical level technique is not supported: ${streamMetadata.logicalLevelTechnique1}`,\n );\n }\n}\n\nexport function encodeFloat64(values: Float64Array, streamMetadata: StreamMetadata, isSigned: boolean): Float64Array {\n switch (streamMetadata.logicalLevelTechnique1) {\n case LogicalLevelTechnique.DELTA:\n encodeZigZagDeltaFloat64(values);\n if (streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {\n values = encodeUnsignedRleFloat64(values).data;\n }\n return values;\n case LogicalLevelTechnique.RLE:\n return encodeRleFloat64(values, isSigned);\n case LogicalLevelTechnique.NONE:\n if (isSigned) {\n encodeZigZagFloat64(values);\n }\n return values;\n default:\n throw new Error(\n `The specified Logical level technique is not supported: ${streamMetadata.logicalLevelTechnique1}`,\n );\n }\n}\n\nfunction encodeRleFloat64(data: Float64Array, isSigned: boolean): Float64Array {\n return isSigned ? encodeZigZagRleFloat64(data).data : encodeUnsignedRleFloat64(data).data;\n}\n\n/**\n * Encodes BigInt64 values with zigzag encoding and varint compression\n */\nexport function encodeInt64SignedNone(values: BigInt64Array): Uint8Array {\n const zigzagEncoded = new BigInt64Array(Array.from(values, (val) => encodeZigZagInt64Value(val)));\n return encodeVarintInt64(zigzagEncoded);\n}\n\n/**\n * Encodes BigInt64 values with delta encoding, zigzag, and varint\n */\nexport function encodeInt64SignedDelta(values: BigInt64Array): Uint8Array {\n const deltaEncoded = new BigInt64Array(values.length);\n deltaEncoded[0] = values[0];\n for (let i = 1; i < values.length; i++) {\n deltaEncoded[i] = values[i] - values[i - 1];\n }\n const zigzagEncoded = new BigInt64Array(deltaEncoded.length);\n for (let i = 0; i < deltaEncoded.length; i++) {\n zigzagEncoded[i] = encodeZigZagInt64Value(deltaEncoded[i]);\n }\n return encodeVarintInt64(zigzagEncoded);\n}\n\n/**\n * Encodes BigInt64 values with RLE, zigzag, and varint\n * @param runs - Array of [runLength, value] pairs\n */\nexport function encodeInt64SignedRle(runs: Array<[number, bigint]>): Uint8Array {\n const runLengths: bigint[] = [];\n const values: bigint[] = [];\n\n for (const [runLength, value] of runs) {\n runLengths.push(BigInt(runLength));\n values.push(encodeZigZagInt64Value(value));\n }\n\n const rleValues = [...runLengths, ...values];\n return encodeVarintInt64(new BigInt64Array(rleValues));\n}\n\n/**\n * Encodes BigInt64 values with delta+RLE, zigzag, and varint\n * @param runs - Array of [runLength, deltaValue] pairs representing RLE-encoded delta values\n */\nexport function encodeInt64SignedDeltaRle(runs: Array<[number, bigint]>): Uint8Array {\n const runLengths: bigint[] = [];\n const values: bigint[] = [];\n\n for (const [runLength, value] of runs) {\n runLengths.push(BigInt(runLength));\n values.push(encodeZigZagInt64Value(value));\n }\n\n const rleValues = [...runLengths, ...values];\n return encodeVarintInt64(new BigInt64Array(rleValues));\n}\n\n/**\n * Encodes unsigned BigInt64 values with varint compression (no zigzag)\n */\nexport function encodeInt64UnsignedNone(values: BigInt64Array): Uint8Array {\n return encodeVarintInt64(values);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"integerStreamEncoder.js","sourceRoot":"","sources":["../../src/encoding/integerStreamEncoder.ts"],"names":[],"mappings":"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","sourcesContent":["import type { StreamMetadata } from \"../metadata/tile/streamMetadataDecoder\";\nimport { LogicalLevelTechnique } from \"../metadata/tile/logicalLevelTechnique\";\nimport {\n encodeDeltaRleInt32,\n encodeZigZagInt32,\n encodeZigZagRleInt32,\n encodeUnsignedRleInt32,\n encodeDeltaInt32,\n encodeUnsignedRleFloat64,\n encodeZigZagDeltaFloat64,\n encodeZigZagFloat64,\n encodeZigZagRleFloat64,\n encodeVarintInt32,\n encodeVarintInt64,\n encodeZigZagInt64Value,\n encodeFastPfor,\n encodeComponentwiseDeltaVec2,\n encodeComponentwiseDeltaVec2Scaled,\n} from \"./integerEncodingUtils\";\nimport type BitVector from \"../vector/flat/bitVector\";\nimport { packNullable } from \"./packNullableUtils\";\nimport { PhysicalLevelTechnique } from \"../metadata/tile/physicalLevelTechnique\";\nimport type GeometryScaling from \"../decoding/geometryScaling\";\n\nexport function encodeIntStream(\n values: Int32Array,\n metadata: StreamMetadata,\n isSigned: boolean,\n bitVector?: BitVector,\n scalingData?: GeometryScaling,\n): Uint8Array {\n const { data } = encodeInt32(values, metadata, isSigned, bitVector, scalingData);\n return encodePhysicalLevelTechnique(data, metadata);\n}\n\nfunction encodePhysicalLevelTechnique(data: Int32Array, streamMetadata: StreamMetadata): Uint8Array {\n const physicalLevelTechnique = streamMetadata.physicalLevelTechnique;\n if (physicalLevelTechnique === PhysicalLevelTechnique.FAST_PFOR) {\n return encodeFastPfor(data);\n }\n if (physicalLevelTechnique === PhysicalLevelTechnique.VARINT) {\n return encodeVarintInt32(data);\n }\n\n if (physicalLevelTechnique === PhysicalLevelTechnique.NONE) {\n const slice = data.subarray(0, streamMetadata.byteLength);\n return new Uint8Array(slice);\n }\n\n throw new Error(\"Specified physicalLevelTechnique is not supported (yet).\");\n}\n\nfunction encodeInt32(\n values: Int32Array,\n streamMetadata: StreamMetadata,\n isSigned: boolean,\n bitVector?: BitVector,\n scalingData?: GeometryScaling,\n): { data: Int32Array; runs?: number } {\n const data = bitVector ? packNullable(values, bitVector) : new Int32Array(values);\n switch (streamMetadata.logicalLevelTechnique1) {\n case LogicalLevelTechnique.DELTA:\n if (streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {\n const encoded = encodeDeltaRleInt32(data);\n return { data: encoded.data, runs: encoded.runs };\n }\n encodeDeltaInt32(data);\n encodeZigZagInt32(data);\n return { data };\n case LogicalLevelTechnique.RLE: {\n if (isSigned) {\n const encoded = encodeZigZagRleInt32(data);\n return { data: encoded.data, runs: encoded.runs };\n }\n const encoded = encodeUnsignedRleInt32(data);\n return { data: encoded.data, runs: encoded.runs };\n }\n case LogicalLevelTechnique.MORTON:\n encodeDeltaInt32(data);\n return { data };\n case LogicalLevelTechnique.COMPONENTWISE_DELTA:\n if (scalingData && !bitVector) {\n encodeComponentwiseDeltaVec2Scaled(data, scalingData.scale);\n return { data };\n }\n encodeComponentwiseDeltaVec2(data);\n return { data };\n case LogicalLevelTechnique.NONE:\n if (isSigned) {\n encodeZigZagInt32(data);\n }\n return { data };\n default:\n throw new Error(\n `The specified Logical level technique is not supported: ${streamMetadata.logicalLevelTechnique1}`,\n );\n }\n}\n\nexport function encodeFloat64(values: Float64Array, streamMetadata: StreamMetadata, isSigned: boolean): Float64Array {\n switch (streamMetadata.logicalLevelTechnique1) {\n case LogicalLevelTechnique.DELTA:\n encodeZigZagDeltaFloat64(values);\n if (streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {\n values = encodeUnsignedRleFloat64(values).data;\n }\n return values;\n case LogicalLevelTechnique.RLE:\n return encodeRleFloat64(values, isSigned);\n case LogicalLevelTechnique.NONE:\n if (isSigned) {\n encodeZigZagFloat64(values);\n }\n return values;\n default:\n throw new Error(\n `The specified Logical level technique is not supported: ${streamMetadata.logicalLevelTechnique1}`,\n );\n }\n}\n\nfunction encodeRleFloat64(data: Float64Array, isSigned: boolean): Float64Array {\n return isSigned ? encodeZigZagRleFloat64(data).data : encodeUnsignedRleFloat64(data).data;\n}\n\n/**\n * Encodes BigInt64 values with zigzag encoding and varint compression\n */\nexport function encodeInt64SignedNone(values: BigInt64Array): Uint8Array {\n const zigzagEncoded = new BigUint64Array(Array.from(values, (val) => encodeZigZagInt64Value(val)));\n return encodeVarintInt64(zigzagEncoded);\n}\n\n/**\n * Encodes BigInt64 values with delta encoding, zigzag, and varint\n */\nexport function encodeInt64SignedDelta(values: BigInt64Array): Uint8Array {\n const deltaEncoded = new BigInt64Array(values.length);\n deltaEncoded[0] = values[0];\n for (let i = 1; i < values.length; i++) {\n deltaEncoded[i] = values[i] - values[i - 1];\n }\n const zigzagEncoded = new BigUint64Array(deltaEncoded.length);\n for (let i = 0; i < deltaEncoded.length; i++) {\n zigzagEncoded[i] = encodeZigZagInt64Value(deltaEncoded[i]);\n }\n return encodeVarintInt64(zigzagEncoded);\n}\n\n/**\n * Encodes BigInt64 values with RLE, zigzag, and varint\n * @param runs - Array of [runLength, value] pairs\n */\nexport function encodeInt64SignedRle(runs: Array<[number, bigint]>): Uint8Array {\n const runLengths: bigint[] = [];\n const values: bigint[] = [];\n\n for (const [runLength, value] of runs) {\n runLengths.push(BigInt(runLength));\n values.push(encodeZigZagInt64Value(value));\n }\n\n const rleValues = [...runLengths, ...values];\n return encodeVarintInt64(new BigUint64Array(rleValues));\n}\n\n/**\n * Encodes BigInt64 values with delta+RLE, zigzag, and varint\n * @param runs - Array of [runLength, deltaValue] pairs representing RLE-encoded delta values\n */\nexport function encodeInt64SignedDeltaRle(runs: Array<[number, bigint]>): Uint8Array {\n const runLengths: bigint[] = [];\n const values: bigint[] = [];\n\n for (const [runLength, value] of runs) {\n runLengths.push(BigInt(runLength));\n values.push(encodeZigZagInt64Value(value));\n }\n\n const rleValues = [...runLengths, ...values];\n return encodeVarintInt64(new BigUint64Array(rleValues));\n}\n\n/**\n * Encodes unsigned BigInt64 values with varint compression (no zigzag)\n */\nexport function encodeInt64UnsignedNone(values: BigInt64Array): Uint8Array {\n return encodeVarintInt64(new BigUint64Array(values));\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { TypedArrayInstance } from "../decoding/unpackNullableUtils";
|
|
2
2
|
import BitVector from "../vector/flat/bitVector";
|
|
3
3
|
export declare function packNullable<T extends TypedArrayInstance>(data: T, presentBits: BitVector | null): T;
|
|
4
4
|
export declare function packNullableBoolean(data: Uint8Array, dataSize: number, presentBits: BitVector | null): Uint8Array;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packNullableUtils.js","sourceRoot":"","sources":["../../src/encoding/packNullableUtils.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,0BAA0B,CAAC;AAEjD,MAAM,UAAU,YAAY,CAA+B,IAAO,EAAE,WAA6B;IAC7F,0EAA0E;IAC1E,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;IAEzB,8DAA8D;IAC9D,mEAAmE;IACnE,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,WAAW,EAAE,CAAC;QAClB,CAAC;IACL,CAAC;IAED,+DAA+D;IAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,WAAoC,CAAC;IAC9D,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,WAAW,CAAM,CAAC;IAEjD,0DAA0D;IAC1D,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAgB,EAAE,QAAgB,EAAE,WAA6B;IACjG,0EAA0E;IAC1E,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAErD,8DAA8D;IAC9D,uDAAuD;IACvD,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,WAAW,EAAE,CAAC;QAClB,CAAC;IACL,CAAC;IAED,sEAAsE;IACtE,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC;IAChE,MAAM,eAAe,GAAG,IAAI,SAAS,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAEjE,4DAA4D;IAC5D,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACpC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC;IACL,CAAC;IAED,OAAO,eAAe,CAAC,SAAS,EAAE,CAAC;AACvC,CAAC","sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"packNullableUtils.js","sourceRoot":"","sources":["../../src/encoding/packNullableUtils.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,0BAA0B,CAAC;AAEjD,MAAM,UAAU,YAAY,CAA+B,IAAO,EAAE,WAA6B;IAC7F,0EAA0E;IAC1E,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;IAEzB,8DAA8D;IAC9D,mEAAmE;IACnE,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,WAAW,EAAE,CAAC;QAClB,CAAC;IACL,CAAC;IAED,+DAA+D;IAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,WAAoC,CAAC;IAC9D,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,WAAW,CAAM,CAAC;IAEjD,0DAA0D;IAC1D,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAgB,EAAE,QAAgB,EAAE,WAA6B;IACjG,0EAA0E;IAC1E,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAErD,8DAA8D;IAC9D,uDAAuD;IACvD,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,WAAW,EAAE,CAAC;QAClB,CAAC;IACL,CAAC;IAED,sEAAsE;IACtE,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC;IAChE,MAAM,eAAe,GAAG,IAAI,SAAS,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAEjE,4DAA4D;IAC5D,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACpC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC;IACL,CAAC;IAED,OAAO,eAAe,CAAC,SAAS,EAAE,CAAC;AACvC,CAAC","sourcesContent":["import type { TypedArrayConstructor, TypedArrayInstance } from \"../decoding/unpackNullableUtils\";\nimport BitVector from \"../vector/flat/bitVector\";\n\nexport function packNullable<T extends TypedArrayInstance>(data: T, presentBits: BitVector | null): T {\n // Non-nullable case: if no mask is provided, the data is already \"packed\"\n if (!presentBits) {\n return data;\n }\n\n const size = data.length;\n\n // 1. First pass: Count how many elements are actually present\n // This is required to allocate the correct size for the TypedArray\n let packedCount = 0;\n for (let i = 0; i < size; i++) {\n if (presentBits.get(i)) {\n packedCount++;\n }\n }\n\n // 2. Create a new array of the same type with the reduced size\n const constructor = data.constructor as TypedArrayConstructor;\n const result = new constructor(packedCount) as T;\n\n // 3. Second pass: Fill the result array with valid values\n let counter = 0;\n for (let i = 0; i < size; i++) {\n if (presentBits.get(i)) {\n result[counter++] = data[i];\n }\n }\n\n return result;\n}\n\nexport function packNullableBoolean(data: Uint8Array, dataSize: number, presentBits: BitVector | null): Uint8Array {\n // Non-nullable case: if no mask is provided, the data is already \"packed\"\n if (!presentBits) {\n return data;\n }\n\n const inputBitVector = new BitVector(data, dataSize);\n\n // 1. Calculate how many bits are actually marked as 'present'\n // This determines the size of the final packed buffer.\n let packedCount = 0;\n for (let i = 0; i < dataSize; i++) {\n if (presentBits.get(i)) {\n packedCount++;\n }\n }\n\n // 2. Initialize the result BitVector with the correct compressed size\n const resultBuffer = new Uint8Array(Math.ceil(packedCount / 8));\n const resultBitVector = new BitVector(resultBuffer, packedCount);\n\n // 3. Fill the result: only copy bits where the mask is true\n let targetIndex = 0;\n for (let i = 0; i < dataSize; i++) {\n if (presentBits.get(i)) {\n const value = inputBitVector.get(i);\n resultBitVector.set(targetIndex++, value);\n }\n }\n\n return resultBitVector.getBuffer();\n}\n"]}
|
|
@@ -63,7 +63,7 @@ export declare function encodeFloatNullableColumn(values: (number | null)[]): Ui
|
|
|
63
63
|
/**
|
|
64
64
|
* Encodes DOUBLE values
|
|
65
65
|
*/
|
|
66
|
-
export declare function encodeDoubleColumn(values:
|
|
66
|
+
export declare function encodeDoubleColumn(values: Float64Array): Uint8Array;
|
|
67
67
|
/**
|
|
68
68
|
* Encodes nullable DOUBLE values
|
|
69
69
|
*/
|
|
@@ -100,7 +100,7 @@ export function encodeUint32Column(values) {
|
|
|
100
100
|
* Encodes INT_64 values with NONE encoding
|
|
101
101
|
*/
|
|
102
102
|
export function encodeInt64NoneColumn(values) {
|
|
103
|
-
const zigzagEncoded = new
|
|
103
|
+
const zigzagEncoded = new BigUint64Array(Array.from(values, (val) => encodeZigZagInt64Value(val)));
|
|
104
104
|
const encodedData = encodeVarintInt64(zigzagEncoded);
|
|
105
105
|
const streamMetadata = createStreamMetadata(LogicalLevelTechnique.NONE, LogicalLevelTechnique.NONE, values.length);
|
|
106
106
|
return buildEncodedStream(streamMetadata, encodedData);
|
|
@@ -114,7 +114,7 @@ export function encodeInt64DeltaColumn(values) {
|
|
|
114
114
|
for (let i = 1; i < values.length; i++) {
|
|
115
115
|
deltaEncoded[i] = values[i] - values[i - 1];
|
|
116
116
|
}
|
|
117
|
-
const zigzagEncoded = new
|
|
117
|
+
const zigzagEncoded = new BigUint64Array(deltaEncoded.length);
|
|
118
118
|
for (let i = 0; i < deltaEncoded.length; i++) {
|
|
119
119
|
zigzagEncoded[i] = encodeZigZagInt64Value(deltaEncoded[i]);
|
|
120
120
|
}
|
|
@@ -135,7 +135,7 @@ export function encodeInt64RleColumn(runs) {
|
|
|
135
135
|
totalValues += runLength;
|
|
136
136
|
}
|
|
137
137
|
const rleValues = [...runLengths, ...values];
|
|
138
|
-
const encodedData = encodeVarintInt64(new
|
|
138
|
+
const encodedData = encodeVarintInt64(new BigUint64Array(rleValues));
|
|
139
139
|
const streamMetadata = createRleMetadata(LogicalLevelTechnique.RLE, LogicalLevelTechnique.NONE, runs.length, totalValues);
|
|
140
140
|
return buildEncodedStream(streamMetadata, encodedData);
|
|
141
141
|
}
|
|
@@ -152,7 +152,7 @@ export function encodeInt64DeltaRleColumn(runs) {
|
|
|
152
152
|
totalValues += runLength;
|
|
153
153
|
}
|
|
154
154
|
const rleValues = [...runLengths, ...values];
|
|
155
|
-
const encodedData = encodeVarintInt64(new
|
|
155
|
+
const encodedData = encodeVarintInt64(new BigUint64Array(rleValues));
|
|
156
156
|
const streamMetadata = createRleMetadata(LogicalLevelTechnique.DELTA, LogicalLevelTechnique.RLE, runs.length, totalValues);
|
|
157
157
|
return buildEncodedStream(streamMetadata, encodedData);
|
|
158
158
|
}
|
|
@@ -161,7 +161,7 @@ export function encodeInt64DeltaRleColumn(runs) {
|
|
|
161
161
|
*/
|
|
162
162
|
export function encodeInt64NullableColumn(values) {
|
|
163
163
|
const nonNullValues = values.filter((v) => v !== null);
|
|
164
|
-
const zigzagEncoded = new
|
|
164
|
+
const zigzagEncoded = new BigUint64Array(Array.from(nonNullValues, (val) => encodeZigZagInt64Value(val)));
|
|
165
165
|
const encodedData = encodeVarintInt64(zigzagEncoded);
|
|
166
166
|
const dataStreamMetadata = createStreamMetadata(LogicalLevelTechnique.NONE, LogicalLevelTechnique.NONE, nonNullValues.length);
|
|
167
167
|
const dataStream = buildEncodedStream(dataStreamMetadata, encodedData);
|
|
@@ -175,7 +175,7 @@ export function encodeInt64NullableColumn(values) {
|
|
|
175
175
|
* Encodes UINT_64 values (no zigzag encoding)
|
|
176
176
|
*/
|
|
177
177
|
export function encodeUint64Column(values) {
|
|
178
|
-
const encodedData = encodeVarintInt64(
|
|
178
|
+
const encodedData = encodeVarintInt64(values);
|
|
179
179
|
const streamMetadata = createStreamMetadata(LogicalLevelTechnique.NONE, LogicalLevelTechnique.NONE, values.length);
|
|
180
180
|
return buildEncodedStream(streamMetadata, encodedData);
|
|
181
181
|
}
|
|
@@ -184,7 +184,7 @@ export function encodeUint64Column(values) {
|
|
|
184
184
|
*/
|
|
185
185
|
export function encodeUint64NullableColumn(values) {
|
|
186
186
|
const nonNullValues = values.filter((v) => v !== null);
|
|
187
|
-
const encodedData = encodeVarintInt64(new
|
|
187
|
+
const encodedData = encodeVarintInt64(new BigUint64Array(nonNullValues));
|
|
188
188
|
const dataStreamMetadata = createStreamMetadata(LogicalLevelTechnique.NONE, LogicalLevelTechnique.NONE, nonNullValues.length);
|
|
189
189
|
const dataStream = buildEncodedStream(dataStreamMetadata, encodedData);
|
|
190
190
|
const nullabilityValues = values.map((v) => v !== null);
|
|
@@ -228,7 +228,7 @@ export function encodeDoubleColumn(values) {
|
|
|
228
228
|
*/
|
|
229
229
|
export function encodeDoubleNullableColumn(values) {
|
|
230
230
|
const nonNullValues = values.filter((v) => v !== null);
|
|
231
|
-
const encodedData = encodeDoubleLE(new
|
|
231
|
+
const encodedData = encodeDoubleLE(new Float64Array(nonNullValues));
|
|
232
232
|
const dataStreamMetadata = createStreamMetadata(LogicalLevelTechnique.NONE, LogicalLevelTechnique.NONE, nonNullValues.length);
|
|
233
233
|
const dataStream = buildEncodedStream(dataStreamMetadata, encodedData);
|
|
234
234
|
const nullabilityValues = values.map((v) => v !== null);
|