@maplibre/mlt 1.1.7 → 1.1.9

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.
Files changed (137) hide show
  1. package/dist/decoding/bigEndianDecode.d.ts +1 -1
  2. package/dist/decoding/bigEndianDecode.js.map +1 -1
  3. package/dist/decoding/decodingTestUtils.d.ts +3 -2
  4. package/dist/decoding/decodingTestUtils.js +21 -22
  5. package/dist/decoding/decodingTestUtils.js.map +1 -1
  6. package/dist/decoding/fastPforDecoder.d.ts +5 -6
  7. package/dist/decoding/fastPforDecoder.js +6 -6
  8. package/dist/decoding/fastPforDecoder.js.map +1 -1
  9. package/dist/decoding/fastPforShared.d.ts +0 -2
  10. package/dist/decoding/fastPforShared.js.map +1 -1
  11. package/dist/decoding/fastPforUnpack.d.ts +23 -23
  12. package/dist/decoding/fastPforUnpack.js.map +1 -1
  13. package/dist/decoding/geometryDecoder.js +41 -41
  14. package/dist/decoding/geometryDecoder.js.map +1 -1
  15. package/dist/decoding/intWrapper.js +0 -1
  16. package/dist/decoding/intWrapper.js.map +1 -1
  17. package/dist/decoding/integerDecodingUtils.d.ts +21 -17
  18. package/dist/decoding/integerDecodingUtils.js +71 -30
  19. package/dist/decoding/integerDecodingUtils.js.map +1 -1
  20. package/dist/decoding/integerStreamDecoder.d.ts +14 -10
  21. package/dist/decoding/integerStreamDecoder.js +150 -63
  22. package/dist/decoding/integerStreamDecoder.js.map +1 -1
  23. package/dist/decoding/propertyDecoder.js +33 -27
  24. package/dist/decoding/propertyDecoder.js.map +1 -1
  25. package/dist/decoding/stringDecoder.d.ts +1 -1
  26. package/dist/decoding/stringDecoder.js +32 -30
  27. package/dist/decoding/stringDecoder.js.map +1 -1
  28. package/dist/decoding/unpackNullableUtils.d.ts +2 -2
  29. package/dist/decoding/unpackNullableUtils.js.map +1 -1
  30. package/dist/encoding/bigEndianEncode.d.ts +1 -1
  31. package/dist/encoding/bigEndianEncode.js.map +1 -1
  32. package/dist/encoding/constGeometryVectorEncoder.js +9 -9
  33. package/dist/encoding/constGeometryVectorEncoder.js.map +1 -1
  34. package/dist/encoding/encodingUtils.d.ts +1 -1
  35. package/dist/encoding/encodingUtils.js +1 -1
  36. package/dist/encoding/encodingUtils.js.map +1 -1
  37. package/dist/encoding/fastPforEncoder.d.ts +4 -5
  38. package/dist/encoding/fastPforEncoder.js +4 -4
  39. package/dist/encoding/fastPforEncoder.js.map +1 -1
  40. package/dist/encoding/integerEncodingUtils.d.ts +14 -14
  41. package/dist/encoding/integerEncodingUtils.js +39 -31
  42. package/dist/encoding/integerEncodingUtils.js.map +1 -1
  43. package/dist/encoding/integerStreamEncoder.d.ts +2 -1
  44. package/dist/encoding/integerStreamEncoder.js +52 -18
  45. package/dist/encoding/integerStreamEncoder.js.map +1 -1
  46. package/dist/encoding/propertyEncoder.js +9 -16
  47. package/dist/encoding/propertyEncoder.js.map +1 -1
  48. package/dist/encoding/stringEncoder.js +9 -42
  49. package/dist/encoding/stringEncoder.js.map +1 -1
  50. package/dist/metadata/tile/logicalStreamType.d.ts +5 -9
  51. package/dist/metadata/tile/logicalStreamType.js +1 -19
  52. package/dist/metadata/tile/logicalStreamType.js.map +1 -1
  53. package/dist/metadata/tile/physicalLevelTechnique.d.ts +1 -5
  54. package/dist/metadata/tile/physicalLevelTechnique.js +0 -4
  55. package/dist/metadata/tile/physicalLevelTechnique.js.map +1 -1
  56. package/dist/metadata/tile/streamMetadataDecoder.d.ts +1 -1
  57. package/dist/metadata/tile/streamMetadataDecoder.js +9 -4
  58. package/dist/metadata/tile/streamMetadataDecoder.js.map +1 -1
  59. package/dist/mltDecoder.js +25 -29
  60. package/dist/mltDecoder.js.map +1 -1
  61. package/dist/vector/constant/{intConstVector.d.ts → int32ConstVector.d.ts} +2 -2
  62. package/dist/vector/constant/int32ConstVector.js +10 -0
  63. package/dist/vector/constant/int32ConstVector.js.map +1 -0
  64. package/dist/vector/constant/{longConstVector.d.ts → int64ConstVector.d.ts} +2 -2
  65. package/dist/vector/constant/int64ConstVector.js +10 -0
  66. package/dist/vector/constant/int64ConstVector.js.map +1 -0
  67. package/dist/vector/dictionary/stringDictionaryVector.d.ts +1 -1
  68. package/dist/vector/dictionary/stringDictionaryVector.js +0 -1
  69. package/dist/vector/dictionary/stringDictionaryVector.js.map +1 -1
  70. package/dist/vector/featureTable.d.ts +4 -4
  71. package/dist/vector/featureTable.js +9 -14
  72. package/dist/vector/featureTable.js.map +1 -1
  73. package/dist/vector/filter/flatSelectionVector.js +0 -2
  74. package/dist/vector/filter/flatSelectionVector.js.map +1 -1
  75. package/dist/vector/filter/sequenceSelectionVector.js +1 -5
  76. package/dist/vector/filter/sequenceSelectionVector.js.map +1 -1
  77. package/dist/vector/flat/bitVector.js +0 -2
  78. package/dist/vector/flat/bitVector.js.map +1 -1
  79. package/dist/vector/flat/booleanFlatVector.js +0 -1
  80. package/dist/vector/flat/booleanFlatVector.js.map +1 -1
  81. package/dist/vector/flat/{intFlatVector.d.ts → int32FlatVector.d.ts} +1 -1
  82. package/dist/vector/flat/{intFlatVector.js → int32FlatVector.js} +2 -2
  83. package/dist/vector/flat/int32FlatVector.js.map +1 -0
  84. package/dist/vector/flat/{longFlatVector.d.ts → int64FlatVector.d.ts} +1 -1
  85. package/dist/vector/flat/{longFlatVector.js → int64FlatVector.js} +2 -2
  86. package/dist/vector/flat/int64FlatVector.js.map +1 -0
  87. package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.d.ts +1 -1
  88. package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.js +1 -7
  89. package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.js.map +1 -1
  90. package/dist/vector/geometry/constGeometryVector.d.ts +3 -3
  91. package/dist/vector/geometry/constGeometryVector.js +0 -2
  92. package/dist/vector/geometry/constGeometryVector.js.map +1 -1
  93. package/dist/vector/geometry/constGpuVector.d.ts +2 -2
  94. package/dist/vector/geometry/constGpuVector.js +0 -2
  95. package/dist/vector/geometry/constGpuVector.js.map +1 -1
  96. package/dist/vector/geometry/flatGeometryVector.d.ts +3 -3
  97. package/dist/vector/geometry/flatGeometryVector.js +1 -5
  98. package/dist/vector/geometry/flatGeometryVector.js.map +1 -1
  99. package/dist/vector/geometry/flatGpuVector.d.ts +2 -2
  100. package/dist/vector/geometry/flatGpuVector.js +0 -1
  101. package/dist/vector/geometry/flatGpuVector.js.map +1 -1
  102. package/dist/vector/geometry/geometryVector.d.ts +3 -3
  103. package/dist/vector/geometry/geometryVector.js +0 -5
  104. package/dist/vector/geometry/geometryVector.js.map +1 -1
  105. package/dist/vector/geometry/geometryVectorConverter.js.map +1 -1
  106. package/dist/vector/geometry/gpuVector.d.ts +4 -4
  107. package/dist/vector/geometry/gpuVector.js +0 -4
  108. package/dist/vector/geometry/gpuVector.js.map +1 -1
  109. package/dist/vector/geometry/topologyVector.d.ts +3 -3
  110. package/dist/vector/geometry/topologyVector.js.map +1 -1
  111. package/dist/vector/idVector.d.ts +8 -0
  112. package/dist/vector/idVector.js +2 -0
  113. package/dist/vector/idVector.js.map +1 -0
  114. package/dist/vector/sequence/{intSequenceVector.d.ts → int32SequenceVector.d.ts} +1 -1
  115. package/dist/vector/sequence/{intSequenceVector.js → int32SequenceVector.js} +2 -2
  116. package/dist/vector/sequence/int32SequenceVector.js.map +1 -0
  117. package/dist/vector/sequence/{longSequenceVector.d.ts → int64SequenceVector.d.ts} +1 -1
  118. package/dist/vector/sequence/{longSequenceVector.js → int64SequenceVector.js} +2 -2
  119. package/dist/vector/sequence/int64SequenceVector.js.map +1 -0
  120. package/dist/vector/sequence/sequenceVector.js +0 -1
  121. package/dist/vector/sequence/sequenceVector.js.map +1 -1
  122. package/dist/vector/variableSizeVector.js +0 -1
  123. package/dist/vector/variableSizeVector.js.map +1 -1
  124. package/dist/vector/vector.js +0 -4
  125. package/dist/vector/vector.js.map +1 -1
  126. package/package.json +7 -7
  127. package/dist/vector/constant/intConstVector.js +0 -10
  128. package/dist/vector/constant/intConstVector.js.map +0 -1
  129. package/dist/vector/constant/longConstVector.js +0 -10
  130. package/dist/vector/constant/longConstVector.js.map +0 -1
  131. package/dist/vector/flat/intFlatVector.js.map +0 -1
  132. package/dist/vector/flat/longFlatVector.js.map +0 -1
  133. package/dist/vector/intVector.d.ts +0 -8
  134. package/dist/vector/intVector.js +0 -2
  135. package/dist/vector/intVector.js.map +0 -1
  136. package/dist/vector/sequence/intSequenceVector.js.map +0 -1
  137. package/dist/vector/sequence/longSequenceVector.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"unpackNullableUtils.js","sourceRoot":"","sources":["../../src/decoding/unpackNullableUtils.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,6BAA6B,CAAC;AAapD;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAC1B,UAAa,EACb,WAA6B,EAC7B,YAA6B;IAE7B,8CAA8C;IAC9C,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IAChC,+CAA+C;IAC/C,MAAM,WAAW,GAAG,UAAU,CAAC,WAAoC,CAAC;IACpE,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,CAAM,CAAC;IAE1C,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,wEAAwE;QACxE,MAAM,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAE,YAAoB,CAAC;IACnF,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACjC,UAAsB,EACtB,cAAsB,EACtB,WAA6B;IAE7B,oBAAoB;IACpB,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IACvC,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IAEtF,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,sEAAsE;QACtE,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACpE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,MAAM,CAAC,SAAS,EAAE,CAAC;AAC9B,CAAC","sourcesContent":["import BitVector from \"../vector/flat/bitVector.js\";\n\n/**\n * Type constraint for TypedArray types that can be unpacked\n */\nexport type TypedArrayConstructor =\n | Int32ArrayConstructor\n | BigInt64ArrayConstructor\n | Float32ArrayConstructor\n | Float64ArrayConstructor;\n\nexport type TypedArrayInstance = Int32Array | BigInt64Array | Float32Array | Float64Array;\n\n/**\n * Generic unpacking function.\n * Reconstructs the full array by inserting default values at null positions.\n *\n * @param dataStream The compact data stream containing only non-null values\n * @param presentBits BitVector indicating which positions have values (null if non-nullable)\n * @param defaultValue The default value to insert at null positions (0, 0n, etc.)\n * @returns Full array with default values at null positions\n */\nexport function unpackNullable<T extends TypedArrayInstance>(\n dataStream: T,\n presentBits: BitVector | null,\n defaultValue: number | bigint,\n): T {\n // Non-nullable case: return data stream as-is\n if (!presentBits) {\n return dataStream;\n }\n\n const size = presentBits.size();\n // Create new array of same type with full size\n const constructor = dataStream.constructor as TypedArrayConstructor;\n const result = new constructor(size) as T;\n\n let counter = 0;\n for (let i = 0; i < size; i++) {\n // If position has a value, take from data stream; otherwise use default\n result[i] = presentBits.get(i) ? dataStream[counter++] : (defaultValue as any);\n }\n\n return result;\n}\n\n/**\n * Special case for boolean columns because BitVector is not directly compatible with TypedArray.\n *\n * @param dataStream The compact BitVector data containing only non-null boolean values\n * @param dataStreamSize The number of actual values in dataStream\n * @param presentBits BitVector indicating which positions have values (null if non-nullable)\n * @returns Uint8Array buffer for BitVector with false at null positions\n */\nexport function unpackNullableBoolean(\n dataStream: Uint8Array,\n dataStreamSize: number,\n presentBits: BitVector | null,\n): Uint8Array {\n // Non-nullable case\n if (!presentBits) {\n return dataStream;\n }\n\n const numFeatures = presentBits.size();\n const bitVector = new BitVector(dataStream, dataStreamSize);\n const result = new BitVector(new Uint8Array(Math.ceil(numFeatures / 8)), numFeatures);\n\n let counter = 0;\n for (let i = 0; i < numFeatures; i++) {\n // If position has a value, take from data stream; otherwise use false\n const value = presentBits.get(i) ? bitVector.get(counter++) : false;\n result.set(i, value);\n }\n\n return result.getBuffer();\n}\n"]}
1
+ {"version":3,"file":"unpackNullableUtils.js","sourceRoot":"","sources":["../../src/decoding/unpackNullableUtils.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,6BAA6B,CAAC;AAqBpD;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAC1B,UAAa,EACb,WAA6B,EAC7B,YAA6B;IAE7B,8CAA8C;IAC9C,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IAChC,+CAA+C;IAC/C,MAAM,WAAW,GAAG,UAAU,CAAC,WAAoC,CAAC;IACpE,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,CAAM,CAAC;IAE1C,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,wEAAwE;QACxE,MAAM,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAE,YAAoB,CAAC;IACnF,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACjC,UAAsB,EACtB,cAAsB,EACtB,WAA6B;IAE7B,oBAAoB;IACpB,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IACvC,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IAEtF,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,sEAAsE;QACtE,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACpE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,MAAM,CAAC,SAAS,EAAE,CAAC;AAC9B,CAAC","sourcesContent":["import BitVector from \"../vector/flat/bitVector.js\";\n\n/**\n * Type constraint for TypedArray types that can be unpacked\n */\nexport type TypedArrayConstructor =\n | Int32ArrayConstructor\n | Uint32ArrayConstructor\n | BigInt64ArrayConstructor\n | BigUint64ArrayConstructor\n | Float32ArrayConstructor\n | Float64ArrayConstructor;\n\nexport type TypedArrayInstance =\n | Int32Array\n | Uint32Array\n | BigInt64Array\n | BigUint64Array\n | Float32Array\n | Float64Array;\n\n/**\n * Generic unpacking function.\n * Reconstructs the full array by inserting default values at null positions.\n *\n * @param dataStream The compact data stream containing only non-null values\n * @param presentBits BitVector indicating which positions have values (null if non-nullable)\n * @param defaultValue The default value to insert at null positions (0, 0n, etc.)\n * @returns Full array with default values at null positions\n */\nexport function unpackNullable<T extends TypedArrayInstance>(\n dataStream: T,\n presentBits: BitVector | null,\n defaultValue: number | bigint,\n): T {\n // Non-nullable case: return data stream as-is\n if (!presentBits) {\n return dataStream;\n }\n\n const size = presentBits.size();\n // Create new array of same type with full size\n const constructor = dataStream.constructor as TypedArrayConstructor;\n const result = new constructor(size) as T;\n\n let counter = 0;\n for (let i = 0; i < size; i++) {\n // If position has a value, take from data stream; otherwise use default\n result[i] = presentBits.get(i) ? dataStream[counter++] : (defaultValue as any);\n }\n\n return result;\n}\n\n/**\n * Special case for boolean columns because BitVector is not directly compatible with TypedArray.\n *\n * @param dataStream The compact BitVector data containing only non-null boolean values\n * @param dataStreamSize The number of actual values in dataStream\n * @param presentBits BitVector indicating which positions have values (null if non-nullable)\n * @returns Uint8Array buffer for BitVector with false at null positions\n */\nexport function unpackNullableBoolean(\n dataStream: Uint8Array,\n dataStreamSize: number,\n presentBits: BitVector | null,\n): Uint8Array {\n // Non-nullable case\n if (!presentBits) {\n return dataStream;\n }\n\n const numFeatures = presentBits.size();\n const bitVector = new BitVector(dataStream, dataStreamSize);\n const result = new BitVector(new Uint8Array(Math.ceil(numFeatures / 8)), numFeatures);\n\n let counter = 0;\n for (let i = 0; i < numFeatures; i++) {\n // If position has a value, take from data stream; otherwise use false\n const value = presentBits.get(i) ? bitVector.get(counter++) : false;\n result.set(i, value);\n }\n\n return result.getBuffer();\n}\n"]}
@@ -4,4 +4,4 @@
4
4
  * @param values - Int32 words to serialize.
5
5
  * @returns Big-endian byte stream (`values.length * 4` bytes).
6
6
  */
7
- export declare function encodeBigEndianInt32s(values: Int32Array): Uint8Array;
7
+ export declare function encodeBigEndianInt32s(values: Uint32Array): Uint8Array;
@@ -1 +1 @@
1
- {"version":3,"file":"bigEndianEncode.js","sourceRoot":"","sources":["../../src/encoding/bigEndianEncode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAErD;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAkB;IACpD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAE3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC","sourcesContent":["import { bswap32 } from \"../decoding/fastPforShared\";\n\n/**\n * Serializes an `Int32Array` to a big-endian byte stream.\n *\n * @param values - Int32 words to serialize.\n * @returns Big-endian byte stream (`values.length * 4` bytes).\n */\nexport function encodeBigEndianInt32s(values: Int32Array): Uint8Array {\n const bytes = new Uint8Array(values.length * 4);\n const u32 = new Uint32Array(bytes.buffer, bytes.byteOffset, values.length);\n\n for (let i = 0; i < values.length; i++) {\n u32[i] = bswap32(values[i]);\n }\n return bytes;\n}\n"]}
1
+ {"version":3,"file":"bigEndianEncode.js","sourceRoot":"","sources":["../../src/encoding/bigEndianEncode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAErD;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAmB;IACrD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAE3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC","sourcesContent":["import { bswap32 } from \"../decoding/fastPforShared\";\n\n/**\n * Serializes an `Int32Array` to a big-endian byte stream.\n *\n * @param values - Int32 words to serialize.\n * @returns Big-endian byte stream (`values.length * 4` bytes).\n */\nexport function encodeBigEndianInt32s(values: Uint32Array): Uint8Array {\n const bytes = new Uint8Array(values.length * 4);\n const u32 = new Uint32Array(bytes.buffer, bytes.byteOffset, values.length);\n\n for (let i = 0; i < values.length; i++) {\n u32[i] = bswap32(values[i]);\n }\n return bytes;\n}\n"]}
@@ -18,7 +18,7 @@ export function encodePointGeometryVectorWithOffset(x, y) {
18
18
  geometryOffsets: new Uint32Array([0]),
19
19
  partOffsets: new Uint32Array([0]),
20
20
  ringOffsets: new Uint32Array([0]),
21
- }, new Int32Array([1]), new Int32Array([99, 99, x, y]));
21
+ }, new Uint32Array([1]), new Int32Array([99, 99, x, y]));
22
22
  }
23
23
  export function encodePointGeometryVectorWithMortonEncoding(x, y) {
24
24
  const mortonEncoded = encode(x, y);
@@ -26,7 +26,7 @@ export function encodePointGeometryVectorWithMortonEncoding(x, y) {
26
26
  geometryOffsets: new Uint32Array([0]),
27
27
  partOffsets: new Uint32Array([0]),
28
28
  ringOffsets: new Uint32Array([0]),
29
- }, new Int32Array([0]), new Int32Array([mortonEncoded]), DEFAULT_MORTON_SETTINGS);
29
+ }, new Uint32Array([0]), new Int32Array([mortonEncoded]), DEFAULT_MORTON_SETTINGS);
30
30
  }
31
31
  export function encodePointsGeometryVector(points) {
32
32
  return new ConstGeometryVector(points.length / 2, GEOMETRY_TYPE.POINT, VertexBufferType.VEC_2, {
@@ -54,7 +54,7 @@ export function encodeLineStringGeometryVector(lines) {
54
54
  export function encodeLineStringGeometryVectorWithMortonEncoding(line) {
55
55
  const numVertices = line.length;
56
56
  const vertexBuffer = new Int32Array(numVertices);
57
- const offsetBuffer = new Int32Array(numVertices);
57
+ const offsetBuffer = new Uint32Array(numVertices);
58
58
  for (let i = 0; i < numVertices; i++) {
59
59
  vertexBuffer[i] = encode(line[i][0], line[i][1]);
60
60
  offsetBuffer[i] = i;
@@ -89,7 +89,7 @@ export function encodePolygonGeometryVectorWithOffsets(polygon) {
89
89
  ringOffsets[ringIndex] = ringOffsets[ringIndex - 1] + ring.length;
90
90
  ringIndex++;
91
91
  }
92
- const offsetBuffer = new Int32Array(vertexBuffer.length / 2);
92
+ const offsetBuffer = new Uint32Array(vertexBuffer.length / 2);
93
93
  for (let i = 0; i < offsetBuffer.length; i++) {
94
94
  offsetBuffer[i] = i;
95
95
  }
@@ -108,7 +108,7 @@ export function encodePolygonGeometryVectorWithMortonOffsets(polygon) {
108
108
  ringOffsets[ringIndex] = ringOffsets[ringIndex - 1] + ring.length;
109
109
  ringIndex++;
110
110
  }
111
- const offsetBuffer = new Int32Array(vertexBuffer.length);
111
+ const offsetBuffer = new Uint32Array(vertexBuffer.length);
112
112
  for (let i = 0; i < offsetBuffer.length; i++) {
113
113
  offsetBuffer[i] = i;
114
114
  }
@@ -142,7 +142,7 @@ export function encodeMultiLineStringGeometryVectorWithOffsets(lines) {
142
142
  partOffsets[partIndex] = partOffsets[partIndex - 1] + line.length;
143
143
  partIndex++;
144
144
  }
145
- const offsetBuffer = new Int32Array(vertexBuffer.length / 2);
145
+ const offsetBuffer = new Uint32Array(vertexBuffer.length / 2);
146
146
  for (let i = 0; i < offsetBuffer.length; i++) {
147
147
  offsetBuffer[i] = i;
148
148
  }
@@ -161,7 +161,7 @@ export function encodeMultiLineStringGeometryVectorWithMortonOffsets(lines) {
161
161
  partOffsets[partIndex] = partOffsets[partIndex - 1] + line.length;
162
162
  partIndex++;
163
163
  }
164
- const offsetBuffer = new Int32Array(vertexBuffer.length);
164
+ const offsetBuffer = new Uint32Array(vertexBuffer.length);
165
165
  for (let i = 0; i < offsetBuffer.length; i++) {
166
166
  offsetBuffer[i] = i;
167
167
  }
@@ -209,7 +209,7 @@ export function encodeMultiPolygonGeometryVectorWithOffsets(polygons) {
209
209
  partOffsets[partIndex] = partOffsets[partIndex - 1] + polygon.length;
210
210
  partIndex++;
211
211
  }
212
- const offsetBuffer = new Int32Array(vertexBuffer.length / 2);
212
+ const offsetBuffer = new Uint32Array(vertexBuffer.length / 2);
213
213
  for (let i = 0; i < offsetBuffer.length; i++) {
214
214
  offsetBuffer[i] = i;
215
215
  }
@@ -235,7 +235,7 @@ export function encodeMultiPolygonGeometryVectorWithMortonOffsets(polygons) {
235
235
  partOffsets[partIndex] = partOffsets[partIndex - 1] + polygon.length;
236
236
  partIndex++;
237
237
  }
238
- const offsetBuffer = new Int32Array(vertexBuffer.length);
238
+ const offsetBuffer = new Uint32Array(vertexBuffer.length);
239
239
  for (let i = 0; i < offsetBuffer.length; i++) {
240
240
  offsetBuffer[i] = i;
241
241
  }
@@ -1 +1 @@
1
- {"version":3,"file":"constGeometryVectorEncoder.js","sourceRoot":"","sources":["../../src/encoding/constGeometryVectorEncoder.ts"],"names":[],"mappings":"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","sourcesContent":["import { ConstGeometryVector } from \"../vector/geometry/constGeometryVector\";\nimport { GEOMETRY_TYPE } from \"../vector/geometry/geometryType\";\nimport { VertexBufferType } from \"../vector/geometry/vertexBufferType\";\nimport { encodeZOrderCurve } from \"./zOrderCurveEncoder\";\nimport type { GeometryVector, MortonSettings } from \"../vector/geometry/geometryVector\";\n\nexport const DEFAULT_MORTON_SETTINGS: MortonSettings = { numBits: 16, coordinateShift: 0 } as MortonSettings;\n\nexport function encode(x: number, y: number): number {\n return encodeZOrderCurve(x, y, DEFAULT_MORTON_SETTINGS.numBits, DEFAULT_MORTON_SETTINGS.coordinateShift);\n}\n\nexport function encodePointGeometryVector(x: number, y: number): GeometryVector {\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.POINT,\n VertexBufferType.VEC_2,\n {\n geometryOffsets: new Uint32Array([0]),\n partOffsets: new Uint32Array([0]),\n ringOffsets: new Uint32Array([0]),\n },\n undefined,\n new Int32Array([x, y]),\n );\n}\n\nexport function encodePointGeometryVectorWithOffset(x: number, y: number): GeometryVector {\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.POINT,\n VertexBufferType.VEC_2,\n {\n geometryOffsets: new Uint32Array([0]),\n partOffsets: new Uint32Array([0]),\n ringOffsets: new Uint32Array([0]),\n },\n new Int32Array([1]),\n new Int32Array([99, 99, x, y]),\n );\n}\n\nexport function encodePointGeometryVectorWithMortonEncoding(x: number, y: number): GeometryVector {\n const mortonEncoded = encode(x, y);\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.POINT,\n VertexBufferType.MORTON,\n {\n geometryOffsets: new Uint32Array([0]),\n partOffsets: new Uint32Array([0]),\n ringOffsets: new Uint32Array([0]),\n },\n new Int32Array([0]),\n new Int32Array([mortonEncoded]),\n DEFAULT_MORTON_SETTINGS,\n );\n}\n\nexport function encodePointsGeometryVector(points: number[]): GeometryVector {\n return new ConstGeometryVector(\n points.length / 2,\n GEOMETRY_TYPE.POINT,\n VertexBufferType.VEC_2,\n {\n geometryOffsets: new Uint32Array([0]),\n partOffsets: new Uint32Array([0]),\n ringOffsets: new Uint32Array([0]),\n },\n undefined,\n new Int32Array(points),\n );\n}\n\nexport function encodeMultiPointGeometryVector(points: number[][]): GeometryVector {\n const vertexBuffer = new Int32Array(points.flatMap((point) => [point[0], point[1]]));\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.MULTIPOINT,\n VertexBufferType.VEC_2,\n {\n geometryOffsets: new Uint32Array([0, points.length]),\n partOffsets: undefined,\n ringOffsets: undefined,\n },\n undefined,\n vertexBuffer,\n );\n}\n\nexport function encodeLineStringGeometryVector(lines: [number, number][]): GeometryVector {\n const vertexBuffer = new Int32Array(lines.flatMap((line) => [line[0], line[1]]));\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.LINESTRING,\n VertexBufferType.VEC_2,\n {\n geometryOffsets: undefined,\n partOffsets: new Uint32Array([0, vertexBuffer.length / 2]),\n ringOffsets: undefined,\n },\n undefined,\n vertexBuffer,\n );\n}\n\nexport function encodeLineStringGeometryVectorWithMortonEncoding(line: [number, number][]): GeometryVector {\n const numVertices = line.length;\n const vertexBuffer = new Int32Array(numVertices);\n const offsetBuffer = new Int32Array(numVertices);\n for (let i = 0; i < numVertices; i++) {\n vertexBuffer[i] = encode(line[i][0], line[i][1]);\n offsetBuffer[i] = i;\n }\n\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.LINESTRING,\n VertexBufferType.MORTON,\n {\n geometryOffsets: undefined,\n partOffsets: new Uint32Array([0, numVertices]),\n ringOffsets: undefined,\n },\n offsetBuffer,\n vertexBuffer,\n DEFAULT_MORTON_SETTINGS,\n );\n}\n\nexport function encodePolygonGeometryVector(polygon: [number, number][][]): GeometryVector {\n const vertexBuffer = new Int32Array(polygon.flatMap((ring) => ring.flatMap((point) => [point[0], point[1]])));\n const ringOffsets = new Uint32Array(polygon.length + 1);\n ringOffsets[0] = 0;\n let ringIndex = 1;\n for (const ring of polygon) {\n ringOffsets[ringIndex] = ringOffsets[ringIndex - 1] + ring.length;\n ringIndex++;\n }\n\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.POLYGON,\n VertexBufferType.VEC_2,\n {\n geometryOffsets: undefined,\n partOffsets: new Uint32Array([0, polygon.length]),\n ringOffsets,\n },\n undefined,\n vertexBuffer,\n );\n}\n\nexport function encodePolygonGeometryVectorWithOffsets(polygon: [number, number][][]): GeometryVector {\n const vertexBuffer = new Int32Array(polygon.flatMap((ring) => ring.flatMap((point) => [point[0], point[1]])));\n const ringOffsets = new Uint32Array(polygon.length + 1);\n ringOffsets[0] = 0;\n let ringIndex = 1;\n for (const ring of polygon) {\n ringOffsets[ringIndex] = ringOffsets[ringIndex - 1] + ring.length;\n ringIndex++;\n }\n const offsetBuffer = new Int32Array(vertexBuffer.length / 2);\n for (let i = 0; i < offsetBuffer.length; i++) {\n offsetBuffer[i] = i;\n }\n\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.POLYGON,\n VertexBufferType.VEC_2,\n {\n geometryOffsets: undefined,\n partOffsets: new Uint32Array([0, polygon.length]),\n ringOffsets,\n },\n offsetBuffer,\n vertexBuffer,\n );\n}\n\nexport function encodePolygonGeometryVectorWithMortonOffsets(polygon: [number, number][][]): GeometryVector {\n const vertexBuffer = new Int32Array(polygon.flatMap((ring) => ring.flatMap((point) => encode(point[0], point[1]))));\n const ringOffsets = new Uint32Array(polygon.length + 1);\n ringOffsets[0] = 0;\n let ringIndex = 1;\n for (const ring of polygon) {\n ringOffsets[ringIndex] = ringOffsets[ringIndex - 1] + ring.length;\n ringIndex++;\n }\n const offsetBuffer = new Int32Array(vertexBuffer.length);\n for (let i = 0; i < offsetBuffer.length; i++) {\n offsetBuffer[i] = i;\n }\n\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.POLYGON,\n VertexBufferType.MORTON,\n {\n geometryOffsets: undefined,\n partOffsets: new Uint32Array([0, polygon.length]),\n ringOffsets,\n },\n offsetBuffer,\n vertexBuffer,\n DEFAULT_MORTON_SETTINGS,\n );\n}\n\nexport function encodeMultiLineStringGeometryVector(lines: [number, number][][]): GeometryVector {\n const vertexBuffer = new Int32Array(lines.flatMap((line) => line.flatMap((point) => [point[0], point[1]])));\n const partOffsets = new Uint32Array(lines.length + 1);\n partOffsets[0] = 0;\n let partIndex = 1;\n for (const line of lines) {\n partOffsets[partIndex] = partOffsets[partIndex - 1] + line.length;\n partIndex++;\n }\n\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.MULTILINESTRING,\n VertexBufferType.VEC_2,\n {\n geometryOffsets: new Uint32Array([0, lines.length]),\n partOffsets,\n ringOffsets: undefined,\n },\n undefined,\n vertexBuffer,\n );\n}\n\nexport function encodeMultiLineStringGeometryVectorWithOffsets(lines: [number, number][][]): GeometryVector {\n const vertexBuffer = new Int32Array(lines.flatMap((line) => line.flatMap((point) => [point[0], point[1]])));\n const partOffsets = new Uint32Array(lines.length + 1);\n partOffsets[0] = 0;\n let partIndex = 1;\n for (const line of lines) {\n partOffsets[partIndex] = partOffsets[partIndex - 1] + line.length;\n partIndex++;\n }\n const offsetBuffer = new Int32Array(vertexBuffer.length / 2);\n for (let i = 0; i < offsetBuffer.length; i++) {\n offsetBuffer[i] = i;\n }\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.MULTILINESTRING,\n VertexBufferType.VEC_2,\n {\n geometryOffsets: new Uint32Array([0, lines.length]),\n partOffsets,\n ringOffsets: undefined,\n },\n offsetBuffer,\n vertexBuffer,\n );\n}\n\nexport function encodeMultiLineStringGeometryVectorWithMortonOffsets(lines: [number, number][][]): GeometryVector {\n const vertexBuffer = new Int32Array(lines.flatMap((line) => line.flatMap((point) => encode(point[0], point[1]))));\n const partOffsets = new Uint32Array(lines.length + 1);\n partOffsets[0] = 0;\n let partIndex = 1;\n for (const line of lines) {\n partOffsets[partIndex] = partOffsets[partIndex - 1] + line.length;\n partIndex++;\n }\n const offsetBuffer = new Int32Array(vertexBuffer.length);\n for (let i = 0; i < offsetBuffer.length; i++) {\n offsetBuffer[i] = i;\n }\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.MULTILINESTRING,\n VertexBufferType.MORTON,\n {\n geometryOffsets: new Uint32Array([0, lines.length]),\n partOffsets,\n ringOffsets: undefined,\n },\n offsetBuffer,\n vertexBuffer,\n DEFAULT_MORTON_SETTINGS,\n );\n}\n\nexport function encodeMultiPolygonGeometryVector(polygons: [number, number][][][]): GeometryVector {\n const vertexBuffer = new Int32Array(\n polygons.flatMap((polygon) => polygon.flatMap((ring) => ring.flatMap((point) => [point[0], point[1]]))),\n );\n const ringOffsets = new Uint32Array(polygons.reduce((sum, polygon) => sum + polygon.length, 0) + 1);\n const partOffsets = new Uint32Array(polygons.length + 1);\n ringOffsets[0] = 0;\n partOffsets[0] = 0;\n let ringIndex = 1;\n let partIndex = 1;\n for (const polygon of polygons) {\n for (const ring of polygon) {\n ringOffsets[ringIndex] = ringOffsets[ringIndex - 1] + ring.length;\n ringIndex++;\n }\n partOffsets[partIndex] = partOffsets[partIndex - 1] + polygon.length;\n partIndex++;\n }\n\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.MULTIPOLYGON,\n VertexBufferType.VEC_2,\n {\n geometryOffsets: new Uint32Array([0, polygons.length]),\n partOffsets,\n ringOffsets,\n },\n undefined,\n vertexBuffer,\n );\n}\n\nexport function encodeMultiPolygonGeometryVectorWithOffsets(polygons: [number, number][][][]): GeometryVector {\n const vertexBuffer = new Int32Array(\n polygons.flatMap((polygon) => polygon.flatMap((ring) => ring.flatMap((point) => [point[0], point[1]]))),\n );\n const ringOffsets = new Uint32Array(polygons.reduce((sum, polygon) => sum + polygon.length, 0) + 1);\n const partOffsets = new Uint32Array(polygons.length + 1);\n ringOffsets[0] = 0;\n partOffsets[0] = 0;\n let ringIndex = 1;\n let partIndex = 1;\n for (const polygon of polygons) {\n for (const ring of polygon) {\n ringOffsets[ringIndex] = ringOffsets[ringIndex - 1] + ring.length;\n ringIndex++;\n }\n partOffsets[partIndex] = partOffsets[partIndex - 1] + polygon.length;\n partIndex++;\n }\n const offsetBuffer = new Int32Array(vertexBuffer.length / 2);\n for (let i = 0; i < offsetBuffer.length; i++) {\n offsetBuffer[i] = i;\n }\n\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.MULTIPOLYGON,\n VertexBufferType.VEC_2,\n {\n geometryOffsets: new Uint32Array([0, polygons.length]),\n partOffsets,\n ringOffsets,\n },\n offsetBuffer,\n vertexBuffer,\n );\n}\n\nexport function encodeMultiPolygonGeometryVectorWithMortonOffsets(polygons: [number, number][][][]): GeometryVector {\n const vertexBuffer = new Int32Array(\n polygons.flatMap((polygon) => polygon.flatMap((ring) => ring.flatMap((point) => encode(point[0], point[1])))),\n );\n const ringOffsets = new Uint32Array(polygons.reduce((sum, polygon) => sum + polygon.length, 0) + 1);\n const partOffsets = new Uint32Array(polygons.length + 1);\n ringOffsets[0] = 0;\n partOffsets[0] = 0;\n let ringIndex = 1;\n let partIndex = 1;\n for (const polygon of polygons) {\n for (const ring of polygon) {\n ringOffsets[ringIndex] = ringOffsets[ringIndex - 1] + ring.length;\n ringIndex++;\n }\n partOffsets[partIndex] = partOffsets[partIndex - 1] + polygon.length;\n partIndex++;\n }\n const offsetBuffer = new Int32Array(vertexBuffer.length);\n for (let i = 0; i < offsetBuffer.length; i++) {\n offsetBuffer[i] = i;\n }\n\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.MULTIPOLYGON,\n VertexBufferType.MORTON,\n {\n geometryOffsets: new Uint32Array([0, polygons.length]),\n partOffsets,\n ringOffsets,\n },\n offsetBuffer,\n vertexBuffer,\n DEFAULT_MORTON_SETTINGS,\n );\n}\n"]}
1
+ {"version":3,"file":"constGeometryVectorEncoder.js","sourceRoot":"","sources":["../../src/encoding/constGeometryVectorEncoder.ts"],"names":[],"mappings":"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","sourcesContent":["import { ConstGeometryVector } from \"../vector/geometry/constGeometryVector\";\nimport { GEOMETRY_TYPE } from \"../vector/geometry/geometryType\";\nimport { VertexBufferType } from \"../vector/geometry/vertexBufferType\";\nimport { encodeZOrderCurve } from \"./zOrderCurveEncoder\";\nimport type { GeometryVector, MortonSettings } from \"../vector/geometry/geometryVector\";\n\nexport const DEFAULT_MORTON_SETTINGS: MortonSettings = { numBits: 16, coordinateShift: 0 } as MortonSettings;\n\nexport function encode(x: number, y: number): number {\n return encodeZOrderCurve(x, y, DEFAULT_MORTON_SETTINGS.numBits, DEFAULT_MORTON_SETTINGS.coordinateShift);\n}\n\nexport function encodePointGeometryVector(x: number, y: number): GeometryVector {\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.POINT,\n VertexBufferType.VEC_2,\n {\n geometryOffsets: new Uint32Array([0]),\n partOffsets: new Uint32Array([0]),\n ringOffsets: new Uint32Array([0]),\n },\n undefined,\n new Int32Array([x, y]),\n );\n}\n\nexport function encodePointGeometryVectorWithOffset(x: number, y: number): GeometryVector {\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.POINT,\n VertexBufferType.VEC_2,\n {\n geometryOffsets: new Uint32Array([0]),\n partOffsets: new Uint32Array([0]),\n ringOffsets: new Uint32Array([0]),\n },\n new Uint32Array([1]),\n new Int32Array([99, 99, x, y]),\n );\n}\n\nexport function encodePointGeometryVectorWithMortonEncoding(x: number, y: number): GeometryVector {\n const mortonEncoded = encode(x, y);\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.POINT,\n VertexBufferType.MORTON,\n {\n geometryOffsets: new Uint32Array([0]),\n partOffsets: new Uint32Array([0]),\n ringOffsets: new Uint32Array([0]),\n },\n new Uint32Array([0]),\n new Int32Array([mortonEncoded]),\n DEFAULT_MORTON_SETTINGS,\n );\n}\n\nexport function encodePointsGeometryVector(points: number[]): GeometryVector {\n return new ConstGeometryVector(\n points.length / 2,\n GEOMETRY_TYPE.POINT,\n VertexBufferType.VEC_2,\n {\n geometryOffsets: new Uint32Array([0]),\n partOffsets: new Uint32Array([0]),\n ringOffsets: new Uint32Array([0]),\n },\n undefined,\n new Int32Array(points),\n );\n}\n\nexport function encodeMultiPointGeometryVector(points: number[][]): GeometryVector {\n const vertexBuffer = new Int32Array(points.flatMap((point) => [point[0], point[1]]));\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.MULTIPOINT,\n VertexBufferType.VEC_2,\n {\n geometryOffsets: new Uint32Array([0, points.length]),\n partOffsets: undefined,\n ringOffsets: undefined,\n },\n undefined,\n vertexBuffer,\n );\n}\n\nexport function encodeLineStringGeometryVector(lines: [number, number][]): GeometryVector {\n const vertexBuffer = new Int32Array(lines.flatMap((line) => [line[0], line[1]]));\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.LINESTRING,\n VertexBufferType.VEC_2,\n {\n geometryOffsets: undefined,\n partOffsets: new Uint32Array([0, vertexBuffer.length / 2]),\n ringOffsets: undefined,\n },\n undefined,\n vertexBuffer,\n );\n}\n\nexport function encodeLineStringGeometryVectorWithMortonEncoding(line: [number, number][]): GeometryVector {\n const numVertices = line.length;\n const vertexBuffer = new Int32Array(numVertices);\n const offsetBuffer = new Uint32Array(numVertices);\n for (let i = 0; i < numVertices; i++) {\n vertexBuffer[i] = encode(line[i][0], line[i][1]);\n offsetBuffer[i] = i;\n }\n\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.LINESTRING,\n VertexBufferType.MORTON,\n {\n geometryOffsets: undefined,\n partOffsets: new Uint32Array([0, numVertices]),\n ringOffsets: undefined,\n },\n offsetBuffer,\n vertexBuffer,\n DEFAULT_MORTON_SETTINGS,\n );\n}\n\nexport function encodePolygonGeometryVector(polygon: [number, number][][]): GeometryVector {\n const vertexBuffer = new Int32Array(polygon.flatMap((ring) => ring.flatMap((point) => [point[0], point[1]])));\n const ringOffsets = new Uint32Array(polygon.length + 1);\n ringOffsets[0] = 0;\n let ringIndex = 1;\n for (const ring of polygon) {\n ringOffsets[ringIndex] = ringOffsets[ringIndex - 1] + ring.length;\n ringIndex++;\n }\n\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.POLYGON,\n VertexBufferType.VEC_2,\n {\n geometryOffsets: undefined,\n partOffsets: new Uint32Array([0, polygon.length]),\n ringOffsets,\n },\n undefined,\n vertexBuffer,\n );\n}\n\nexport function encodePolygonGeometryVectorWithOffsets(polygon: [number, number][][]): GeometryVector {\n const vertexBuffer = new Int32Array(polygon.flatMap((ring) => ring.flatMap((point) => [point[0], point[1]])));\n const ringOffsets = new Uint32Array(polygon.length + 1);\n ringOffsets[0] = 0;\n let ringIndex = 1;\n for (const ring of polygon) {\n ringOffsets[ringIndex] = ringOffsets[ringIndex - 1] + ring.length;\n ringIndex++;\n }\n const offsetBuffer = new Uint32Array(vertexBuffer.length / 2);\n for (let i = 0; i < offsetBuffer.length; i++) {\n offsetBuffer[i] = i;\n }\n\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.POLYGON,\n VertexBufferType.VEC_2,\n {\n geometryOffsets: undefined,\n partOffsets: new Uint32Array([0, polygon.length]),\n ringOffsets,\n },\n offsetBuffer,\n vertexBuffer,\n );\n}\n\nexport function encodePolygonGeometryVectorWithMortonOffsets(polygon: [number, number][][]): GeometryVector {\n const vertexBuffer = new Int32Array(polygon.flatMap((ring) => ring.flatMap((point) => encode(point[0], point[1]))));\n const ringOffsets = new Uint32Array(polygon.length + 1);\n ringOffsets[0] = 0;\n let ringIndex = 1;\n for (const ring of polygon) {\n ringOffsets[ringIndex] = ringOffsets[ringIndex - 1] + ring.length;\n ringIndex++;\n }\n const offsetBuffer = new Uint32Array(vertexBuffer.length);\n for (let i = 0; i < offsetBuffer.length; i++) {\n offsetBuffer[i] = i;\n }\n\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.POLYGON,\n VertexBufferType.MORTON,\n {\n geometryOffsets: undefined,\n partOffsets: new Uint32Array([0, polygon.length]),\n ringOffsets,\n },\n offsetBuffer,\n vertexBuffer,\n DEFAULT_MORTON_SETTINGS,\n );\n}\n\nexport function encodeMultiLineStringGeometryVector(lines: [number, number][][]): GeometryVector {\n const vertexBuffer = new Int32Array(lines.flatMap((line) => line.flatMap((point) => [point[0], point[1]])));\n const partOffsets = new Uint32Array(lines.length + 1);\n partOffsets[0] = 0;\n let partIndex = 1;\n for (const line of lines) {\n partOffsets[partIndex] = partOffsets[partIndex - 1] + line.length;\n partIndex++;\n }\n\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.MULTILINESTRING,\n VertexBufferType.VEC_2,\n {\n geometryOffsets: new Uint32Array([0, lines.length]),\n partOffsets,\n ringOffsets: undefined,\n },\n undefined,\n vertexBuffer,\n );\n}\n\nexport function encodeMultiLineStringGeometryVectorWithOffsets(lines: [number, number][][]): GeometryVector {\n const vertexBuffer = new Int32Array(lines.flatMap((line) => line.flatMap((point) => [point[0], point[1]])));\n const partOffsets = new Uint32Array(lines.length + 1);\n partOffsets[0] = 0;\n let partIndex = 1;\n for (const line of lines) {\n partOffsets[partIndex] = partOffsets[partIndex - 1] + line.length;\n partIndex++;\n }\n const offsetBuffer = new Uint32Array(vertexBuffer.length / 2);\n for (let i = 0; i < offsetBuffer.length; i++) {\n offsetBuffer[i] = i;\n }\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.MULTILINESTRING,\n VertexBufferType.VEC_2,\n {\n geometryOffsets: new Uint32Array([0, lines.length]),\n partOffsets,\n ringOffsets: undefined,\n },\n offsetBuffer,\n vertexBuffer,\n );\n}\n\nexport function encodeMultiLineStringGeometryVectorWithMortonOffsets(lines: [number, number][][]): GeometryVector {\n const vertexBuffer = new Int32Array(lines.flatMap((line) => line.flatMap((point) => encode(point[0], point[1]))));\n const partOffsets = new Uint32Array(lines.length + 1);\n partOffsets[0] = 0;\n let partIndex = 1;\n for (const line of lines) {\n partOffsets[partIndex] = partOffsets[partIndex - 1] + line.length;\n partIndex++;\n }\n const offsetBuffer = new Uint32Array(vertexBuffer.length);\n for (let i = 0; i < offsetBuffer.length; i++) {\n offsetBuffer[i] = i;\n }\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.MULTILINESTRING,\n VertexBufferType.MORTON,\n {\n geometryOffsets: new Uint32Array([0, lines.length]),\n partOffsets,\n ringOffsets: undefined,\n },\n offsetBuffer,\n vertexBuffer,\n DEFAULT_MORTON_SETTINGS,\n );\n}\n\nexport function encodeMultiPolygonGeometryVector(polygons: [number, number][][][]): GeometryVector {\n const vertexBuffer = new Int32Array(\n polygons.flatMap((polygon) => polygon.flatMap((ring) => ring.flatMap((point) => [point[0], point[1]]))),\n );\n const ringOffsets = new Uint32Array(polygons.reduce((sum, polygon) => sum + polygon.length, 0) + 1);\n const partOffsets = new Uint32Array(polygons.length + 1);\n ringOffsets[0] = 0;\n partOffsets[0] = 0;\n let ringIndex = 1;\n let partIndex = 1;\n for (const polygon of polygons) {\n for (const ring of polygon) {\n ringOffsets[ringIndex] = ringOffsets[ringIndex - 1] + ring.length;\n ringIndex++;\n }\n partOffsets[partIndex] = partOffsets[partIndex - 1] + polygon.length;\n partIndex++;\n }\n\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.MULTIPOLYGON,\n VertexBufferType.VEC_2,\n {\n geometryOffsets: new Uint32Array([0, polygons.length]),\n partOffsets,\n ringOffsets,\n },\n undefined,\n vertexBuffer,\n );\n}\n\nexport function encodeMultiPolygonGeometryVectorWithOffsets(polygons: [number, number][][][]): GeometryVector {\n const vertexBuffer = new Int32Array(\n polygons.flatMap((polygon) => polygon.flatMap((ring) => ring.flatMap((point) => [point[0], point[1]]))),\n );\n const ringOffsets = new Uint32Array(polygons.reduce((sum, polygon) => sum + polygon.length, 0) + 1);\n const partOffsets = new Uint32Array(polygons.length + 1);\n ringOffsets[0] = 0;\n partOffsets[0] = 0;\n let ringIndex = 1;\n let partIndex = 1;\n for (const polygon of polygons) {\n for (const ring of polygon) {\n ringOffsets[ringIndex] = ringOffsets[ringIndex - 1] + ring.length;\n ringIndex++;\n }\n partOffsets[partIndex] = partOffsets[partIndex - 1] + polygon.length;\n partIndex++;\n }\n const offsetBuffer = new Uint32Array(vertexBuffer.length / 2);\n for (let i = 0; i < offsetBuffer.length; i++) {\n offsetBuffer[i] = i;\n }\n\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.MULTIPOLYGON,\n VertexBufferType.VEC_2,\n {\n geometryOffsets: new Uint32Array([0, polygons.length]),\n partOffsets,\n ringOffsets,\n },\n offsetBuffer,\n vertexBuffer,\n );\n}\n\nexport function encodeMultiPolygonGeometryVectorWithMortonOffsets(polygons: [number, number][][][]): GeometryVector {\n const vertexBuffer = new Int32Array(\n polygons.flatMap((polygon) => polygon.flatMap((ring) => ring.flatMap((point) => encode(point[0], point[1])))),\n );\n const ringOffsets = new Uint32Array(polygons.reduce((sum, polygon) => sum + polygon.length, 0) + 1);\n const partOffsets = new Uint32Array(polygons.length + 1);\n ringOffsets[0] = 0;\n partOffsets[0] = 0;\n let ringIndex = 1;\n let partIndex = 1;\n for (const polygon of polygons) {\n for (const ring of polygon) {\n ringOffsets[ringIndex] = ringOffsets[ringIndex - 1] + ring.length;\n ringIndex++;\n }\n partOffsets[partIndex] = partOffsets[partIndex - 1] + polygon.length;\n partIndex++;\n }\n const offsetBuffer = new Uint32Array(vertexBuffer.length);\n for (let i = 0; i < offsetBuffer.length; i++) {\n offsetBuffer[i] = i;\n }\n\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.MULTIPOLYGON,\n VertexBufferType.MORTON,\n {\n geometryOffsets: new Uint32Array([0, polygons.length]),\n partOffsets,\n ringOffsets,\n },\n offsetBuffer,\n vertexBuffer,\n DEFAULT_MORTON_SETTINGS,\n );\n}\n"]}
@@ -3,5 +3,5 @@ export declare function encodeDoubleLE(values: Float64Array): Uint8Array;
3
3
  export declare function encodeBooleanRle(values: boolean[]): Uint8Array;
4
4
  export declare function encodeByteRle(values: Uint8Array): Uint8Array;
5
5
  export declare function encodeStrings(strings: string[]): Uint8Array;
6
- export declare function createStringLengths(strings: string[]): Int32Array;
6
+ export declare function createStringLengths(strings: string[]): Uint32Array;
7
7
  export declare function concatenateBuffers(...buffers: Uint8Array[]): Uint8Array;
@@ -87,7 +87,7 @@ export function encodeStrings(strings) {
87
87
  return result;
88
88
  }
89
89
  export function createStringLengths(strings) {
90
- const lengths = new Int32Array(strings.length);
90
+ const lengths = new Uint32Array(strings.length);
91
91
  const encoder = new TextEncoder();
92
92
  for (let i = 0; i < strings.length; i++) {
93
93
  lengths[i] = encoder.encode(strings[i]).length;
@@ -1 +1 @@
1
- {"version":3,"file":"encodingUtils.js","sourceRoot":"","sources":["../../src/encoding/encodingUtils.ts"],"names":[],"mappings":"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","sourcesContent":["export function encodeFloatsLE(values: Float32Array): Uint8Array {\n const buffer = new Uint8Array(values.length * 4);\n const view = new DataView(buffer.buffer);\n\n for (let i = 0; i < values.length; i++) {\n view.setFloat32(i * 4, values[i], true);\n }\n\n return buffer;\n}\n\nexport function encodeDoubleLE(values: Float64Array): Uint8Array {\n const buffer = new Uint8Array(values.length * Float64Array.BYTES_PER_ELEMENT);\n const view = new DataView(buffer.buffer);\n\n for (let i = 0; i < values.length; i++) {\n view.setFloat64(i * Float64Array.BYTES_PER_ELEMENT, values[i], true);\n }\n\n return buffer;\n}\n\nexport function encodeBooleanRle(values: boolean[]): Uint8Array {\n // Pack booleans into bytes (8 booleans per byte)\n const numBytes = Math.ceil(values.length / 8);\n const packed = new Uint8Array(numBytes);\n\n for (let i = 0; i < values.length; i++) {\n if (values[i]) {\n const byteIndex = Math.floor(i / 8);\n const bitIndex = i % 8;\n packed[byteIndex] |= 1 << bitIndex;\n }\n }\n\n const result = new Uint8Array(1 + numBytes);\n result[0] = 256 - numBytes;\n result.set(packed, 1);\n\n return result;\n}\n\nexport function encodeByteRle(values: Uint8Array): Uint8Array {\n const result: number[] = [];\n let i = 0;\n\n while (i < values.length) {\n const currentByte = values[i];\n let runLength = 1;\n\n while (i + runLength < values.length && values[i + runLength] === currentByte && runLength < 131) {\n runLength++;\n }\n\n if (runLength >= 3) {\n const header = runLength - 3;\n result.push(Math.min(header, 0x7f));\n result.push(currentByte);\n i += runLength;\n } else {\n const literalStart = i;\n while (i < values.length) {\n let nextRunLength = 1;\n if (i + 1 < values.length) {\n while (\n i + nextRunLength < values.length &&\n values[i + nextRunLength] === values[i] &&\n nextRunLength < 3\n ) {\n nextRunLength++;\n }\n }\n\n if (nextRunLength >= 3) {\n break;\n }\n i++;\n\n if (i - literalStart >= 128) {\n break;\n }\n }\n\n const numLiterals = i - literalStart;\n const header = 256 - numLiterals;\n result.push(header);\n for (let j = literalStart; j < i; j++) {\n result.push(values[j]);\n }\n }\n }\n\n return new Uint8Array(result);\n}\n\nexport function encodeStrings(strings: string[]): Uint8Array {\n const encoder = new TextEncoder();\n const encoded = strings.map((s) => encoder.encode(s));\n const totalLength = encoded.reduce((sum, arr) => sum + arr.length, 0);\n const result = new Uint8Array(totalLength);\n let offset = 0;\n for (const arr of encoded) {\n result.set(arr, offset);\n offset += arr.length;\n }\n return result;\n}\n\nexport function createStringLengths(strings: string[]): Int32Array {\n const lengths = new Int32Array(strings.length);\n const encoder = new TextEncoder();\n for (let i = 0; i < strings.length; i++) {\n lengths[i] = encoder.encode(strings[i]).length;\n }\n return lengths;\n}\n\nexport function concatenateBuffers(...buffers: Uint8Array[]): Uint8Array {\n const totalLength = buffers.reduce((sum, buf) => sum + buf.length, 0);\n const result = new Uint8Array(totalLength);\n let offset = 0;\n\n for (const buffer of buffers) {\n result.set(buffer, offset);\n offset += buffer.length;\n }\n\n return result;\n}\n"]}
1
+ {"version":3,"file":"encodingUtils.js","sourceRoot":"","sources":["../../src/encoding/encodingUtils.ts"],"names":[],"mappings":"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","sourcesContent":["export function encodeFloatsLE(values: Float32Array): Uint8Array {\n const buffer = new Uint8Array(values.length * 4);\n const view = new DataView(buffer.buffer);\n\n for (let i = 0; i < values.length; i++) {\n view.setFloat32(i * 4, values[i], true);\n }\n\n return buffer;\n}\n\nexport function encodeDoubleLE(values: Float64Array): Uint8Array {\n const buffer = new Uint8Array(values.length * Float64Array.BYTES_PER_ELEMENT);\n const view = new DataView(buffer.buffer);\n\n for (let i = 0; i < values.length; i++) {\n view.setFloat64(i * Float64Array.BYTES_PER_ELEMENT, values[i], true);\n }\n\n return buffer;\n}\n\nexport function encodeBooleanRle(values: boolean[]): Uint8Array {\n // Pack booleans into bytes (8 booleans per byte)\n const numBytes = Math.ceil(values.length / 8);\n const packed = new Uint8Array(numBytes);\n\n for (let i = 0; i < values.length; i++) {\n if (values[i]) {\n const byteIndex = Math.floor(i / 8);\n const bitIndex = i % 8;\n packed[byteIndex] |= 1 << bitIndex;\n }\n }\n\n const result = new Uint8Array(1 + numBytes);\n result[0] = 256 - numBytes;\n result.set(packed, 1);\n\n return result;\n}\n\nexport function encodeByteRle(values: Uint8Array): Uint8Array {\n const result: number[] = [];\n let i = 0;\n\n while (i < values.length) {\n const currentByte = values[i];\n let runLength = 1;\n\n while (i + runLength < values.length && values[i + runLength] === currentByte && runLength < 131) {\n runLength++;\n }\n\n if (runLength >= 3) {\n const header = runLength - 3;\n result.push(Math.min(header, 0x7f));\n result.push(currentByte);\n i += runLength;\n } else {\n const literalStart = i;\n while (i < values.length) {\n let nextRunLength = 1;\n if (i + 1 < values.length) {\n while (\n i + nextRunLength < values.length &&\n values[i + nextRunLength] === values[i] &&\n nextRunLength < 3\n ) {\n nextRunLength++;\n }\n }\n\n if (nextRunLength >= 3) {\n break;\n }\n i++;\n\n if (i - literalStart >= 128) {\n break;\n }\n }\n\n const numLiterals = i - literalStart;\n const header = 256 - numLiterals;\n result.push(header);\n for (let j = literalStart; j < i; j++) {\n result.push(values[j]);\n }\n }\n }\n\n return new Uint8Array(result);\n}\n\nexport function encodeStrings(strings: string[]): Uint8Array {\n const encoder = new TextEncoder();\n const encoded = strings.map((s) => encoder.encode(s));\n const totalLength = encoded.reduce((sum, arr) => sum + arr.length, 0);\n const result = new Uint8Array(totalLength);\n let offset = 0;\n for (const arr of encoded) {\n result.set(arr, offset);\n offset += arr.length;\n }\n return result;\n}\n\nexport function createStringLengths(strings: string[]): Uint32Array {\n const lengths = new Uint32Array(strings.length);\n const encoder = new TextEncoder();\n for (let i = 0; i < strings.length; i++) {\n lengths[i] = encoder.encode(strings[i]).length;\n }\n return lengths;\n}\n\nexport function concatenateBuffers(...buffers: Uint8Array[]): Uint8Array {\n const totalLength = buffers.reduce((sum, buf) => sum + buf.length, 0);\n const result = new Uint8Array(totalLength);\n let offset = 0;\n\n for (const buffer of buffers) {\n result.set(buffer, offset);\n offset += buffer.length;\n }\n\n return result;\n}\n"]}
@@ -1,19 +1,18 @@
1
- import type { Int32Buf, Uint8Buf } from "../decoding/fastPforShared";
2
1
  /**
3
2
  * Internal workspace for the FastPFOR encoder.
4
3
  * Exposed so callers can avoid allocations.
5
4
  * Use one workspace per concurrent encode call.
6
5
  */
7
6
  export type FastPforEncoderWorkspace = {
8
- dataToBePacked: Array<Int32Array | undefined>;
7
+ dataToBePacked: Array<Uint32Array | undefined>;
9
8
  dataPointers: Int32Array;
10
- byteContainer: Uint8Buf;
9
+ byteContainer: Uint8Array;
11
10
  bitWidthFrequencies: Int32Array;
12
11
  bestBitWidthPlan: Int32Array;
13
12
  };
14
- export declare function fastPack32(inValues: Int32Array, inPos: number, out: Int32Buf, outPos: number, bitWidth: number): void;
13
+ export declare function fastPack32(inValues: Uint32Array, inPos: number, out: Uint32Array, outPos: number, bitWidth: number): void;
15
14
  export declare function createFastPforEncoderWorkspace(): FastPforEncoderWorkspace;
16
15
  /**
17
16
  * Encodes an int32 stream using the FastPFOR wire format (pages + VByte tail).
18
17
  */
19
- export declare function encodeFastPforInt32WithWorkspace(values: Int32Array, workspace: FastPforEncoderWorkspace): Int32Buf;
18
+ export declare function encodeFastPforInt32WithWorkspace(values: Uint32Array, workspace: FastPforEncoderWorkspace): Uint32Array;
@@ -15,7 +15,7 @@ function ensureInt32Capacity(buffer, requiredLength) {
15
15
  while (newLength < requiredLength) {
16
16
  newLength *= 2;
17
17
  }
18
- const next = new Int32Array(newLength);
18
+ const next = new Uint32Array(newLength);
19
19
  next.set(buffer);
20
20
  return next;
21
21
  }
@@ -65,7 +65,7 @@ export function fastPack32(inValues, inPos, out, outPos, bitWidth) {
65
65
  export function createFastPforEncoderWorkspace() {
66
66
  const dataToBePacked = new Array(BIT_WIDTH_SLOTS);
67
67
  for (let k = 1; k < BIT_WIDTH_SLOTS; k++) {
68
- dataToBePacked[k] = new Int32Array(INITIAL_PACKED_BUFFER_SIZE_WORDS);
68
+ dataToBePacked[k] = new Uint32Array(INITIAL_PACKED_BUFFER_SIZE_WORDS);
69
69
  }
70
70
  return {
71
71
  dataToBePacked,
@@ -124,7 +124,7 @@ function ensureExceptionValuesCapacity(dataToBePacked, dataPointers, exceptionBi
124
124
  if (!currentExceptionValues || needed >= currentExceptionValues.length) {
125
125
  let newSize = 2 * needed;
126
126
  newSize = roundUpToMultipleOf32(newSize);
127
- const next = new Int32Array(newSize);
127
+ const next = new Uint32Array(newSize);
128
128
  if (currentExceptionValues)
129
129
  next.set(currentExceptionValues);
130
130
  dataToBePacked[exceptionBitWidth] = next;
@@ -301,7 +301,7 @@ function encodeVByte(inValues, inLength, state, workspace) {
301
301
  * Encodes an int32 stream using the FastPFOR wire format (pages + VByte tail).
302
302
  */
303
303
  export function encodeFastPforInt32WithWorkspace(values, workspace) {
304
- const state = { inPos: 0, outPos: 0, out: new Int32Array(values.length + 1024) };
304
+ const state = { inPos: 0, outPos: 0, out: new Uint32Array(values.length + 1024) };
305
305
  encode(values, values.length, state, workspace);
306
306
  const remaining = values.length - state.inPos;
307
307
  encodeVByte(values, remaining, state, workspace);
@@ -1 +1 @@
1
- {"version":3,"file":"fastPforEncoder.js","sourceRoot":"","sources":["../../src/encoding/fastPforEncoder.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Int32Buf, Uint8Buf } from \"../decoding/fastPforShared\";\nimport {\n MASKS,\n DEFAULT_PAGE_SIZE,\n BLOCK_SIZE,\n greatestMultiple,\n roundUpToMultipleOf32,\n normalizePageSize,\n} from \"../decoding/fastPforShared\";\n\nconst EXCEPTION_OVERHEAD_BITS = 8;\nconst MAX_BIT_WIDTH = 32;\nconst BIT_WIDTH_SLOTS = MAX_BIT_WIDTH + 1;\nconst PAGE_SIZE = normalizePageSize(DEFAULT_PAGE_SIZE);\nconst INITIAL_PACKED_BUFFER_SIZE_WORDS = (PAGE_SIZE / 32) * 4;\nconst BYTE_CONTAINER_SIZE = ((3 * PAGE_SIZE) / BLOCK_SIZE + PAGE_SIZE) | 0;\n\nfunction requiredBits(value: number): number {\n return 32 - Math.clz32(value >>> 0);\n}\n\nfunction ensureInt32Capacity(buffer: Int32Buf, requiredLength: number): Int32Buf {\n if (requiredLength <= buffer.length) return buffer;\n\n let newLength = buffer.length === 0 ? 1 : buffer.length;\n while (newLength < requiredLength) {\n newLength *= 2;\n }\n\n const next = new Int32Array(newLength) as Int32Buf;\n next.set(buffer);\n return next;\n}\n\nfunction ensureUint8Capacity(buffer: Uint8Buf, requiredLength: number): Uint8Buf {\n if (requiredLength <= buffer.length) return buffer;\n\n let newLength = buffer.length === 0 ? 1 : buffer.length;\n while (newLength < requiredLength) {\n newLength *= 2;\n }\n\n const next = new Uint8Array(newLength) as Uint8Buf;\n next.set(buffer);\n return next;\n}\n\n/**\n * Internal workspace for the FastPFOR encoder.\n * Exposed so callers can avoid allocations.\n * Use one workspace per concurrent encode call.\n */\nexport type FastPforEncoderWorkspace = {\n dataToBePacked: Array<Int32Array | undefined>;\n dataPointers: Int32Array;\n byteContainer: Uint8Buf;\n bitWidthFrequencies: Int32Array;\n bestBitWidthPlan: Int32Array;\n};\n\nexport function fastPack32(inValues: Int32Array, inPos: number, out: Int32Buf, outPos: number, bitWidth: number): void {\n if (bitWidth === 0) return;\n if (bitWidth === 32) {\n out.set(inValues.subarray(inPos, inPos + 32), outPos);\n return;\n }\n\n const mask = MASKS[bitWidth] >>> 0;\n let outputWordIndex = outPos;\n let bitOffset = 0;\n let currentWord = 0;\n\n for (let i = 0; i < 32; i++) {\n const value = (inValues[inPos + i] >>> 0) & mask;\n\n if (bitOffset + bitWidth <= 32) {\n currentWord |= value << bitOffset;\n bitOffset += bitWidth;\n\n if (bitOffset === 32) {\n out[outputWordIndex++] = currentWord | 0;\n bitOffset = 0;\n currentWord = 0;\n }\n } else {\n const lowBits = 32 - bitOffset;\n const lowMask = MASKS[lowBits] >>> 0;\n currentWord |= (value & lowMask) << bitOffset;\n out[outputWordIndex++] = currentWord | 0;\n currentWord = value >>> lowBits;\n bitOffset = bitWidth - lowBits;\n }\n }\n}\n\nexport function createFastPforEncoderWorkspace(): FastPforEncoderWorkspace {\n const dataToBePacked: Array<Int32Array | undefined> = new Array(BIT_WIDTH_SLOTS);\n for (let k = 1; k < BIT_WIDTH_SLOTS; k++) {\n dataToBePacked[k] = new Int32Array(INITIAL_PACKED_BUFFER_SIZE_WORDS);\n }\n\n return {\n dataToBePacked,\n dataPointers: new Int32Array(BIT_WIDTH_SLOTS),\n byteContainer: new Uint8Array(BYTE_CONTAINER_SIZE) as Uint8Buf,\n bitWidthFrequencies: new Int32Array(BIT_WIDTH_SLOTS),\n bestBitWidthPlan: new Int32Array(3),\n };\n}\n\nfunction computeBestBitWidthPlan(inValues: Int32Array, pos: number, workspace: FastPforEncoderWorkspace): void {\n const bitWidthFrequencies = workspace.bitWidthFrequencies;\n const bestBitWidthPlan = workspace.bestBitWidthPlan;\n bitWidthFrequencies.fill(0);\n for (let k = pos, kEnd = pos + BLOCK_SIZE; k < kEnd; k++) {\n bitWidthFrequencies[requiredBits(inValues[k])]++;\n }\n\n let maxBitWidth = MAX_BIT_WIDTH;\n while (bitWidthFrequencies[maxBitWidth] === 0) maxBitWidth--;\n\n let bestBitWidth = maxBitWidth;\n let bestCost = maxBitWidth * BLOCK_SIZE;\n let exceptionCount = 0;\n let bestExceptionCount = exceptionCount;\n\n for (let candidateBitWidth = maxBitWidth - 1; candidateBitWidth >= 0; candidateBitWidth--) {\n exceptionCount += bitWidthFrequencies[candidateBitWidth + 1];\n if (exceptionCount === BLOCK_SIZE) break;\n\n let candidateCost =\n exceptionCount * EXCEPTION_OVERHEAD_BITS +\n exceptionCount * (maxBitWidth - candidateBitWidth) +\n candidateBitWidth * BLOCK_SIZE +\n 8;\n if (maxBitWidth - candidateBitWidth === 1) candidateCost -= exceptionCount;\n\n if (candidateCost < bestCost) {\n bestCost = candidateCost;\n bestBitWidth = candidateBitWidth;\n bestExceptionCount = exceptionCount;\n }\n }\n\n bestBitWidthPlan[0] = bestBitWidth;\n bestBitWidthPlan[1] = bestExceptionCount;\n bestBitWidthPlan[2] = maxBitWidth;\n}\n\nfunction writeByte(workspace: FastPforEncoderWorkspace, byteContainerPos: number, byteValue: number): number {\n if (byteContainerPos >= workspace.byteContainer.length) {\n workspace.byteContainer = ensureUint8Capacity(workspace.byteContainer, byteContainerPos + 1);\n }\n workspace.byteContainer[byteContainerPos] = byteValue & 0xff;\n return byteContainerPos + 1;\n}\n\nfunction ensureExceptionValuesCapacity(\n dataToBePacked: Array<Int32Array | undefined>,\n dataPointers: Int32Array,\n exceptionBitWidth: number,\n exceptionCount: number,\n): void {\n if (exceptionBitWidth === 1) return;\n\n const needed = dataPointers[exceptionBitWidth] + exceptionCount;\n const currentExceptionValues = dataToBePacked[exceptionBitWidth];\n if (!currentExceptionValues || needed >= currentExceptionValues.length) {\n let newSize = 2 * needed;\n newSize = roundUpToMultipleOf32(newSize);\n const next = new Int32Array(newSize);\n if (currentExceptionValues) next.set(currentExceptionValues);\n dataToBePacked[exceptionBitWidth] = next;\n }\n}\n\nfunction writeBlockHeader(\n workspace: FastPforEncoderWorkspace,\n byteContainerPos: number,\n bitWidth: number,\n exceptionCount: number,\n maxBitWidth: number,\n): number {\n byteContainerPos = writeByte(workspace, byteContainerPos, bitWidth);\n byteContainerPos = writeByte(workspace, byteContainerPos, exceptionCount);\n if (exceptionCount > 0) {\n byteContainerPos = writeByte(workspace, byteContainerPos, maxBitWidth);\n }\n return byteContainerPos;\n}\n\nfunction recordBlockExceptions(\n workspace: FastPforEncoderWorkspace,\n inValues: Int32Array,\n blockPos: number,\n bitWidth: number,\n exceptionCount: number,\n exceptionBitWidth: number,\n byteContainerPos: number,\n): number {\n if (exceptionCount === 0) return byteContainerPos;\n\n const dataToBePacked = workspace.dataToBePacked;\n const dataPointers = workspace.dataPointers;\n\n ensureExceptionValuesCapacity(dataToBePacked, dataPointers, exceptionBitWidth, exceptionCount);\n\n for (let k = 0; k < BLOCK_SIZE; k++) {\n const value = inValues[blockPos + k] >>> 0;\n if (value >>> bitWidth !== 0) {\n byteContainerPos = writeByte(workspace, byteContainerPos, k);\n if (exceptionBitWidth !== 1) {\n const exceptionValues = dataToBePacked[exceptionBitWidth];\n exceptionValues[dataPointers[exceptionBitWidth]++] = (value >>> bitWidth) | 0;\n }\n }\n }\n\n return byteContainerPos;\n}\n\ntype EncodeState = { inPos: number; out: Int32Buf; outPos: number };\n\nfunction packBlock(inValues: Int32Array, blockPos: number, bitWidth: number, state: EncodeState): void {\n for (let k = 0; k < BLOCK_SIZE; k += 32) {\n state.out = ensureInt32Capacity(state.out, state.outPos + bitWidth);\n fastPack32(inValues, blockPos + k, state.out, state.outPos, bitWidth);\n state.outPos += bitWidth;\n }\n}\n\nfunction padByteContainerToInt32(workspace: FastPforEncoderWorkspace, byteContainerPos: number): number {\n while ((byteContainerPos & 3) !== 0) {\n byteContainerPos = writeByte(workspace, byteContainerPos, 0);\n }\n return byteContainerPos;\n}\n\nfunction writeByteContainerInts(\n workspace: FastPforEncoderWorkspace,\n state: EncodeState,\n byteContainerPos: number,\n): void {\n const howManyInts = byteContainerPos / 4;\n state.out = ensureInt32Capacity(state.out, state.outPos + howManyInts);\n\n const byteContainer = workspace.byteContainer;\n for (let i = 0; i < howManyInts; i++) {\n const base = i * 4;\n const packedWord =\n byteContainer[base] |\n (byteContainer[base + 1] << 8) |\n (byteContainer[base + 2] << 16) |\n (byteContainer[base + 3] << 24) |\n 0;\n state.out[state.outPos + i] = packedWord;\n }\n\n state.outPos += howManyInts;\n}\n\nfunction computeExceptionBitmap(dataPointers: Int32Array): number {\n let bitmap = 0;\n for (let k = 2; k <= MAX_BIT_WIDTH; k++) {\n if (dataPointers[k] !== 0) {\n bitmap |= k === MAX_BIT_WIDTH ? 0x80000000 : 1 << (k - 1);\n }\n }\n return bitmap;\n}\n\nfunction writeExceptionStreams(workspace: FastPforEncoderWorkspace, state: EncodeState): void {\n const dataPointers = workspace.dataPointers;\n const dataToBePacked = workspace.dataToBePacked;\n\n const bitmap = computeExceptionBitmap(dataPointers);\n state.out = ensureInt32Capacity(state.out, state.outPos + 1);\n state.out[state.outPos++] = bitmap;\n\n for (let k = 2; k <= MAX_BIT_WIDTH; k++) {\n const size = dataPointers[k];\n if (size !== 0) {\n state.out = ensureInt32Capacity(state.out, state.outPos + 1);\n state.out[state.outPos++] = size | 0;\n\n let j = 0;\n for (; j < size; j += 32) {\n const exceptionValues = dataToBePacked[k];\n state.out = ensureInt32Capacity(state.out, state.outPos + k);\n fastPack32(exceptionValues, j, state.out, state.outPos, k);\n state.outPos += k;\n }\n\n const overflow = j - size;\n state.outPos -= (overflow * k) >>> 5;\n }\n }\n}\n\nfunction encodePage(\n inValues: Int32Array,\n thisSize: number,\n state: EncodeState,\n workspace: FastPforEncoderWorkspace,\n): void {\n const headerPos = state.outPos;\n state.out = ensureInt32Capacity(state.out, headerPos + 1);\n state.outPos = (state.outPos + 1) | 0;\n\n const dataPointers = workspace.dataPointers;\n dataPointers.fill(0);\n\n let byteContainerPos = 0;\n\n let tmpInPos = state.inPos;\n const finalInPos = tmpInPos + thisSize - BLOCK_SIZE;\n\n for (; tmpInPos <= finalInPos; tmpInPos += BLOCK_SIZE) {\n computeBestBitWidthPlan(inValues, tmpInPos, workspace);\n\n const bestBitWidthPlan = workspace.bestBitWidthPlan;\n const bitWidth = bestBitWidthPlan[0];\n const exceptionCount = bestBitWidthPlan[1];\n const maxBitWidth = bestBitWidthPlan[2];\n\n const exceptionBitWidth = exceptionCount > 0 ? maxBitWidth - bitWidth : 0;\n byteContainerPos = writeBlockHeader(workspace, byteContainerPos, bitWidth, exceptionCount, maxBitWidth);\n byteContainerPos = recordBlockExceptions(\n workspace,\n inValues,\n tmpInPos,\n bitWidth,\n exceptionCount,\n exceptionBitWidth,\n byteContainerPos,\n );\n\n packBlock(inValues, tmpInPos, bitWidth, state);\n }\n\n const pageEndOutPos = state.outPos;\n state.inPos = tmpInPos;\n state.out[headerPos] = (pageEndOutPos - headerPos) | 0;\n\n const byteSize = byteContainerPos;\n byteContainerPos = padByteContainerToInt32(workspace, byteContainerPos);\n\n state.out = ensureInt32Capacity(state.out, state.outPos + 1);\n state.out[state.outPos++] = byteSize | 0;\n\n writeByteContainerInts(workspace, state, byteContainerPos);\n\n writeExceptionStreams(workspace, state);\n}\n\nfunction encodeAlignedPages(\n inValues: Int32Array,\n inLength: number,\n state: EncodeState,\n workspace: FastPforEncoderWorkspace,\n): void {\n const alignedLength = greatestMultiple(inLength, BLOCK_SIZE);\n const finalInPos = state.inPos + alignedLength;\n\n while (state.inPos !== finalInPos) {\n const thisSize = Math.min(PAGE_SIZE, finalInPos - state.inPos);\n encodePage(inValues, thisSize, state, workspace);\n }\n}\n\nfunction encode(inValues: Int32Array, inLength: number, state: EncodeState, workspace: FastPforEncoderWorkspace): void {\n const alignedLength = greatestMultiple(inLength, BLOCK_SIZE);\n state.out = ensureInt32Capacity(state.out, state.outPos + 1);\n state.out[state.outPos++] = alignedLength;\n\n if (alignedLength === 0) return;\n encodeAlignedPages(inValues, alignedLength, state, workspace);\n}\n\n/**\n * VByte encoding for FastPFOR tail values (MSB=1 terminator).\n * Note: Inverts standard Protobuf Varint (MSB=0 terminator), so we cannot reuse generic methods.\n */\nfunction encodeVByte(\n inValues: Int32Array,\n inLength: number,\n state: EncodeState,\n workspace: FastPforEncoderWorkspace,\n): void {\n if (inLength === 0) return;\n\n const requiredBytes = inLength * 5 + 3;\n workspace.byteContainer = ensureUint8Capacity(workspace.byteContainer, requiredBytes);\n\n const start = state.inPos;\n let bytePos = 0;\n for (let k = start; k < start + inLength; k++) {\n let value = inValues[k] >>> 0;\n while (value >= 0x80) {\n workspace.byteContainer[bytePos++] = value & 0x7f;\n value >>>= 7;\n }\n workspace.byteContainer[bytePos++] = (value | 0x80) & 0xff;\n }\n\n while ((bytePos & 3) !== 0) workspace.byteContainer[bytePos++] = 0;\n\n const intsToWrite = bytePos / 4;\n state.out = ensureInt32Capacity(state.out, state.outPos + intsToWrite);\n\n let outIdx = state.outPos;\n for (let i = 0; i < bytePos; i += 4) {\n const packedWord =\n workspace.byteContainer[i] |\n (workspace.byteContainer[i + 1] << 8) |\n (workspace.byteContainer[i + 2] << 16) |\n (workspace.byteContainer[i + 3] << 24) |\n 0;\n state.out[outIdx++] = packedWord;\n }\n\n state.outPos = outIdx;\n state.inPos = (state.inPos + inLength) | 0;\n}\n\n/**\n * Encodes an int32 stream using the FastPFOR wire format (pages + VByte tail).\n */\nexport function encodeFastPforInt32WithWorkspace(values: Int32Array, workspace: FastPforEncoderWorkspace): Int32Buf {\n const state: EncodeState = { inPos: 0, outPos: 0, out: new Int32Array(values.length + 1024) as Int32Buf };\n\n encode(values, values.length, state, workspace);\n\n const remaining = values.length - state.inPos;\n encodeVByte(values, remaining, state, workspace);\n\n return state.out.subarray(0, state.outPos);\n}\n"]}
1
+ {"version":3,"file":"fastPforEncoder.js","sourceRoot":"","sources":["../../src/encoding/fastPforEncoder.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n MASKS,\n DEFAULT_PAGE_SIZE,\n BLOCK_SIZE,\n greatestMultiple,\n roundUpToMultipleOf32,\n normalizePageSize,\n} from \"../decoding/fastPforShared\";\n\nconst EXCEPTION_OVERHEAD_BITS = 8;\nconst MAX_BIT_WIDTH = 32;\nconst BIT_WIDTH_SLOTS = MAX_BIT_WIDTH + 1;\nconst PAGE_SIZE = normalizePageSize(DEFAULT_PAGE_SIZE);\nconst INITIAL_PACKED_BUFFER_SIZE_WORDS = (PAGE_SIZE / 32) * 4;\nconst BYTE_CONTAINER_SIZE = ((3 * PAGE_SIZE) / BLOCK_SIZE + PAGE_SIZE) | 0;\n\nfunction requiredBits(value: number): number {\n return 32 - Math.clz32(value >>> 0);\n}\n\nfunction ensureInt32Capacity(buffer: Uint32Array, requiredLength: number): Uint32Array {\n if (requiredLength <= buffer.length) return buffer;\n\n let newLength = buffer.length === 0 ? 1 : buffer.length;\n while (newLength < requiredLength) {\n newLength *= 2;\n }\n\n const next = new Uint32Array(newLength);\n next.set(buffer);\n return next;\n}\n\nfunction ensureUint8Capacity(buffer: Uint8Array, requiredLength: number): Uint8Array {\n if (requiredLength <= buffer.length) return buffer;\n\n let newLength = buffer.length === 0 ? 1 : buffer.length;\n while (newLength < requiredLength) {\n newLength *= 2;\n }\n\n const next = new Uint8Array(newLength);\n next.set(buffer);\n return next;\n}\n\n/**\n * Internal workspace for the FastPFOR encoder.\n * Exposed so callers can avoid allocations.\n * Use one workspace per concurrent encode call.\n */\nexport type FastPforEncoderWorkspace = {\n dataToBePacked: Array<Uint32Array | undefined>;\n dataPointers: Int32Array;\n byteContainer: Uint8Array;\n bitWidthFrequencies: Int32Array;\n bestBitWidthPlan: Int32Array;\n};\n\nexport function fastPack32(\n inValues: Uint32Array,\n inPos: number,\n out: Uint32Array,\n outPos: number,\n bitWidth: number,\n): void {\n if (bitWidth === 0) return;\n if (bitWidth === 32) {\n out.set(inValues.subarray(inPos, inPos + 32), outPos);\n return;\n }\n\n const mask = MASKS[bitWidth] >>> 0;\n let outputWordIndex = outPos;\n let bitOffset = 0;\n let currentWord = 0;\n\n for (let i = 0; i < 32; i++) {\n const value = (inValues[inPos + i] >>> 0) & mask;\n\n if (bitOffset + bitWidth <= 32) {\n currentWord |= value << bitOffset;\n bitOffset += bitWidth;\n\n if (bitOffset === 32) {\n out[outputWordIndex++] = currentWord | 0;\n bitOffset = 0;\n currentWord = 0;\n }\n } else {\n const lowBits = 32 - bitOffset;\n const lowMask = MASKS[lowBits] >>> 0;\n currentWord |= (value & lowMask) << bitOffset;\n out[outputWordIndex++] = currentWord | 0;\n currentWord = value >>> lowBits;\n bitOffset = bitWidth - lowBits;\n }\n }\n}\n\nexport function createFastPforEncoderWorkspace(): FastPforEncoderWorkspace {\n const dataToBePacked: Array<Uint32Array | undefined> = new Array(BIT_WIDTH_SLOTS);\n for (let k = 1; k < BIT_WIDTH_SLOTS; k++) {\n dataToBePacked[k] = new Uint32Array(INITIAL_PACKED_BUFFER_SIZE_WORDS);\n }\n\n return {\n dataToBePacked,\n dataPointers: new Int32Array(BIT_WIDTH_SLOTS),\n byteContainer: new Uint8Array(BYTE_CONTAINER_SIZE),\n bitWidthFrequencies: new Int32Array(BIT_WIDTH_SLOTS),\n bestBitWidthPlan: new Int32Array(3),\n };\n}\n\nfunction computeBestBitWidthPlan(inValues: Uint32Array, pos: number, workspace: FastPforEncoderWorkspace): void {\n const bitWidthFrequencies = workspace.bitWidthFrequencies;\n const bestBitWidthPlan = workspace.bestBitWidthPlan;\n bitWidthFrequencies.fill(0);\n for (let k = pos, kEnd = pos + BLOCK_SIZE; k < kEnd; k++) {\n bitWidthFrequencies[requiredBits(inValues[k])]++;\n }\n\n let maxBitWidth = MAX_BIT_WIDTH;\n while (bitWidthFrequencies[maxBitWidth] === 0) maxBitWidth--;\n\n let bestBitWidth = maxBitWidth;\n let bestCost = maxBitWidth * BLOCK_SIZE;\n let exceptionCount = 0;\n let bestExceptionCount = exceptionCount;\n\n for (let candidateBitWidth = maxBitWidth - 1; candidateBitWidth >= 0; candidateBitWidth--) {\n exceptionCount += bitWidthFrequencies[candidateBitWidth + 1];\n if (exceptionCount === BLOCK_SIZE) break;\n\n let candidateCost =\n exceptionCount * EXCEPTION_OVERHEAD_BITS +\n exceptionCount * (maxBitWidth - candidateBitWidth) +\n candidateBitWidth * BLOCK_SIZE +\n 8;\n if (maxBitWidth - candidateBitWidth === 1) candidateCost -= exceptionCount;\n\n if (candidateCost < bestCost) {\n bestCost = candidateCost;\n bestBitWidth = candidateBitWidth;\n bestExceptionCount = exceptionCount;\n }\n }\n\n bestBitWidthPlan[0] = bestBitWidth;\n bestBitWidthPlan[1] = bestExceptionCount;\n bestBitWidthPlan[2] = maxBitWidth;\n}\n\nfunction writeByte(workspace: FastPforEncoderWorkspace, byteContainerPos: number, byteValue: number): number {\n if (byteContainerPos >= workspace.byteContainer.length) {\n workspace.byteContainer = ensureUint8Capacity(workspace.byteContainer, byteContainerPos + 1);\n }\n workspace.byteContainer[byteContainerPos] = byteValue & 0xff;\n return byteContainerPos + 1;\n}\n\nfunction ensureExceptionValuesCapacity(\n dataToBePacked: Array<Uint32Array | undefined>,\n dataPointers: Int32Array,\n exceptionBitWidth: number,\n exceptionCount: number,\n): void {\n if (exceptionBitWidth === 1) return;\n\n const needed = dataPointers[exceptionBitWidth] + exceptionCount;\n const currentExceptionValues = dataToBePacked[exceptionBitWidth];\n if (!currentExceptionValues || needed >= currentExceptionValues.length) {\n let newSize = 2 * needed;\n newSize = roundUpToMultipleOf32(newSize);\n const next = new Uint32Array(newSize);\n if (currentExceptionValues) next.set(currentExceptionValues);\n dataToBePacked[exceptionBitWidth] = next;\n }\n}\n\nfunction writeBlockHeader(\n workspace: FastPforEncoderWorkspace,\n byteContainerPos: number,\n bitWidth: number,\n exceptionCount: number,\n maxBitWidth: number,\n): number {\n byteContainerPos = writeByte(workspace, byteContainerPos, bitWidth);\n byteContainerPos = writeByte(workspace, byteContainerPos, exceptionCount);\n if (exceptionCount > 0) {\n byteContainerPos = writeByte(workspace, byteContainerPos, maxBitWidth);\n }\n return byteContainerPos;\n}\n\nfunction recordBlockExceptions(\n workspace: FastPforEncoderWorkspace,\n inValues: Uint32Array,\n blockPos: number,\n bitWidth: number,\n exceptionCount: number,\n exceptionBitWidth: number,\n byteContainerPos: number,\n): number {\n if (exceptionCount === 0) return byteContainerPos;\n\n const dataToBePacked = workspace.dataToBePacked;\n const dataPointers = workspace.dataPointers;\n\n ensureExceptionValuesCapacity(dataToBePacked, dataPointers, exceptionBitWidth, exceptionCount);\n\n for (let k = 0; k < BLOCK_SIZE; k++) {\n const value = inValues[blockPos + k] >>> 0;\n if (value >>> bitWidth !== 0) {\n byteContainerPos = writeByte(workspace, byteContainerPos, k);\n if (exceptionBitWidth !== 1) {\n const exceptionValues = dataToBePacked[exceptionBitWidth];\n exceptionValues[dataPointers[exceptionBitWidth]++] = (value >>> bitWidth) | 0;\n }\n }\n }\n\n return byteContainerPos;\n}\n\ntype EncodeState = { inPos: number; out: Uint32Array; outPos: number };\n\nfunction packBlock(inValues: Uint32Array, blockPos: number, bitWidth: number, state: EncodeState): void {\n for (let k = 0; k < BLOCK_SIZE; k += 32) {\n state.out = ensureInt32Capacity(state.out, state.outPos + bitWidth);\n fastPack32(inValues, blockPos + k, state.out, state.outPos, bitWidth);\n state.outPos += bitWidth;\n }\n}\n\nfunction padByteContainerToInt32(workspace: FastPforEncoderWorkspace, byteContainerPos: number): number {\n while ((byteContainerPos & 3) !== 0) {\n byteContainerPos = writeByte(workspace, byteContainerPos, 0);\n }\n return byteContainerPos;\n}\n\nfunction writeByteContainerInts(\n workspace: FastPforEncoderWorkspace,\n state: EncodeState,\n byteContainerPos: number,\n): void {\n const howManyInts = byteContainerPos / 4;\n state.out = ensureInt32Capacity(state.out, state.outPos + howManyInts);\n\n const byteContainer = workspace.byteContainer;\n for (let i = 0; i < howManyInts; i++) {\n const base = i * 4;\n const packedWord =\n byteContainer[base] |\n (byteContainer[base + 1] << 8) |\n (byteContainer[base + 2] << 16) |\n (byteContainer[base + 3] << 24) |\n 0;\n state.out[state.outPos + i] = packedWord;\n }\n\n state.outPos += howManyInts;\n}\n\nfunction computeExceptionBitmap(dataPointers: Int32Array): number {\n let bitmap = 0;\n for (let k = 2; k <= MAX_BIT_WIDTH; k++) {\n if (dataPointers[k] !== 0) {\n bitmap |= k === MAX_BIT_WIDTH ? 0x80000000 : 1 << (k - 1);\n }\n }\n return bitmap;\n}\n\nfunction writeExceptionStreams(workspace: FastPforEncoderWorkspace, state: EncodeState): void {\n const dataPointers = workspace.dataPointers;\n const dataToBePacked = workspace.dataToBePacked;\n\n const bitmap = computeExceptionBitmap(dataPointers);\n state.out = ensureInt32Capacity(state.out, state.outPos + 1);\n state.out[state.outPos++] = bitmap;\n\n for (let k = 2; k <= MAX_BIT_WIDTH; k++) {\n const size = dataPointers[k];\n if (size !== 0) {\n state.out = ensureInt32Capacity(state.out, state.outPos + 1);\n state.out[state.outPos++] = size | 0;\n\n let j = 0;\n for (; j < size; j += 32) {\n const exceptionValues = dataToBePacked[k];\n state.out = ensureInt32Capacity(state.out, state.outPos + k);\n fastPack32(exceptionValues, j, state.out, state.outPos, k);\n state.outPos += k;\n }\n\n const overflow = j - size;\n state.outPos -= (overflow * k) >>> 5;\n }\n }\n}\n\nfunction encodePage(\n inValues: Uint32Array,\n thisSize: number,\n state: EncodeState,\n workspace: FastPforEncoderWorkspace,\n): void {\n const headerPos = state.outPos;\n state.out = ensureInt32Capacity(state.out, headerPos + 1);\n state.outPos = (state.outPos + 1) | 0;\n\n const dataPointers = workspace.dataPointers;\n dataPointers.fill(0);\n\n let byteContainerPos = 0;\n\n let tmpInPos = state.inPos;\n const finalInPos = tmpInPos + thisSize - BLOCK_SIZE;\n\n for (; tmpInPos <= finalInPos; tmpInPos += BLOCK_SIZE) {\n computeBestBitWidthPlan(inValues, tmpInPos, workspace);\n\n const bestBitWidthPlan = workspace.bestBitWidthPlan;\n const bitWidth = bestBitWidthPlan[0];\n const exceptionCount = bestBitWidthPlan[1];\n const maxBitWidth = bestBitWidthPlan[2];\n\n const exceptionBitWidth = exceptionCount > 0 ? maxBitWidth - bitWidth : 0;\n byteContainerPos = writeBlockHeader(workspace, byteContainerPos, bitWidth, exceptionCount, maxBitWidth);\n byteContainerPos = recordBlockExceptions(\n workspace,\n inValues,\n tmpInPos,\n bitWidth,\n exceptionCount,\n exceptionBitWidth,\n byteContainerPos,\n );\n\n packBlock(inValues, tmpInPos, bitWidth, state);\n }\n\n const pageEndOutPos = state.outPos;\n state.inPos = tmpInPos;\n state.out[headerPos] = (pageEndOutPos - headerPos) | 0;\n\n const byteSize = byteContainerPos;\n byteContainerPos = padByteContainerToInt32(workspace, byteContainerPos);\n\n state.out = ensureInt32Capacity(state.out, state.outPos + 1);\n state.out[state.outPos++] = byteSize | 0;\n\n writeByteContainerInts(workspace, state, byteContainerPos);\n\n writeExceptionStreams(workspace, state);\n}\n\nfunction encodeAlignedPages(\n inValues: Uint32Array,\n inLength: number,\n state: EncodeState,\n workspace: FastPforEncoderWorkspace,\n): void {\n const alignedLength = greatestMultiple(inLength, BLOCK_SIZE);\n const finalInPos = state.inPos + alignedLength;\n\n while (state.inPos !== finalInPos) {\n const thisSize = Math.min(PAGE_SIZE, finalInPos - state.inPos);\n encodePage(inValues, thisSize, state, workspace);\n }\n}\n\nfunction encode(\n inValues: Uint32Array,\n inLength: number,\n state: EncodeState,\n workspace: FastPforEncoderWorkspace,\n): void {\n const alignedLength = greatestMultiple(inLength, BLOCK_SIZE);\n state.out = ensureInt32Capacity(state.out, state.outPos + 1);\n state.out[state.outPos++] = alignedLength;\n\n if (alignedLength === 0) return;\n encodeAlignedPages(inValues, alignedLength, state, workspace);\n}\n\n/**\n * VByte encoding for FastPFOR tail values (MSB=1 terminator).\n * Note: Inverts standard Protobuf Varint (MSB=0 terminator), so we cannot reuse generic methods.\n */\nfunction encodeVByte(\n inValues: Uint32Array,\n inLength: number,\n state: EncodeState,\n workspace: FastPforEncoderWorkspace,\n): void {\n if (inLength === 0) return;\n\n const requiredBytes = inLength * 5 + 3;\n workspace.byteContainer = ensureUint8Capacity(workspace.byteContainer, requiredBytes);\n\n const start = state.inPos;\n let bytePos = 0;\n for (let k = start; k < start + inLength; k++) {\n let value = inValues[k] >>> 0;\n while (value >= 0x80) {\n workspace.byteContainer[bytePos++] = value & 0x7f;\n value >>>= 7;\n }\n workspace.byteContainer[bytePos++] = (value | 0x80) & 0xff;\n }\n\n while ((bytePos & 3) !== 0) workspace.byteContainer[bytePos++] = 0;\n\n const intsToWrite = bytePos / 4;\n state.out = ensureInt32Capacity(state.out, state.outPos + intsToWrite);\n\n let outIdx = state.outPos;\n for (let i = 0; i < bytePos; i += 4) {\n const packedWord =\n workspace.byteContainer[i] |\n (workspace.byteContainer[i + 1] << 8) |\n (workspace.byteContainer[i + 2] << 16) |\n (workspace.byteContainer[i + 3] << 24) |\n 0;\n state.out[outIdx++] = packedWord;\n }\n\n state.outPos = outIdx;\n state.inPos = (state.inPos + inLength) | 0;\n}\n\n/**\n * Encodes an int32 stream using the FastPFOR wire format (pages + VByte tail).\n */\nexport function encodeFastPforInt32WithWorkspace(\n values: Uint32Array,\n workspace: FastPforEncoderWorkspace,\n): Uint32Array {\n const state: EncodeState = { inPos: 0, outPos: 0, out: new Uint32Array(values.length + 1024) };\n\n encode(values, values.length, state, workspace);\n\n const remaining = values.length - state.inPos;\n encodeVByte(values, remaining, state, workspace);\n\n return state.out.subarray(0, state.outPos);\n}\n"]}
@@ -1,17 +1,17 @@
1
1
  import IntWrapper from "../decoding/intWrapper";
2
2
  export declare function encodeVarintInt32Value(value: number, dst: Uint8Array, offset: IntWrapper): void;
3
- export declare function encodeVarintInt32(values: Int32Array): Uint8Array;
3
+ export declare function encodeVarintInt32(values: Uint32Array): Uint8Array;
4
4
  export declare function encodeVarintInt64(values: BigUint64Array): Uint8Array;
5
5
  export declare function encodeVarintFloat64(values: Float64Array): Uint8Array;
6
- export declare function encodeFastPfor(values: Int32Array): Uint8Array;
6
+ export declare function encodeFastPfor(values: Uint32Array): Uint8Array;
7
7
  export declare function encodeZigZagInt32Value(value: number): number;
8
8
  export declare function encodeZigZagInt64Value(value: bigint): bigint;
9
9
  export declare function encodeZigZagFloat64Value(n: number): number;
10
- export declare function encodeZigZagInt32(data: Int32Array): void;
10
+ export declare function encodeZigZagInt32(data: Int32Array): Uint32Array;
11
11
  export declare function encodeZigZagInt64(data: BigInt64Array): BigUint64Array;
12
12
  export declare function encodeZigZagFloat64(data: Float64Array): void;
13
- export declare function encodeUnsignedRleInt32(input: Int32Array): {
14
- data: Int32Array;
13
+ export declare function encodeUnsignedRleInt32(input: Uint32Array): {
14
+ data: Uint32Array;
15
15
  runs: number;
16
16
  };
17
17
  export declare function encodeUnsignedRleInt64(input: BigInt64Array): {
@@ -22,11 +22,11 @@ export declare function encodeUnsignedRleFloat64(input: Float64Array): {
22
22
  data: Float64Array;
23
23
  runs: number;
24
24
  };
25
- export declare function encodeZigZagDeltaInt32(data: Int32Array): void;
25
+ export declare function encodeZigZagDeltaInt32(data: Int32Array): Uint32Array;
26
26
  export declare function encodeZigZagDeltaInt64(data: BigInt64Array): BigUint64Array;
27
27
  export declare function encodeZigZagDeltaFloat64(data: Float64Array): void;
28
28
  export declare function encodeZigZagRleInt32(input: Int32Array): {
29
- data: Int32Array;
29
+ data: Uint32Array;
30
30
  runs: number;
31
31
  numTotalValues: number;
32
32
  };
@@ -43,21 +43,21 @@ export declare function encodeZigZagRleFloat64(input: Float64Array): {
43
43
  /**
44
44
  * This is not really a encode, but more of a decode method...
45
45
  */
46
- export declare function encodeDeltaInt32(data: Int32Array): void;
47
- export declare function encodeComponentwiseDeltaVec2(data: Int32Array): void;
48
- export declare function encodeComponentwiseDeltaVec2Scaled(data: Int32Array, scale: number): void;
46
+ export declare function encodeDeltaInt32(data: Int32Array | Uint32Array): void;
47
+ export declare function encodeComponentwiseDeltaVec2(data: Int32Array): Uint32Array;
48
+ export declare function encodeComponentwiseDeltaVec2Scaled(data: Int32Array, scale: number): Uint32Array;
49
49
  export declare function encodeZigZagRleDeltaInt32(values: Int32Array | number[]): {
50
- data: Int32Array;
50
+ data: Uint32Array;
51
51
  runs: number;
52
52
  numTotalValues: number;
53
53
  };
54
- export declare function encodeRleDeltaInt32(values: Int32Array | number[]): {
55
- data: Int32Array;
54
+ export declare function encodeRleDeltaInt32(values: Uint32Array | number[]): {
55
+ data: Uint32Array;
56
56
  runs: number;
57
57
  numTotalValues: number;
58
58
  };
59
59
  export declare function encodeDeltaRleInt32(input: Int32Array): {
60
- data: Int32Array;
60
+ data: Uint32Array;
61
61
  runs: number;
62
62
  numValues: number;
63
63
  };