@maplibre/mlt 1.0.0 → 1.1.1

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 (117) hide show
  1. package/LICENSE.txt +231 -0
  2. package/dist/decoding/decodingUtils.js.map +1 -1
  3. package/dist/decoding/decodingUtils.spec.js +2 -2
  4. package/dist/decoding/decodingUtils.spec.js.map +1 -1
  5. package/dist/decoding/fsstDecoder.js.map +1 -1
  6. package/dist/decoding/fsstDecoder.spec.js +14 -10
  7. package/dist/decoding/fsstDecoder.spec.js.map +1 -1
  8. package/dist/decoding/geometryDecoder.js +32 -192
  9. package/dist/decoding/geometryDecoder.js.map +1 -1
  10. package/dist/decoding/geometryDecoder.spec.js.map +1 -1
  11. package/dist/decoding/geometryScaling.js.map +1 -1
  12. package/dist/decoding/intWrapper.js.map +1 -1
  13. package/dist/decoding/integerDecodingUtils.js.map +1 -1
  14. package/dist/decoding/integerDecodingUtils.spec.js.map +1 -1
  15. package/dist/decoding/integerStreamDecoder.d.ts +12 -21
  16. package/dist/decoding/integerStreamDecoder.js +234 -234
  17. package/dist/decoding/integerStreamDecoder.js.map +1 -1
  18. package/dist/decoding/integerStreamDecoder.spec.js +55 -35
  19. package/dist/decoding/integerStreamDecoder.spec.js.map +1 -1
  20. package/dist/decoding/propertyDecoder.js +11 -11
  21. package/dist/decoding/propertyDecoder.js.map +1 -1
  22. package/dist/decoding/propertyDecoder.spec.js +157 -197
  23. package/dist/decoding/propertyDecoder.spec.js.map +1 -1
  24. package/dist/decoding/stringDecoder.d.ts +3 -0
  25. package/dist/decoding/stringDecoder.js +74 -24
  26. package/dist/decoding/stringDecoder.js.map +1 -1
  27. package/dist/decoding/stringDecoder.spec.js +83 -39
  28. package/dist/decoding/stringDecoder.spec.js.map +1 -1
  29. package/dist/index.js.map +1 -1
  30. package/dist/metadata/tile/dictionaryType.js.map +1 -1
  31. package/dist/metadata/tile/lengthType.js.map +1 -1
  32. package/dist/metadata/tile/logicalLevelTechnique.js.map +1 -1
  33. package/dist/metadata/tile/logicalStreamType.js.map +1 -1
  34. package/dist/metadata/tile/mortonEncodedStreamMetadata.js.map +1 -1
  35. package/dist/metadata/tile/offsetType.js.map +1 -1
  36. package/dist/metadata/tile/physicalLevelTechnique.js.map +1 -1
  37. package/dist/metadata/tile/physicalStreamType.js.map +1 -1
  38. package/dist/metadata/tile/rleEncodedStreamMetadata.js.map +1 -1
  39. package/dist/metadata/tile/scalarType.js.map +1 -1
  40. package/dist/metadata/tile/streamMetadata.js.map +1 -1
  41. package/dist/metadata/tile/streamMetadataDecoder.js.map +1 -1
  42. package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.js.map +1 -1
  43. package/dist/metadata/tileset/tilesetMetadata.js.map +1 -1
  44. package/dist/metadata/tileset/typeMap.js.map +1 -1
  45. package/dist/mltDecoder.d.ts +1 -1
  46. package/dist/mltDecoder.js +21 -11
  47. package/dist/mltDecoder.js.map +1 -1
  48. package/dist/mltDecoder.spec.js.map +1 -1
  49. package/dist/mltMetadata.js.map +1 -1
  50. package/dist/vector/constant/intConstVector.js.map +1 -1
  51. package/dist/vector/constant/longConstVector.js.map +1 -1
  52. package/dist/vector/dictionary/stringDictionaryVector.js.map +1 -1
  53. package/dist/vector/featureTable.js.map +1 -1
  54. package/dist/vector/filter/flatSelectionVector.d.ts +27 -0
  55. package/dist/vector/filter/flatSelectionVector.js +54 -0
  56. package/dist/vector/filter/flatSelectionVector.js.map +1 -0
  57. package/dist/vector/filter/flatSelectionVector.spec.d.ts +1 -0
  58. package/dist/vector/filter/flatSelectionVector.spec.js +51 -0
  59. package/dist/vector/filter/flatSelectionVector.spec.js.map +1 -0
  60. package/dist/vector/filter/selectionVector.d.ts +8 -0
  61. package/dist/vector/filter/selectionVector.js +2 -0
  62. package/dist/vector/filter/selectionVector.js.map +1 -0
  63. package/dist/vector/filter/selectionVectorUtil.spec.d.ts +1 -0
  64. package/dist/vector/filter/selectionVectorUtil.spec.js +154 -0
  65. package/dist/vector/filter/selectionVectorUtil.spec.js.map +1 -0
  66. package/dist/vector/filter/selectionVectorUtils.d.ts +16 -0
  67. package/dist/vector/filter/selectionVectorUtils.js +37 -0
  68. package/dist/vector/filter/selectionVectorUtils.js.map +1 -0
  69. package/dist/vector/filter/sequenceSelectionVector.d.ts +26 -0
  70. package/dist/vector/filter/sequenceSelectionVector.js +67 -0
  71. package/dist/vector/filter/sequenceSelectionVector.js.map +1 -0
  72. package/dist/vector/filter/sequenceSelectionVector.spec.d.ts +1 -0
  73. package/dist/vector/filter/sequenceSelectionVector.spec.js +115 -0
  74. package/dist/vector/filter/sequenceSelectionVector.spec.js.map +1 -0
  75. package/dist/vector/fixedSizeVector.js.map +1 -1
  76. package/dist/vector/flat/bitVector.js.map +1 -1
  77. package/dist/vector/flat/booleanFlatVector.js.map +1 -1
  78. package/dist/vector/flat/doubleFlatVector.js.map +1 -1
  79. package/dist/vector/flat/floatFlatVector.js.map +1 -1
  80. package/dist/vector/flat/floatFlatVector.spec.js.map +1 -1
  81. package/dist/vector/flat/intFlatVector.js.map +1 -1
  82. package/dist/vector/flat/intFlatVector.spec.js.map +1 -1
  83. package/dist/vector/flat/longFlatVector.js.map +1 -1
  84. package/dist/vector/flat/longFlatVector.spec.js.map +1 -1
  85. package/dist/vector/flat/stringFlatVector.js.map +1 -1
  86. package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.js.map +1 -1
  87. package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.spec.js.map +1 -1
  88. package/dist/vector/geometry/constGeometryVector.d.ts +2 -2
  89. package/dist/vector/geometry/constGeometryVector.js +6 -6
  90. package/dist/vector/geometry/constGeometryVector.js.map +1 -1
  91. package/dist/vector/geometry/constGpuVector.d.ts +1 -1
  92. package/dist/vector/geometry/constGpuVector.js +3 -24
  93. package/dist/vector/geometry/constGpuVector.js.map +1 -1
  94. package/dist/vector/geometry/flatGeometryVector.d.ts +2 -2
  95. package/dist/vector/geometry/flatGeometryVector.js +7 -7
  96. package/dist/vector/geometry/flatGeometryVector.js.map +1 -1
  97. package/dist/vector/geometry/flatGpuVector.d.ts +1 -1
  98. package/dist/vector/geometry/flatGpuVector.js +3 -22
  99. package/dist/vector/geometry/flatGpuVector.js.map +1 -1
  100. package/dist/vector/geometry/geometryType.js.map +1 -1
  101. package/dist/vector/geometry/geometryVector.js.map +1 -1
  102. package/dist/vector/geometry/geometryVectorConverter.js.map +1 -1
  103. package/dist/vector/geometry/gpuVector.js.map +1 -1
  104. package/dist/vector/geometry/spaceFillingCurve.js.map +1 -1
  105. package/dist/vector/geometry/topologyVector.js.map +1 -1
  106. package/dist/vector/geometry/vertexBufferType.js.map +1 -1
  107. package/dist/vector/geometry/zOrderCurve.js.map +1 -1
  108. package/dist/vector/geometry/zOrderCurve.spec.js.map +1 -1
  109. package/dist/vector/intVector.js.map +1 -1
  110. package/dist/vector/sequence/intSequenceVector.js.map +1 -1
  111. package/dist/vector/sequence/longSequenceVector.js.map +1 -1
  112. package/dist/vector/sequence/longSequenceVektor.spec.js.map +1 -1
  113. package/dist/vector/sequence/sequenceVector.js.map +1 -1
  114. package/dist/vector/variableSizeVector.js.map +1 -1
  115. package/dist/vector/vector.js.map +1 -1
  116. package/dist/vector/vectorType.js.map +1 -1
  117. package/package.json +6 -6
@@ -3,261 +3,261 @@ import { decodeComponentwiseDeltaVec2, decodeComponentwiseDeltaVec2Scaled, decod
3
3
  import { LogicalLevelTechnique } from "../metadata/tile/logicalLevelTechnique";
4
4
  import BitVector from "../vector/flat/bitVector";
5
5
  import { VectorType } from "../vector/vectorType";
6
- export default class IntegerStreamDecoder {
7
- constructor() { }
8
- static decodeIntStream(data, offset, streamMetadata, isSigned, scalingData) {
9
- const values = IntegerStreamDecoder.decodePhysicalLevelTechnique(data, offset, streamMetadata);
10
- return this.decodeIntBuffer(values, streamMetadata, isSigned, scalingData);
6
+ export function decodeIntStream(data, offset, streamMetadata, isSigned, scalingData) {
7
+ const values = decodePhysicalLevelTechnique(data, offset, streamMetadata);
8
+ return decodeIntBuffer(values, streamMetadata, isSigned, scalingData);
9
+ }
10
+ export function decodeLengthStreamToOffsetBuffer(data, offset, streamMetadata) {
11
+ const values = decodePhysicalLevelTechnique(data, offset, streamMetadata);
12
+ return decodeLengthToOffsetBuffer(values, streamMetadata);
13
+ }
14
+ function decodePhysicalLevelTechnique(data, offset, streamMetadata) {
15
+ const physicalLevelTechnique = streamMetadata.physicalLevelTechnique;
16
+ if (physicalLevelTechnique === PhysicalLevelTechnique.FAST_PFOR) {
17
+ return decodeFastPfor(data, streamMetadata.numValues, streamMetadata.byteLength, offset);
11
18
  }
12
- static decodeLengthStreamToOffsetBuffer(data, offset, streamMetadata) {
13
- const values = IntegerStreamDecoder.decodePhysicalLevelTechnique(data, offset, streamMetadata);
14
- return this.decodeLengthToOffsetBuffer(values, streamMetadata);
19
+ if (physicalLevelTechnique === PhysicalLevelTechnique.VARINT) {
20
+ return decodeVarintInt32(data, offset, streamMetadata.numValues);
15
21
  }
16
- static decodePhysicalLevelTechnique(data, offset, streamMetadata) {
17
- const physicalLevelTechnique = streamMetadata.physicalLevelTechnique;
18
- if (physicalLevelTechnique === PhysicalLevelTechnique.VARINT) {
19
- return decodeVarintInt32(data, offset, streamMetadata.numValues);
20
- }
21
- if (physicalLevelTechnique === PhysicalLevelTechnique.NONE) {
22
- const dataOffset = offset.get();
23
- const byteLength = streamMetadata.byteLength;
24
- offset.add(byteLength);
25
- //TODO: use Byte Rle for geometry type encoding
26
- const slice = data.subarray(dataOffset, offset.get());
27
- return new Int32Array(slice);
28
- }
29
- throw new Error("Specified physicalLevelTechnique is not supported (yet).");
22
+ if (physicalLevelTechnique === PhysicalLevelTechnique.NONE) {
23
+ const dataOffset = offset.get();
24
+ const byteLength = streamMetadata.byteLength;
25
+ offset.add(byteLength);
26
+ //TODO: use Byte Rle for geometry type encoding
27
+ const slice = data.subarray(dataOffset, offset.get());
28
+ return new Int32Array(slice);
30
29
  }
31
- static decodeConstIntStream(data, offset, streamMetadata, isSigned) {
32
- const values = IntegerStreamDecoder.decodePhysicalLevelTechnique(data, offset, streamMetadata);
33
- if (values.length === 1) {
34
- const value = values[0];
35
- return isSigned ? decodeZigZagValue(value) : value;
36
- }
37
- return isSigned ? decodeZigZagConstRle(values) : decodeUnsignedConstRle(values);
38
- }
39
- static decodeSequenceIntStream(data, offset, streamMetadata) {
40
- const values = IntegerStreamDecoder.decodePhysicalLevelTechnique(data, offset, streamMetadata);
41
- return decodeZigZagSequenceRle(values);
30
+ throw new Error("Specified physicalLevelTechnique is not supported (yet).");
31
+ }
32
+ export function decodeConstIntStream(data, offset, streamMetadata, isSigned) {
33
+ const values = decodePhysicalLevelTechnique(data, offset, streamMetadata);
34
+ if (values.length === 1) {
35
+ const value = values[0];
36
+ return isSigned ? decodeZigZagValue(value) : value;
42
37
  }
43
- static decodeSequenceLongStream(data, offset, streamMetadata) {
44
- const values = decodeVarintInt64(data, offset, streamMetadata.numValues);
45
- return decodeZigZagSequenceRleInt64(values);
38
+ return isSigned ? decodeZigZagConstRle(values) : decodeUnsignedConstRle(values);
39
+ }
40
+ export function decodeSequenceIntStream(data, offset, streamMetadata) {
41
+ const values = decodePhysicalLevelTechnique(data, offset, streamMetadata);
42
+ return decodeZigZagSequenceRle(values);
43
+ }
44
+ export function decodeSequenceLongStream(data, offset, streamMetadata) {
45
+ const values = decodeVarintInt64(data, offset, streamMetadata.numValues);
46
+ return decodeZigZagSequenceRleInt64(values);
47
+ }
48
+ export function decodeLongStream(data, offset, streamMetadata, isSigned) {
49
+ const values = decodeVarintInt64(data, offset, streamMetadata.numValues);
50
+ return decodeLongBuffer(values, streamMetadata, isSigned);
51
+ }
52
+ export function decodeLongFloat64Stream(data, offset, streamMetadata, isSigned) {
53
+ const values = decodeVarintFloat64(data, streamMetadata.numValues, offset);
54
+ return decodeFloat64Buffer(values, streamMetadata, isSigned);
55
+ }
56
+ export function decodeConstLongStream(data, offset, streamMetadata, isSigned) {
57
+ const values = decodeVarintInt64(data, offset, streamMetadata.numValues);
58
+ if (values.length === 1) {
59
+ const value = values[0];
60
+ return isSigned ? decodeZigZagValueInt64(value) : value;
46
61
  }
47
- static decodeLongStream(data, offset, streamMetadata, isSigned) {
48
- const values = decodeVarintInt64(data, offset, streamMetadata.numValues);
49
- return this.decodeLongBuffer(values, streamMetadata, isSigned);
62
+ return isSigned ? decodeZigZagConstRleInt64(values) : decodeUnsignedConstRleInt64(values);
63
+ }
64
+ function decodeIntBuffer(values, streamMetadata, isSigned, scalingData) {
65
+ /*
66
+ * Currently the encoder uses only fixed combinations of encodings.
67
+ * For performance reasons it is also used a fixed combination of the encodings on the decoding side.
68
+ * The following encodings and combinations are used:
69
+ * - Morton Delta -> always sorted so not ZigZag encoding needed
70
+ * - Delta -> currently always in combination with ZigZag encoding
71
+ * - Rle -> in combination with ZigZag encoding if data type is signed
72
+ * - Delta Rle
73
+ * - Componentwise Delta -> always ZigZag encoding is used
74
+ * */
75
+ switch (streamMetadata.logicalLevelTechnique1) {
76
+ case LogicalLevelTechnique.DELTA:
77
+ if (streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {
78
+ const rleMetadata = streamMetadata;
79
+ return decodeDeltaRle(values, rleMetadata.runs, rleMetadata.numRleValues);
80
+ }
81
+ decodeZigZagDelta(values);
82
+ return values;
83
+ case LogicalLevelTechnique.RLE:
84
+ return decodeRle(values, streamMetadata, isSigned);
85
+ case LogicalLevelTechnique.MORTON:
86
+ fastInverseDelta(values);
87
+ return values;
88
+ case LogicalLevelTechnique.COMPONENTWISE_DELTA:
89
+ if (scalingData) {
90
+ decodeComponentwiseDeltaVec2Scaled(values, scalingData.scale, scalingData.min, scalingData.max);
91
+ return values;
92
+ }
93
+ decodeComponentwiseDeltaVec2(values);
94
+ return values;
95
+ case LogicalLevelTechnique.NONE:
96
+ if (isSigned) {
97
+ decodeZigZag(values);
98
+ }
99
+ return values;
100
+ default:
101
+ throw new Error(`The specified Logical level technique is not supported: ${streamMetadata.logicalLevelTechnique1}`);
50
102
  }
51
- static decodeLongFloat64Stream(data, offset, streamMetadata, isSigned) {
52
- const values = decodeVarintFloat64(data, streamMetadata.numValues, offset);
53
- return this.decodeFloat64Buffer(values, streamMetadata, isSigned);
103
+ }
104
+ function decodeLongBuffer(values, streamMetadata, isSigned) {
105
+ switch (streamMetadata.logicalLevelTechnique1) {
106
+ case LogicalLevelTechnique.DELTA:
107
+ if (streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {
108
+ const rleMetadata = streamMetadata;
109
+ return decodeDeltaRleInt64(values, rleMetadata.runs, rleMetadata.numRleValues);
110
+ }
111
+ decodeZigZagDeltaInt64(values);
112
+ return values;
113
+ case LogicalLevelTechnique.RLE:
114
+ return decodeRleInt64(values, streamMetadata, isSigned);
115
+ case LogicalLevelTechnique.NONE:
116
+ if (isSigned) {
117
+ decodeZigZagInt64(values);
118
+ }
119
+ return values;
120
+ default:
121
+ throw new Error(`The specified Logical level technique is not supported: ${streamMetadata.logicalLevelTechnique1}`);
54
122
  }
55
- static decodeConstLongStream(data, offset, streamMetadata, isSigned) {
56
- const values = decodeVarintInt64(data, offset, streamMetadata.numValues);
57
- if (values.length === 1) {
58
- const value = values[0];
59
- return isSigned ? decodeZigZagValueInt64(value) : value;
60
- }
61
- return isSigned ? decodeZigZagConstRleInt64(values) : decodeUnsignedConstRleInt64(values);
123
+ }
124
+ export function decodeFloat64Buffer(values, streamMetadata, isSigned) {
125
+ switch (streamMetadata.logicalLevelTechnique1) {
126
+ case LogicalLevelTechnique.DELTA:
127
+ if (streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {
128
+ const rleMetadata = streamMetadata;
129
+ values = decodeUnsignedRleFloat64(values, rleMetadata.runs, rleMetadata.numRleValues);
130
+ }
131
+ decodeZigZagDeltaFloat64(values);
132
+ return values;
133
+ case LogicalLevelTechnique.RLE:
134
+ return decodeRleFloat64(values, streamMetadata, isSigned);
135
+ case LogicalLevelTechnique.NONE:
136
+ if (isSigned) {
137
+ decodeZigZagFloat64(values);
138
+ }
139
+ return values;
140
+ default:
141
+ throw new Error(`The specified Logical level technique is not supported: ${streamMetadata.logicalLevelTechnique1}`);
62
142
  }
63
- static decodeIntBuffer(values, streamMetadata, isSigned, scalingData) {
64
- /*
65
- * Currently the encoder uses only fixed combinations of encodings.
66
- * For performance reasons it is also used a fixed combination of the encodings on the decoding side.
67
- * The following encodings and combinations are used:
68
- * - Morton Delta -> always sorted so not ZigZag encoding needed
69
- * - Delta -> currently always in combination with ZigZag encoding
70
- * - Rle -> in combination with ZigZag encoding if data type is signed
71
- * - Delta Rle
72
- * - Componentwise Delta -> always ZigZag encoding is used
73
- * */
74
- switch (streamMetadata.logicalLevelTechnique1) {
75
- case LogicalLevelTechnique.DELTA:
76
- if (streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {
77
- const rleMetadata = streamMetadata;
78
- return decodeDeltaRle(values, rleMetadata.runs, rleMetadata.numRleValues);
79
- }
80
- decodeZigZagDelta(values);
81
- return values;
82
- case LogicalLevelTechnique.RLE:
83
- return decodeRle(values, streamMetadata, isSigned);
84
- case LogicalLevelTechnique.MORTON:
85
- fastInverseDelta(values);
86
- return values;
87
- case LogicalLevelTechnique.COMPONENTWISE_DELTA:
88
- if (scalingData) {
89
- decodeComponentwiseDeltaVec2Scaled(values, scalingData.scale, scalingData.min, scalingData.max);
90
- return values;
91
- }
92
- decodeComponentwiseDeltaVec2(values);
93
- return values;
94
- case LogicalLevelTechnique.NONE:
95
- if (isSigned) {
96
- decodeZigZag(values);
97
- }
98
- return values;
99
- default:
100
- throw new Error(`The specified Logical level technique is not supported: ${streamMetadata.logicalLevelTechnique1}`);
101
- }
143
+ }
144
+ function decodeLengthToOffsetBuffer(values, streamMetadata) {
145
+ if (streamMetadata.logicalLevelTechnique1 === LogicalLevelTechnique.DELTA &&
146
+ streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.NONE) {
147
+ const decodedValues = zigZagDeltaOfDeltaDecoding(values);
148
+ return decodedValues;
102
149
  }
103
- static decodeLongBuffer(values, streamMetadata, isSigned) {
104
- switch (streamMetadata.logicalLevelTechnique1) {
105
- case LogicalLevelTechnique.DELTA:
106
- if (streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {
107
- const rleMetadata = streamMetadata;
108
- return decodeDeltaRleInt64(values, rleMetadata.runs, rleMetadata.numRleValues);
109
- }
110
- decodeZigZagDeltaInt64(values);
111
- return values;
112
- case LogicalLevelTechnique.RLE:
113
- return decodeRleInt64(values, streamMetadata, isSigned);
114
- case LogicalLevelTechnique.NONE:
115
- if (isSigned) {
116
- decodeZigZagInt64(values);
117
- }
118
- return values;
119
- default:
120
- throw new Error(`The specified Logical level technique is not supported: ${streamMetadata.logicalLevelTechnique1}`);
121
- }
150
+ if (streamMetadata.logicalLevelTechnique1 === LogicalLevelTechnique.RLE &&
151
+ streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.NONE) {
152
+ const rleMetadata = streamMetadata;
153
+ const decodedValues = rleDeltaDecoding(values, rleMetadata.runs, rleMetadata.numRleValues);
154
+ return decodedValues;
122
155
  }
123
- static decodeFloat64Buffer(values, streamMetadata, isSigned) {
124
- switch (streamMetadata.logicalLevelTechnique1) {
125
- case LogicalLevelTechnique.DELTA:
126
- if (streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {
127
- const rleMetadata = streamMetadata;
128
- values = decodeUnsignedRleFloat64(values, rleMetadata.runs, rleMetadata.numRleValues);
129
- }
130
- decodeZigZagDeltaFloat64(values);
131
- return values;
132
- case LogicalLevelTechnique.RLE:
133
- return decodeRleFloat64(values, streamMetadata, isSigned);
134
- case LogicalLevelTechnique.NONE:
135
- if (isSigned) {
136
- decodeZigZagFloat64(values);
137
- }
138
- return values;
139
- default:
140
- throw new Error(`The specified Logical level technique is not supported: ${streamMetadata.logicalLevelTechnique1}`);
141
- }
156
+ if (streamMetadata.logicalLevelTechnique1 === LogicalLevelTechnique.NONE &&
157
+ streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.NONE) {
158
+ //TODO: use fastInverseDelta again and check what are the performance problems in zoom 14
159
+ //fastInverseDelta(values);
160
+ inverseDelta(values);
161
+ const offsets = new Int32Array(streamMetadata.numValues + 1);
162
+ offsets[0] = 0;
163
+ offsets.set(values, 1);
164
+ return offsets;
142
165
  }
143
- static decodeLengthToOffsetBuffer(values, streamMetadata) {
144
- if (streamMetadata.logicalLevelTechnique1 === LogicalLevelTechnique.DELTA &&
145
- streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.NONE) {
146
- const decodedValues = zigZagDeltaOfDeltaDecoding(values);
147
- return decodedValues;
148
- }
149
- if (streamMetadata.logicalLevelTechnique1 === LogicalLevelTechnique.RLE &&
150
- streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.NONE) {
151
- const rleMetadata = streamMetadata;
152
- const decodedValues = rleDeltaDecoding(values, rleMetadata.runs, rleMetadata.numRleValues);
153
- return decodedValues;
154
- }
155
- if (streamMetadata.logicalLevelTechnique1 === LogicalLevelTechnique.NONE &&
156
- streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.NONE) {
157
- //TODO: use fastInverseDelta again and check what are the performance problems in zoom 14
158
- //fastInverseDelta(values);
159
- inverseDelta(values);
160
- const offsets = new Int32Array(streamMetadata.numValues + 1);
161
- offsets[0] = 0;
162
- offsets.set(values, 1);
163
- return offsets;
164
- }
165
- if (streamMetadata.logicalLevelTechnique1 === LogicalLevelTechnique.DELTA &&
166
- streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {
167
- const rleMetadata = streamMetadata;
168
- const decodedValues = zigZagRleDeltaDecoding(values, rleMetadata.runs, rleMetadata.numRleValues);
169
- fastInverseDelta(decodedValues);
170
- return decodedValues;
171
- }
172
- throw new Error("Only delta encoding is supported for transforming length to offset streams yet.");
166
+ if (streamMetadata.logicalLevelTechnique1 === LogicalLevelTechnique.DELTA &&
167
+ streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {
168
+ const rleMetadata = streamMetadata;
169
+ const decodedValues = zigZagRleDeltaDecoding(values, rleMetadata.runs, rleMetadata.numRleValues);
170
+ fastInverseDelta(decodedValues);
171
+ return decodedValues;
173
172
  }
174
- static decodeNullableIntStream(data, offset, streamMetadata, isSigned, bitVector) {
175
- const values = streamMetadata.physicalLevelTechnique === PhysicalLevelTechnique.FAST_PFOR
176
- ? decodeFastPfor(data, streamMetadata.numValues, streamMetadata.byteLength, offset)
177
- : decodeVarintInt32(data, offset, streamMetadata.numValues);
178
- return this.decodeNullableIntBuffer(values, streamMetadata, isSigned, bitVector);
173
+ throw new Error("Only delta encoding is supported for transforming length to offset streams yet.");
174
+ }
175
+ export function decodeNullableIntStream(data, offset, streamMetadata, isSigned, bitVector) {
176
+ const values = streamMetadata.physicalLevelTechnique === PhysicalLevelTechnique.FAST_PFOR
177
+ ? decodeFastPfor(data, streamMetadata.numValues, streamMetadata.byteLength, offset)
178
+ : decodeVarintInt32(data, offset, streamMetadata.numValues);
179
+ return decodeNullableIntBuffer(values, streamMetadata, isSigned, bitVector);
180
+ }
181
+ export function decodeNullableLongStream(data, offset, streamMetadata, isSigned, bitVector) {
182
+ const values = decodeVarintInt64(data, offset, streamMetadata.numValues);
183
+ return decodeNullableLongBuffer(values, streamMetadata, isSigned, bitVector);
184
+ }
185
+ function decodeNullableIntBuffer(values, streamMetadata, isSigned, bitVector) {
186
+ switch (streamMetadata.logicalLevelTechnique1) {
187
+ case LogicalLevelTechnique.DELTA:
188
+ if (streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {
189
+ const rleMetadata = streamMetadata;
190
+ values = decodeUnsignedRle(values, rleMetadata.runs, rleMetadata.numRleValues);
191
+ }
192
+ return decodeNullableZigZagDelta(bitVector, values);
193
+ case LogicalLevelTechnique.RLE:
194
+ return decodeNullableRle(values, streamMetadata, isSigned, bitVector);
195
+ case LogicalLevelTechnique.MORTON:
196
+ fastInverseDelta(values);
197
+ return values;
198
+ case LogicalLevelTechnique.COMPONENTWISE_DELTA:
199
+ decodeComponentwiseDeltaVec2(values);
200
+ return values;
201
+ case LogicalLevelTechnique.NONE:
202
+ values = isSigned ? padZigZagWithZeros(bitVector, values) : padWithZeros(bitVector, values);
203
+ return values;
204
+ default:
205
+ throw new Error("The specified Logical level technique is not supported");
179
206
  }
180
- static decodeNullableLongStream(data, offset, streamMetadata, isSigned, bitVector) {
181
- const values = decodeVarintInt64(data, offset, streamMetadata.numValues);
182
- return this.decodeNullableLongBuffer(values, streamMetadata, isSigned, bitVector);
207
+ }
208
+ function decodeNullableLongBuffer(values, streamMetadata, isSigned, bitVector) {
209
+ switch (streamMetadata.logicalLevelTechnique1) {
210
+ case LogicalLevelTechnique.DELTA:
211
+ if (streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {
212
+ const rleMetadata = streamMetadata;
213
+ values = decodeUnsignedRleInt64(values, rleMetadata.runs, rleMetadata.numRleValues);
214
+ }
215
+ return decodeNullableZigZagDeltaInt64(bitVector, values);
216
+ case LogicalLevelTechnique.RLE:
217
+ return decodeNullableRleInt64(values, streamMetadata, isSigned, bitVector);
218
+ case LogicalLevelTechnique.NONE:
219
+ values = isSigned ? padZigZagWithZerosInt64(bitVector, values) : padWithZerosInt64(bitVector, values);
220
+ return values;
221
+ default:
222
+ throw new Error("The specified Logical level technique is not supported");
183
223
  }
184
- static decodeNullableIntBuffer(values, streamMetadata, isSigned, bitVector) {
185
- switch (streamMetadata.logicalLevelTechnique1) {
186
- case LogicalLevelTechnique.DELTA:
187
- if (streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {
188
- const rleMetadata = streamMetadata;
189
- values = decodeUnsignedRle(values, rleMetadata.runs, rleMetadata.numRleValues);
190
- }
191
- return decodeNullableZigZagDelta(bitVector, values);
192
- case LogicalLevelTechnique.RLE:
193
- return decodeNullableRle(values, streamMetadata, isSigned, bitVector);
194
- case LogicalLevelTechnique.MORTON:
195
- fastInverseDelta(values);
196
- return values;
197
- case LogicalLevelTechnique.COMPONENTWISE_DELTA:
198
- decodeComponentwiseDeltaVec2(values);
199
- return values;
200
- case LogicalLevelTechnique.NONE:
201
- values = isSigned ? padZigZagWithZeros(bitVector, values) : padWithZeros(bitVector, values);
202
- return values;
203
- default:
204
- throw new Error("The specified Logical level technique is not supported");
205
- }
224
+ }
225
+ export function getVectorType(streamMetadata, sizeOrNullabilityBuffer, data, offset) {
226
+ const logicalLevelTechnique1 = streamMetadata.logicalLevelTechnique1;
227
+ if (logicalLevelTechnique1 === LogicalLevelTechnique.RLE) {
228
+ return streamMetadata.runs === 1 ? VectorType.CONST : VectorType.FLAT;
206
229
  }
207
- static decodeNullableLongBuffer(values, streamMetadata, isSigned, bitVector) {
208
- switch (streamMetadata.logicalLevelTechnique1) {
209
- case LogicalLevelTechnique.DELTA:
210
- if (streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {
211
- const rleMetadata = streamMetadata;
212
- values = decodeUnsignedRleInt64(values, rleMetadata.runs, rleMetadata.numRleValues);
213
- }
214
- return decodeNullableZigZagDeltaInt64(bitVector, values);
215
- case LogicalLevelTechnique.RLE:
216
- return decodeNullableRleInt64(values, streamMetadata, isSigned, bitVector);
217
- case LogicalLevelTechnique.NONE:
218
- values = isSigned ? padZigZagWithZerosInt64(bitVector, values) : padWithZerosInt64(bitVector, values);
219
- return values;
220
- default:
221
- throw new Error("The specified Logical level technique is not supported");
230
+ const numFeatures = sizeOrNullabilityBuffer instanceof BitVector ? sizeOrNullabilityBuffer.size() : sizeOrNullabilityBuffer;
231
+ if (logicalLevelTechnique1 === LogicalLevelTechnique.DELTA &&
232
+ streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {
233
+ const rleMetadata = streamMetadata;
234
+ const runs = rleMetadata.runs;
235
+ const zigZagOne = 2;
236
+ if (rleMetadata.numRleValues !== numFeatures) {
237
+ return VectorType.FLAT;
222
238
  }
223
- }
224
- static getVectorType(streamMetadata, sizeOrNullabilityBuffer, data, offset) {
225
- const logicalLevelTechnique1 = streamMetadata.logicalLevelTechnique1;
226
- if (logicalLevelTechnique1 === LogicalLevelTechnique.RLE) {
227
- return streamMetadata.runs === 1 ? VectorType.CONST : VectorType.FLAT;
239
+ // Single run is always a sequence
240
+ if (runs === 1) {
241
+ return VectorType.SEQUENCE;
228
242
  }
229
- const numFeatures = sizeOrNullabilityBuffer instanceof BitVector ? sizeOrNullabilityBuffer.size() : sizeOrNullabilityBuffer;
230
- if (logicalLevelTechnique1 === LogicalLevelTechnique.DELTA &&
231
- streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {
232
- const rleMetadata = streamMetadata;
233
- const runs = rleMetadata.runs;
234
- const zigZagOne = 2;
235
- if (rleMetadata.numRleValues !== numFeatures) {
236
- return VectorType.FLAT;
243
+ // Two runs can be a sequence if both deltas are equal to 1
244
+ if (runs === 2) {
245
+ const savedOffset = offset.get();
246
+ let values;
247
+ if (streamMetadata.physicalLevelTechnique === PhysicalLevelTechnique.VARINT) {
248
+ values = decodeVarintInt32(data, offset, 4);
237
249
  }
238
- // Single run is always a sequence
239
- if (runs === 1) {
240
- return VectorType.SEQUENCE;
250
+ else {
251
+ const byteOffset = offset.get();
252
+ values = new Int32Array(data.buffer, data.byteOffset + byteOffset, 4);
241
253
  }
242
- // Two runs can be a sequence if both deltas are equal to 1
243
- if (runs === 2) {
244
- const savedOffset = offset.get();
245
- let values;
246
- if (streamMetadata.physicalLevelTechnique === PhysicalLevelTechnique.VARINT) {
247
- values = decodeVarintInt32(data, offset, 4);
248
- }
249
- else {
250
- const byteOffset = offset.get();
251
- values = new Int32Array(data.buffer, data.byteOffset + byteOffset, 4);
252
- }
253
- offset.set(savedOffset);
254
- // Check if both deltas are encoded 1
255
- if (values[2] === zigZagOne && values[3] === zigZagOne) {
256
- return VectorType.SEQUENCE;
257
- }
254
+ offset.set(savedOffset);
255
+ // Check if both deltas are encoded 1
256
+ if (values[2] === zigZagOne && values[3] === zigZagOne) {
257
+ return VectorType.SEQUENCE;
258
258
  }
259
259
  }
260
- return streamMetadata.numValues === 1 ? VectorType.CONST : VectorType.FLAT;
261
260
  }
261
+ return streamMetadata.numValues === 1 ? VectorType.CONST : VectorType.FLAT;
262
262
  }
263
263
  //# sourceMappingURL=integerStreamDecoder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"integerStreamDecoder.js","sourceRoot":"","sources":["../../src/decoding/integerStreamDecoder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAEjF,OAAO,EACH,4BAA4B,EAC5B,kCAAkC,EAClC,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACtB,yBAAyB,EACzB,8BAA8B,EAC9B,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,2BAA2B,EAC3B,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,yBAAyB,EACzB,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,4BAA4B,EAC5B,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,0BAA0B,EAC1B,sBAAsB,GACzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAE/E,OAAO,SAAS,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGlD,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACrC,gBAAuB,CAAC;IAExB,MAAM,CAAC,eAAe,CAClB,IAAgB,EAChB,MAAkB,EAClB,cAA8B,EAC9B,QAAiB,EACjB,WAA6B;QAE7B,MAAM,MAAM,GAAG,oBAAoB,CAAC,4BAA4B,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;QAC/F,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,CAAC,gCAAgC,CACnC,IAAgB,EAChB,MAAkB,EAClB,cAA8B;QAE9B,MAAM,MAAM,GAAG,oBAAoB,CAAC,4BAA4B,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;QAC/F,OAAO,IAAI,CAAC,0BAA0B,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACnE,CAAC;IAEO,MAAM,CAAC,4BAA4B,CAAC,IAAgB,EAAE,MAAkB,EAAE,cAA8B;QAC5G,MAAM,sBAAsB,GAAG,cAAc,CAAC,sBAAsB,CAAC;QACrE,IAAI,sBAAsB,KAAK,sBAAsB,CAAC,MAAM,EAAE,CAAC;YAC3D,OAAO,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,sBAAsB,KAAK,sBAAsB,CAAC,IAAI,EAAE,CAAC;YACzD,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;YAChC,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC;YAC7C,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACvB,+CAA+C;YAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;YACtD,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,CAAC,oBAAoB,CACvB,IAAgB,EAChB,MAAkB,EAClB,cAA8B,EAC9B,QAAiB;QAEjB,MAAM,MAAM,GAAG,oBAAoB,CAAC,4BAA4B,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;QAE/F,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,OAAO,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACvD,CAAC;QAED,OAAO,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,CAAC,uBAAuB,CAC1B,IAAgB,EAChB,MAAkB,EAClB,cAA8B;QAE9B,MAAM,MAAM,GAAG,oBAAoB,CAAC,4BAA4B,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;QAC/F,OAAO,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,CAAC,wBAAwB,CAC3B,IAAgB,EAChB,MAAkB,EAClB,cAA8B;QAE9B,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;QACzE,OAAO,4BAA4B,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,gBAAgB,CACnB,IAAgB,EAChB,MAAkB,EAClB,cAA8B,EAC9B,QAAiB;QAEjB,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,CAAC,uBAAuB,CAC1B,IAAgB,EAChB,MAAkB,EAClB,cAA8B,EAC9B,QAAiB;QAEjB,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,EAAE,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC3E,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,CAAC,qBAAqB,CACxB,IAAgB,EAChB,MAAkB,EAClB,cAA8B,EAC9B,QAAiB;QAEjB,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;QAEzE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,OAAO,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC5D,CAAC;QAED,OAAO,QAAQ,CAAC,CAAC,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;IAC9F,CAAC;IAEO,MAAM,CAAC,eAAe,CAC1B,MAAkB,EAClB,cAA8B,EAC9B,QAAiB,EACjB,WAA6B;QAE7B;;;;;;;;;aASK;QACL,QAAQ,cAAc,CAAC,sBAAsB,EAAE,CAAC;YAC5C,KAAK,qBAAqB,CAAC,KAAK;gBAC5B,IAAI,cAAc,CAAC,sBAAsB,KAAK,qBAAqB,CAAC,GAAG,EAAE,CAAC;oBACtE,MAAM,WAAW,GAAG,cAA0C,CAAC;oBAC/D,OAAO,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;gBAC9E,CAAC;gBACD,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBAC1B,OAAO,MAAM,CAAC;YAClB,KAAK,qBAAqB,CAAC,GAAG;gBAC1B,OAAO,SAAS,CAAC,MAAM,EAAE,cAA0C,EAAE,QAAQ,CAAC,CAAC;YACnF,KAAK,qBAAqB,CAAC,MAAM;gBAC7B,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACzB,OAAO,MAAM,CAAC;YAClB,KAAK,qBAAqB,CAAC,mBAAmB;gBAC1C,IAAI,WAAW,EAAE,CAAC;oBACd,kCAAkC,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;oBAChG,OAAO,MAAM,CAAC;gBAClB,CAAC;gBAED,4BAA4B,CAAC,MAAM,CAAC,CAAC;gBACrC,OAAO,MAAM,CAAC;YAClB,KAAK,qBAAqB,CAAC,IAAI;gBAC3B,IAAI,QAAQ,EAAE,CAAC;oBACX,YAAY,CAAC,MAAM,CAAC,CAAC;gBACzB,CAAC;gBACD,OAAO,MAAM,CAAC;YAClB;gBACI,MAAM,IAAI,KAAK,CACX,2DAA2D,cAAc,CAAC,sBAAsB,EAAE,CACrG,CAAC;QACV,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAC3B,MAAqB,EACrB,cAA8B,EAC9B,QAAiB;QAEjB,QAAQ,cAAc,CAAC,sBAAsB,EAAE,CAAC;YAC5C,KAAK,qBAAqB,CAAC,KAAK;gBAC5B,IAAI,cAAc,CAAC,sBAAsB,KAAK,qBAAqB,CAAC,GAAG,EAAE,CAAC;oBACtE,MAAM,WAAW,GAAG,cAA0C,CAAC;oBAC/D,OAAO,mBAAmB,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;gBACnF,CAAC;gBACD,sBAAsB,CAAC,MAAM,CAAC,CAAC;gBAC/B,OAAO,MAAM,CAAC;YAClB,KAAK,qBAAqB,CAAC,GAAG;gBAC1B,OAAO,cAAc,CAAC,MAAM,EAAE,cAA0C,EAAE,QAAQ,CAAC,CAAC;YACxF,KAAK,qBAAqB,CAAC,IAAI;gBAC3B,IAAI,QAAQ,EAAE,CAAC;oBACX,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBAC9B,CAAC;gBACD,OAAO,MAAM,CAAC;YAClB;gBACI,MAAM,IAAI,KAAK,CACX,2DAA2D,cAAc,CAAC,sBAAsB,EAAE,CACrG,CAAC;QACV,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,mBAAmB,CAC9B,MAAoB,EACpB,cAA8B,EAC9B,QAAiB;QAEjB,QAAQ,cAAc,CAAC,sBAAsB,EAAE,CAAC;YAC5C,KAAK,qBAAqB,CAAC,KAAK;gBAC5B,IAAI,cAAc,CAAC,sBAAsB,KAAK,qBAAqB,CAAC,GAAG,EAAE,CAAC;oBACtE,MAAM,WAAW,GAAG,cAA0C,CAAC;oBAC/D,MAAM,GAAG,wBAAwB,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;gBAC1F,CAAC;gBACD,wBAAwB,CAAC,MAAM,CAAC,CAAC;gBACjC,OAAO,MAAM,CAAC;YAClB,KAAK,qBAAqB,CAAC,GAAG;gBAC1B,OAAO,gBAAgB,CAAC,MAAM,EAAE,cAA0C,EAAE,QAAQ,CAAC,CAAC;YAC1F,KAAK,qBAAqB,CAAC,IAAI;gBAC3B,IAAI,QAAQ,EAAE,CAAC;oBACX,mBAAmB,CAAC,MAAM,CAAC,CAAC;gBAChC,CAAC;gBACD,OAAO,MAAM,CAAC;YAClB;gBACI,MAAM,IAAI,KAAK,CACX,2DAA2D,cAAc,CAAC,sBAAsB,EAAE,CACrG,CAAC;QACV,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,0BAA0B,CAAC,MAAkB,EAAE,cAA8B;QACxF,IACI,cAAc,CAAC,sBAAsB,KAAK,qBAAqB,CAAC,KAAK;YACrE,cAAc,CAAC,sBAAsB,KAAK,qBAAqB,CAAC,IAAI,EACtE,CAAC;YACC,MAAM,aAAa,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;YACzD,OAAO,aAAa,CAAC;QACzB,CAAC;QAED,IACI,cAAc,CAAC,sBAAsB,KAAK,qBAAqB,CAAC,GAAG;YACnE,cAAc,CAAC,sBAAsB,KAAK,qBAAqB,CAAC,IAAI,EACtE,CAAC;YACC,MAAM,WAAW,GAAG,cAA0C,CAAC;YAC/D,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;YAC3F,OAAO,aAAa,CAAC;QACzB,CAAC;QAED,IACI,cAAc,CAAC,sBAAsB,KAAK,qBAAqB,CAAC,IAAI;YACpE,cAAc,CAAC,sBAAsB,KAAK,qBAAqB,CAAC,IAAI,EACtE,CAAC;YACC,yFAAyF;YACzF,2BAA2B;YAC3B,YAAY,CAAC,MAAM,CAAC,CAAC;YACrB,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,cAAc,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YAC7D,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACvB,OAAO,OAAO,CAAC;QACnB,CAAC;QAED,IACI,cAAc,CAAC,sBAAsB,KAAK,qBAAqB,CAAC,KAAK;YACrE,cAAc,CAAC,sBAAsB,KAAK,qBAAqB,CAAC,GAAG,EACrE,CAAC;YACC,MAAM,WAAW,GAAG,cAA0C,CAAC;YAC/D,MAAM,aAAa,GAAG,sBAAsB,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;YACjG,gBAAgB,CAAC,aAAa,CAAC,CAAC;YAChC,OAAO,aAAa,CAAC;QACzB,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAC;IACvG,CAAC;IAEM,MAAM,CAAC,uBAAuB,CACjC,IAAgB,EAChB,MAAkB,EAClB,cAA8B,EAC9B,QAAiB,EACjB,SAAoB;QAEpB,MAAM,MAAM,GACR,cAAc,CAAC,sBAAsB,KAAK,sBAAsB,CAAC,SAAS;YACtE,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,SAAS,EAAE,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC;YACnF,CAAC,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;QAEpE,OAAO,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IACrF,CAAC;IAEM,MAAM,CAAC,wBAAwB,CAClC,IAAgB,EAChB,MAAkB,EAClB,cAA8B,EAC9B,QAAiB,EACjB,SAAoB;QAEpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IACtF,CAAC;IAEO,MAAM,CAAC,uBAAuB,CAClC,MAAkB,EAClB,cAA8B,EAC9B,QAAiB,EACjB,SAAoB;QAEpB,QAAQ,cAAc,CAAC,sBAAsB,EAAE,CAAC;YAC5C,KAAK,qBAAqB,CAAC,KAAK;gBAC5B,IAAI,cAAc,CAAC,sBAAsB,KAAK,qBAAqB,CAAC,GAAG,EAAE,CAAC;oBACtE,MAAM,WAAW,GAAG,cAA0C,CAAC;oBAC/D,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;gBACnF,CAAC;gBACD,OAAO,yBAAyB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACxD,KAAK,qBAAqB,CAAC,GAAG;gBAC1B,OAAO,iBAAiB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC1E,KAAK,qBAAqB,CAAC,MAAM;gBAC7B,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACzB,OAAO,MAAM,CAAC;YAClB,KAAK,qBAAqB,CAAC,mBAAmB;gBAC1C,4BAA4B,CAAC,MAAM,CAAC,CAAC;gBACrC,OAAO,MAAM,CAAC;YAClB,KAAK,qBAAqB,CAAC,IAAI;gBAC3B,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBAC5F,OAAO,MAAM,CAAC;YAClB;gBACI,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAClF,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,wBAAwB,CACnC,MAAqB,EACrB,cAA8B,EAC9B,QAAiB,EACjB,SAAoB;QAEpB,QAAQ,cAAc,CAAC,sBAAsB,EAAE,CAAC;YAC5C,KAAK,qBAAqB,CAAC,KAAK;gBAC5B,IAAI,cAAc,CAAC,sBAAsB,KAAK,qBAAqB,CAAC,GAAG,EAAE,CAAC;oBACtE,MAAM,WAAW,GAAG,cAA0C,CAAC;oBAC/D,MAAM,GAAG,sBAAsB,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;gBACxF,CAAC;gBACD,OAAO,8BAA8B,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAC7D,KAAK,qBAAqB,CAAC,GAAG;gBAC1B,OAAO,sBAAsB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC/E,KAAK,qBAAqB,CAAC,IAAI;gBAC3B,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,uBAAuB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBACtG,OAAO,MAAM,CAAC;YAClB;gBACI,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAClF,CAAC;IACL,CAAC;IAED,MAAM,CAAC,aAAa,CAChB,cAA8B,EAC9B,uBAA2C,EAC3C,IAAgB,EAChB,MAAkB;QAElB,MAAM,sBAAsB,GAAG,cAAc,CAAC,sBAAsB,CAAC;QACrE,IAAI,sBAAsB,KAAK,qBAAqB,CAAC,GAAG,EAAE,CAAC;YACvD,OAAQ,cAA2C,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;QACxG,CAAC;QAED,MAAM,WAAW,GACb,uBAAuB,YAAY,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,uBAAuB,CAAC;QAE5G,IACI,sBAAsB,KAAK,qBAAqB,CAAC,KAAK;YACtD,cAAc,CAAC,sBAAsB,KAAK,qBAAqB,CAAC,GAAG,EACrE,CAAC;YACC,MAAM,WAAW,GAAG,cAA0C,CAAC;YAC/D,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;YAC9B,MAAM,SAAS,GAAG,CAAC,CAAC;YAEpB,IAAI,WAAW,CAAC,YAAY,KAAK,WAAW,EAAE,CAAC;gBAC3C,OAAO,UAAU,CAAC,IAAI,CAAC;YAC3B,CAAC;YACD,kCAAkC;YAClC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACb,OAAO,UAAU,CAAC,QAAQ,CAAC;YAC/B,CAAC;YACD,2DAA2D;YAC3D,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACb,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;gBAEjC,IAAI,MAAkB,CAAC;gBACvB,IAAI,cAAc,CAAC,sBAAsB,KAAK,sBAAsB,CAAC,MAAM,EAAE,CAAC;oBAC1E,MAAM,GAAG,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;gBAChD,CAAC;qBAAM,CAAC;oBACJ,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;oBAChC,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC;gBAC1E,CAAC;gBACD,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACxB,qCAAqC;gBACrC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;oBACrD,OAAO,UAAU,CAAC,QAAQ,CAAC;gBAC/B,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,cAAc,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;IAC/E,CAAC;CACJ"}
1
+ {"version":3,"file":"integerStreamDecoder.js","sourceRoot":"","sources":["../../src/decoding/integerStreamDecoder.ts"],"names":[],"mappings":"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","sourcesContent":["import { type StreamMetadata } from \"../metadata/tile/streamMetadata\";\nimport { PhysicalLevelTechnique } from \"../metadata/tile/physicalLevelTechnique\";\nimport type IntWrapper from \"./intWrapper\";\nimport {\n decodeComponentwiseDeltaVec2,\n decodeComponentwiseDeltaVec2Scaled,\n decodeDeltaRle,\n decodeDeltaRleInt64,\n decodeFastPfor,\n decodeNullableRle,\n decodeNullableRleInt64,\n decodeNullableZigZagDelta,\n decodeNullableZigZagDeltaInt64,\n decodeRle,\n decodeRleFloat64,\n decodeRleInt64,\n decodeUnsignedConstRle,\n decodeUnsignedConstRleInt64,\n decodeUnsignedRle,\n decodeUnsignedRleFloat64,\n decodeUnsignedRleInt64,\n decodeVarintInt32,\n decodeVarintInt64,\n decodeVarintFloat64,\n decodeZigZag,\n decodeZigZagConstRle,\n decodeZigZagConstRleInt64,\n decodeZigZagDelta,\n decodeZigZagDeltaFloat64,\n decodeZigZagDeltaInt64,\n decodeZigZagFloat64,\n decodeZigZagInt64,\n decodeZigZagSequenceRle,\n decodeZigZagSequenceRleInt64,\n decodeZigZagValue,\n decodeZigZagValueInt64,\n fastInverseDelta,\n inverseDelta,\n padWithZeros,\n padWithZerosInt64,\n padZigZagWithZeros,\n padZigZagWithZerosInt64,\n rleDeltaDecoding,\n zigZagDeltaOfDeltaDecoding,\n zigZagRleDeltaDecoding,\n} from \"./integerDecodingUtils\";\nimport { LogicalLevelTechnique } from \"../metadata/tile/logicalLevelTechnique\";\nimport { type RleEncodedStreamMetadata } from \"../metadata/tile/rleEncodedStreamMetadata\";\nimport BitVector from \"../vector/flat/bitVector\";\nimport { VectorType } from \"../vector/vectorType\";\nimport type GeometryScaling from \"./geometryScaling\";\n\nexport function decodeIntStream(\n data: Uint8Array,\n offset: IntWrapper,\n streamMetadata: StreamMetadata,\n isSigned: boolean,\n scalingData?: GeometryScaling,\n): Int32Array {\n const values = decodePhysicalLevelTechnique(data, offset, streamMetadata);\n return decodeIntBuffer(values, streamMetadata, isSigned, scalingData);\n}\n\nexport function decodeLengthStreamToOffsetBuffer(\n data: Uint8Array,\n offset: IntWrapper,\n streamMetadata: StreamMetadata,\n): Int32Array {\n const values = decodePhysicalLevelTechnique(data, offset, streamMetadata);\n return decodeLengthToOffsetBuffer(values, streamMetadata);\n}\n\nfunction decodePhysicalLevelTechnique(data: Uint8Array, offset: IntWrapper, streamMetadata: StreamMetadata) {\n const physicalLevelTechnique = streamMetadata.physicalLevelTechnique;\n if (physicalLevelTechnique === PhysicalLevelTechnique.FAST_PFOR) {\n return decodeFastPfor(data, streamMetadata.numValues, streamMetadata.byteLength, offset);\n }\n if (physicalLevelTechnique === PhysicalLevelTechnique.VARINT) {\n return decodeVarintInt32(data, offset, streamMetadata.numValues);\n }\n\n if (physicalLevelTechnique === PhysicalLevelTechnique.NONE) {\n const dataOffset = offset.get();\n const byteLength = streamMetadata.byteLength;\n offset.add(byteLength);\n //TODO: use Byte Rle for geometry type encoding\n const slice = data.subarray(dataOffset, offset.get());\n return new Int32Array(slice);\n }\n\n throw new Error(\"Specified physicalLevelTechnique is not supported (yet).\");\n}\n\nexport function decodeConstIntStream(\n data: Uint8Array,\n offset: IntWrapper,\n streamMetadata: StreamMetadata,\n isSigned: boolean,\n): number {\n const values = decodePhysicalLevelTechnique(data, offset, streamMetadata);\n\n if (values.length === 1) {\n const value = values[0];\n return isSigned ? decodeZigZagValue(value) : value;\n }\n\n return isSigned ? decodeZigZagConstRle(values) : decodeUnsignedConstRle(values);\n}\n\nexport function decodeSequenceIntStream(\n data: Uint8Array,\n offset: IntWrapper,\n streamMetadata: StreamMetadata,\n): [baseValue: number, delta: number] {\n const values = decodePhysicalLevelTechnique(data, offset, streamMetadata);\n return decodeZigZagSequenceRle(values);\n}\n\nexport function decodeSequenceLongStream(\n data: Uint8Array,\n offset: IntWrapper,\n streamMetadata: StreamMetadata,\n): [baseValue: bigint, delta: bigint] {\n const values = decodeVarintInt64(data, offset, streamMetadata.numValues);\n return decodeZigZagSequenceRleInt64(values);\n}\n\nexport function decodeLongStream(\n data: Uint8Array,\n offset: IntWrapper,\n streamMetadata: StreamMetadata,\n isSigned: boolean,\n): BigInt64Array {\n const values = decodeVarintInt64(data, offset, streamMetadata.numValues);\n return decodeLongBuffer(values, streamMetadata, isSigned);\n}\n\nexport function decodeLongFloat64Stream(\n data: Uint8Array,\n offset: IntWrapper,\n streamMetadata: StreamMetadata,\n isSigned: boolean,\n): Float64Array {\n const values = decodeVarintFloat64(data, streamMetadata.numValues, offset);\n return decodeFloat64Buffer(values, streamMetadata, isSigned);\n}\n\nexport function decodeConstLongStream(\n data: Uint8Array,\n offset: IntWrapper,\n streamMetadata: StreamMetadata,\n isSigned: boolean,\n): bigint {\n const values = decodeVarintInt64(data, offset, streamMetadata.numValues);\n\n if (values.length === 1) {\n const value = values[0];\n return isSigned ? decodeZigZagValueInt64(value) : value;\n }\n\n return isSigned ? decodeZigZagConstRleInt64(values) : decodeUnsignedConstRleInt64(values);\n}\n\nfunction decodeIntBuffer(\n values: Int32Array,\n streamMetadata: StreamMetadata,\n isSigned: boolean,\n scalingData?: GeometryScaling,\n): Int32Array {\n /*\n * Currently the encoder uses only fixed combinations of encodings.\n * For performance reasons it is also used a fixed combination of the encodings on the decoding side.\n * The following encodings and combinations are used:\n * - Morton Delta -> always sorted so not ZigZag encoding needed\n * - Delta -> currently always in combination with ZigZag encoding\n * - Rle -> in combination with ZigZag encoding if data type is signed\n * - Delta Rle\n * - Componentwise Delta -> always ZigZag encoding is used\n * */\n switch (streamMetadata.logicalLevelTechnique1) {\n case LogicalLevelTechnique.DELTA:\n if (streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {\n const rleMetadata = streamMetadata as RleEncodedStreamMetadata;\n return decodeDeltaRle(values, rleMetadata.runs, rleMetadata.numRleValues);\n }\n decodeZigZagDelta(values);\n return values;\n case LogicalLevelTechnique.RLE:\n return decodeRle(values, streamMetadata as RleEncodedStreamMetadata, isSigned);\n case LogicalLevelTechnique.MORTON:\n fastInverseDelta(values);\n return values;\n case LogicalLevelTechnique.COMPONENTWISE_DELTA:\n if (scalingData) {\n decodeComponentwiseDeltaVec2Scaled(values, scalingData.scale, scalingData.min, scalingData.max);\n return values;\n }\n\n decodeComponentwiseDeltaVec2(values);\n return values;\n case LogicalLevelTechnique.NONE:\n if (isSigned) {\n decodeZigZag(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 decodeLongBuffer(values: BigInt64Array, streamMetadata: StreamMetadata, isSigned: boolean): BigInt64Array {\n switch (streamMetadata.logicalLevelTechnique1) {\n case LogicalLevelTechnique.DELTA:\n if (streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {\n const rleMetadata = streamMetadata as RleEncodedStreamMetadata;\n return decodeDeltaRleInt64(values, rleMetadata.runs, rleMetadata.numRleValues);\n }\n decodeZigZagDeltaInt64(values);\n return values;\n case LogicalLevelTechnique.RLE:\n return decodeRleInt64(values, streamMetadata as RleEncodedStreamMetadata, isSigned);\n case LogicalLevelTechnique.NONE:\n if (isSigned) {\n decodeZigZagInt64(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\nexport function decodeFloat64Buffer(\n values: Float64Array,\n streamMetadata: StreamMetadata,\n isSigned: boolean,\n): Float64Array {\n switch (streamMetadata.logicalLevelTechnique1) {\n case LogicalLevelTechnique.DELTA:\n if (streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {\n const rleMetadata = streamMetadata as RleEncodedStreamMetadata;\n values = decodeUnsignedRleFloat64(values, rleMetadata.runs, rleMetadata.numRleValues);\n }\n decodeZigZagDeltaFloat64(values);\n return values;\n case LogicalLevelTechnique.RLE:\n return decodeRleFloat64(values, streamMetadata as RleEncodedStreamMetadata, isSigned);\n case LogicalLevelTechnique.NONE:\n if (isSigned) {\n decodeZigZagFloat64(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 decodeLengthToOffsetBuffer(values: Int32Array, streamMetadata: StreamMetadata): Int32Array {\n if (\n streamMetadata.logicalLevelTechnique1 === LogicalLevelTechnique.DELTA &&\n streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.NONE\n ) {\n const decodedValues = zigZagDeltaOfDeltaDecoding(values);\n return decodedValues;\n }\n\n if (\n streamMetadata.logicalLevelTechnique1 === LogicalLevelTechnique.RLE &&\n streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.NONE\n ) {\n const rleMetadata = streamMetadata as RleEncodedStreamMetadata;\n const decodedValues = rleDeltaDecoding(values, rleMetadata.runs, rleMetadata.numRleValues);\n return decodedValues;\n }\n\n if (\n streamMetadata.logicalLevelTechnique1 === LogicalLevelTechnique.NONE &&\n streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.NONE\n ) {\n //TODO: use fastInverseDelta again and check what are the performance problems in zoom 14\n //fastInverseDelta(values);\n inverseDelta(values);\n const offsets = new Int32Array(streamMetadata.numValues + 1);\n offsets[0] = 0;\n offsets.set(values, 1);\n return offsets;\n }\n\n if (\n streamMetadata.logicalLevelTechnique1 === LogicalLevelTechnique.DELTA &&\n streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE\n ) {\n const rleMetadata = streamMetadata as RleEncodedStreamMetadata;\n const decodedValues = zigZagRleDeltaDecoding(values, rleMetadata.runs, rleMetadata.numRleValues);\n fastInverseDelta(decodedValues);\n return decodedValues;\n }\n\n throw new Error(\"Only delta encoding is supported for transforming length to offset streams yet.\");\n}\n\nexport function decodeNullableIntStream(\n data: Uint8Array,\n offset: IntWrapper,\n streamMetadata: StreamMetadata,\n isSigned: boolean,\n bitVector: BitVector,\n): Int32Array {\n const values =\n streamMetadata.physicalLevelTechnique === PhysicalLevelTechnique.FAST_PFOR\n ? decodeFastPfor(data, streamMetadata.numValues, streamMetadata.byteLength, offset)\n : decodeVarintInt32(data, offset, streamMetadata.numValues);\n\n return decodeNullableIntBuffer(values, streamMetadata, isSigned, bitVector);\n}\n\nexport function decodeNullableLongStream(\n data: Uint8Array,\n offset: IntWrapper,\n streamMetadata: StreamMetadata,\n isSigned: boolean,\n bitVector: BitVector,\n): BigInt64Array {\n const values = decodeVarintInt64(data, offset, streamMetadata.numValues);\n return decodeNullableLongBuffer(values, streamMetadata, isSigned, bitVector);\n}\n\nfunction decodeNullableIntBuffer(\n values: Int32Array,\n streamMetadata: StreamMetadata,\n isSigned: boolean,\n bitVector: BitVector,\n): Int32Array {\n switch (streamMetadata.logicalLevelTechnique1) {\n case LogicalLevelTechnique.DELTA:\n if (streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {\n const rleMetadata = streamMetadata as RleEncodedStreamMetadata;\n values = decodeUnsignedRle(values, rleMetadata.runs, rleMetadata.numRleValues);\n }\n return decodeNullableZigZagDelta(bitVector, values);\n case LogicalLevelTechnique.RLE:\n return decodeNullableRle(values, streamMetadata, isSigned, bitVector);\n case LogicalLevelTechnique.MORTON:\n fastInverseDelta(values);\n return values;\n case LogicalLevelTechnique.COMPONENTWISE_DELTA:\n decodeComponentwiseDeltaVec2(values);\n return values;\n case LogicalLevelTechnique.NONE:\n values = isSigned ? padZigZagWithZeros(bitVector, values) : padWithZeros(bitVector, values);\n return values;\n default:\n throw new Error(\"The specified Logical level technique is not supported\");\n }\n}\n\nfunction decodeNullableLongBuffer(\n values: BigInt64Array,\n streamMetadata: StreamMetadata,\n isSigned: boolean,\n bitVector: BitVector,\n): BigInt64Array {\n switch (streamMetadata.logicalLevelTechnique1) {\n case LogicalLevelTechnique.DELTA:\n if (streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE) {\n const rleMetadata = streamMetadata as RleEncodedStreamMetadata;\n values = decodeUnsignedRleInt64(values, rleMetadata.runs, rleMetadata.numRleValues);\n }\n return decodeNullableZigZagDeltaInt64(bitVector, values);\n case LogicalLevelTechnique.RLE:\n return decodeNullableRleInt64(values, streamMetadata, isSigned, bitVector);\n case LogicalLevelTechnique.NONE:\n values = isSigned ? padZigZagWithZerosInt64(bitVector, values) : padWithZerosInt64(bitVector, values);\n return values;\n default:\n throw new Error(\"The specified Logical level technique is not supported\");\n }\n}\n\nexport function getVectorType(\n streamMetadata: StreamMetadata,\n sizeOrNullabilityBuffer: number | BitVector,\n data: Uint8Array,\n offset: IntWrapper,\n): VectorType {\n const logicalLevelTechnique1 = streamMetadata.logicalLevelTechnique1;\n if (logicalLevelTechnique1 === LogicalLevelTechnique.RLE) {\n return (streamMetadata as RleEncodedStreamMetadata).runs === 1 ? VectorType.CONST : VectorType.FLAT;\n }\n\n const numFeatures =\n sizeOrNullabilityBuffer instanceof BitVector ? sizeOrNullabilityBuffer.size() : sizeOrNullabilityBuffer;\n\n if (\n logicalLevelTechnique1 === LogicalLevelTechnique.DELTA &&\n streamMetadata.logicalLevelTechnique2 === LogicalLevelTechnique.RLE\n ) {\n const rleMetadata = streamMetadata as RleEncodedStreamMetadata;\n const runs = rleMetadata.runs;\n const zigZagOne = 2;\n\n if (rleMetadata.numRleValues !== numFeatures) {\n return VectorType.FLAT;\n }\n // Single run is always a sequence\n if (runs === 1) {\n return VectorType.SEQUENCE;\n }\n // Two runs can be a sequence if both deltas are equal to 1\n if (runs === 2) {\n const savedOffset = offset.get();\n\n let values: Int32Array;\n if (streamMetadata.physicalLevelTechnique === PhysicalLevelTechnique.VARINT) {\n values = decodeVarintInt32(data, offset, 4);\n } else {\n const byteOffset = offset.get();\n values = new Int32Array(data.buffer, data.byteOffset + byteOffset, 4);\n }\n offset.set(savedOffset);\n // Check if both deltas are encoded 1\n if (values[2] === zigZagOne && values[3] === zigZagOne) {\n return VectorType.SEQUENCE;\n }\n }\n }\n\n return streamMetadata.numValues === 1 ? VectorType.CONST : VectorType.FLAT;\n}\n"]}