@woosh/meep-engine 3.45.0 → 3.46.0

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 (216) hide show
  1. package/build/bundle-worker-terrain.js +1 -1
  2. package/package.json +1 -1
  3. package/src/core/assert.d.ts.map +1 -1
  4. package/src/core/assert.js +5 -1
  5. package/src/core/binary/hash/XXH128Hash.d.ts +1 -37
  6. package/src/core/binary/hash/XXH128Hash.d.ts.map +1 -1
  7. package/src/core/binary/hash/XXH128Hash.js +4 -55
  8. package/src/core/binary/hash/XXH3_SECRET.d.ts +1 -12
  9. package/src/core/binary/hash/XXH3_SECRET.d.ts.map +1 -1
  10. package/src/core/binary/hash/XXH3_SECRET.js +4 -25
  11. package/src/core/binary/hash/crc32.d.ts +1 -15
  12. package/src/core/binary/hash/crc32.d.ts.map +1 -1
  13. package/src/core/binary/hash/crc32.js +4 -96
  14. package/src/core/binary/hash/xxh3_128.d.ts +1 -9
  15. package/src/core/binary/hash/xxh3_128.d.ts.map +1 -1
  16. package/src/core/binary/hash/xxh3_128.js +4 -341
  17. package/src/core/binary/hash/xxh3_64.d.ts +1 -8
  18. package/src/core/binary/hash/xxh3_64.d.ts.map +1 -1
  19. package/src/core/binary/hash/xxh3_64.js +4 -241
  20. package/src/core/binary/hash/xxh3_common.d.ts +1 -223
  21. package/src/core/binary/hash/xxh3_common.d.ts.map +1 -1
  22. package/src/core/binary/hash/xxh3_common.js +90 -476
  23. package/src/core/collection/array/combine_hash.d.ts +6 -0
  24. package/src/core/collection/array/combine_hash.d.ts.map +1 -1
  25. package/src/core/collection/array/combine_hash.js +6 -0
  26. package/src/core/function/FunctionCompiler.js +2 -2
  27. package/src/core/geom/3d/mat4/m4_multiply.d.ts +3 -0
  28. package/src/core/geom/3d/mat4/m4_multiply.d.ts.map +1 -1
  29. package/src/core/geom/3d/mat4/m4_multiply.js +3 -0
  30. package/src/core/geom/3d/mat4/m4_multiply_f64.d.ts +30 -0
  31. package/src/core/geom/3d/mat4/m4_multiply_f64.d.ts.map +1 -0
  32. package/src/core/geom/3d/mat4/m4_multiply_f64.js +106 -0
  33. package/src/core/geom/ConicRay.js +2 -2
  34. package/src/core/geom/Vector4.d.ts.map +1 -1
  35. package/src/core/geom/Vector4.js +8 -5
  36. package/src/core/math/hash/XXH128Hash.d.ts +38 -0
  37. package/src/core/math/hash/XXH128Hash.d.ts.map +1 -0
  38. package/src/core/math/hash/XXH128Hash.js +55 -0
  39. package/src/core/math/hash/XXH3_SECRET.d.ts +13 -0
  40. package/src/core/math/hash/XXH3_SECRET.d.ts.map +1 -0
  41. package/src/core/math/hash/XXH3_SECRET.js +25 -0
  42. package/src/core/math/hash/crc32.d.ts +16 -0
  43. package/src/core/math/hash/crc32.d.ts.map +1 -0
  44. package/src/core/math/hash/crc32.js +96 -0
  45. package/src/core/math/hash/xxh3_128.d.ts +10 -0
  46. package/src/core/math/hash/xxh3_128.d.ts.map +1 -0
  47. package/src/core/math/hash/xxh3_128.js +341 -0
  48. package/src/core/math/hash/xxh3_64.d.ts +9 -0
  49. package/src/core/math/hash/xxh3_64.d.ts.map +1 -0
  50. package/src/core/math/hash/xxh3_64.js +241 -0
  51. package/src/core/math/hash/xxh3_common.d.ts +224 -0
  52. package/src/core/math/hash/xxh3_common.d.ts.map +1 -0
  53. package/src/core/math/hash/xxh3_common.js +476 -0
  54. package/src/core/math/lookup/ParameterLookupTable.js +2 -2
  55. package/src/core/model/node-graph/node/NodeInstancePortReference.js +2 -2
  56. package/src/core/model/reactive/model/ReactiveBinaryExpression.js +2 -2
  57. package/src/core/model/reactive/model/terminal/ReactiveReference.js +2 -2
  58. package/src/engine/asset/AssetDescription.js +2 -2
  59. package/src/engine/ecs/animation/Animation.js +2 -2
  60. package/src/engine/ecs/animation/AnimationClip.d.ts.map +1 -1
  61. package/src/engine/ecs/animation/AnimationClip.js +7 -5
  62. package/src/engine/ecs/gui/GUIElement.d.ts.map +1 -1
  63. package/src/engine/ecs/gui/GUIElement.js +7 -5
  64. package/src/engine/ecs/gui/hud/HeadsUpDisplay.js +2 -2
  65. package/src/engine/ecs/gui/position/ViewportPosition.d.ts.map +1 -1
  66. package/src/engine/ecs/gui/position/ViewportPosition.js +11 -7
  67. package/src/engine/ecs/transform/Transform64.d.ts +1 -1
  68. package/src/engine/ecs/transform/Transform64.d.ts.map +1 -1
  69. package/src/engine/ecs/transform/Transform64.js +5 -4
  70. package/src/engine/graphics/ecs/animation/animator/AnimationClip.d.ts.map +1 -1
  71. package/src/engine/graphics/ecs/animation/animator/AnimationClip.js +8 -5
  72. package/src/engine/graphics/ecs/animation/animator/AnimationClipDefinition.js +2 -2
  73. package/src/engine/graphics/ecs/animation/animator/AnimationNotification.js +2 -2
  74. package/src/engine/graphics/ecs/animation/animator/AnimationNotificationDefinition.js +2 -2
  75. package/src/engine/graphics/ecs/animation/animator/graph/definition/AnimationGraphDefinition.js +2 -2
  76. package/src/engine/graphics/ecs/animation/animator/graph/definition/AnimationStateDefinition.js +2 -2
  77. package/src/engine/graphics/ecs/animation/animator/graph/definition/AnimationTransitionDefinition.d.ts.map +1 -1
  78. package/src/engine/graphics/ecs/animation/animator/graph/definition/AnimationTransitionDefinition.js +8 -5
  79. package/src/engine/graphics/ecs/decal/v2/Decal.d.ts.map +1 -1
  80. package/src/engine/graphics/ecs/decal/v2/Decal.js +9 -8
  81. package/src/engine/graphics/render/frame_graph/resource/TextureResourceDescriptor.d.ts.map +1 -1
  82. package/src/engine/graphics/render/frame_graph/resource/TextureResourceDescriptor.js +9 -6
  83. package/src/engine/graphics3/ParticipatingMedia.js +204 -204
  84. package/src/engine/graphics3/animation/AnimationClips.d.ts +5 -0
  85. package/src/engine/graphics3/animation/AnimationClips.d.ts.map +1 -1
  86. package/src/engine/graphics3/animation/AnimationClips.js +5 -0
  87. package/src/engine/grid/obstacle/GridObstacle.js +2 -2
  88. package/src/engine/intelligence/behavior/selector/WeightedElement.js +2 -2
  89. package/src/engine/interpolation/Interpolated.js +2 -2
  90. package/src/engine/physics/cloth/ecs/Cloth.d.ts.map +1 -1
  91. package/src/engine/physics/cloth/ecs/Cloth.js +7 -5
  92. package/src/engine/physics/cloth/ecs/ClothCollider.d.ts.map +1 -1
  93. package/src/engine/physics/cloth/ecs/ClothCollider.js +7 -5
  94. package/src/engine/physics/cloth/ecs/ClothDynamics.d.ts.map +1 -1
  95. package/src/engine/physics/cloth/ecs/ClothDynamics.js +20 -11
  96. package/src/engine/physics/fluid/FluidField.d.ts.map +1 -1
  97. package/src/engine/physics/fluid/FluidField.js +7 -5
  98. package/src/engine/physics/fluid/ecs/FluidComponent.d.ts.map +1 -1
  99. package/src/engine/physics/fluid/ecs/FluidComponent.js +19 -11
  100. package/src/engine/physics/fluid/effector/AbstractFluidEffector.d.ts +2 -2
  101. package/src/engine/physics/fluid/effector/AbstractFluidEffector.js +2 -2
  102. package/src/engine/physics/fluid/effector/GlobalFluidEffector.d.ts.map +1 -1
  103. package/src/engine/physics/fluid/effector/GlobalFluidEffector.js +11 -7
  104. package/src/engine/physics/fluid/effector/ImpulseFluidEffector.d.ts.map +1 -1
  105. package/src/engine/physics/fluid/effector/ImpulseFluidEffector.js +11 -7
  106. package/src/engine/physics/fluid/effector/WakeFluidEffector.d.ts.map +1 -1
  107. package/src/engine/physics/fluid/effector/WakeFluidEffector.js +16 -9
  108. package/src/engine/sound/ecs/audio/AudioEmitter.d.ts.map +1 -1
  109. package/src/engine/sound/ecs/audio/AudioEmitter.js +12 -7
  110. package/src/engine/sound/ecs/trigger/AudioEventTrigger.d.ts.map +1 -1
  111. package/src/engine/sound/ecs/trigger/AudioEventTrigger.js +192 -191
  112. package/src/engine/sound/simulation/core/AcousticMedium.js +2 -2
  113. package/src/engine/sound/simulation/definition/AcousticDirectivity.js +2 -2
  114. package/src/engine/sound/simulation/definition/AcousticMaterial.d.ts.map +1 -1
  115. package/src/engine/sound/simulation/definition/AcousticMaterial.js +11 -7
  116. package/src/engine/sound/sopra/definition/BusDefinition.d.ts.map +1 -1
  117. package/src/engine/sound/sopra/definition/BusDefinition.js +5 -4
  118. package/src/engine/sound/sopra/definition/DuckingRule.d.ts.map +1 -1
  119. package/src/engine/sound/sopra/definition/DuckingRule.js +7 -5
  120. package/src/engine/sound/sopra/definition/EventDescription.d.ts.map +1 -1
  121. package/src/engine/sound/sopra/definition/EventDescription.js +23 -13
  122. package/src/engine/sound/sopra/definition/MixerSnapshot.js +2 -2
  123. package/src/engine/sound/sopra/definition/ParameterDefinition.d.ts.map +1 -1
  124. package/src/engine/sound/sopra/definition/ParameterDefinition.js +7 -5
  125. package/src/engine/sound/sopra/definition/clip/AbstractAudioClip.js +2 -2
  126. package/src/engine/sound/sopra/definition/clip/BlendContainerAudioClip.d.ts.map +1 -1
  127. package/src/engine/sound/sopra/definition/clip/BlendContainerAudioClip.js +4 -3
  128. package/src/engine/sound/sopra/definition/clip/ContainerAudioClip.js +2 -2
  129. package/src/engine/sound/sopra/definition/clip/RandomContainerAudioClip.js +3 -3
  130. package/src/engine/sound/sopra/definition/clip/SampleAudioClip.d.ts.map +1 -1
  131. package/src/engine/sound/sopra/definition/clip/SampleAudioClip.js +16 -9
  132. package/src/engine/sound/sopra/definition/clip/SilenceAudioClip.js +2 -2
  133. package/src/engine/sound/sopra/definition/clip/SwitchContainerAudioClip.d.ts +1 -1
  134. package/src/engine/sound/sopra/definition/clip/SwitchContainerAudioClip.d.ts.map +1 -1
  135. package/src/engine/sound/sopra/definition/clip/SwitchContainerAudioClip.js +2 -2
  136. package/src/engine/sound/sopra/definition/effect/CompressorEffect.d.ts.map +1 -1
  137. package/src/engine/sound/sopra/definition/effect/CompressorEffect.js +7 -5
  138. package/src/engine/sound/sopra/definition/effect/EqEffect.d.ts.map +1 -1
  139. package/src/engine/sound/sopra/definition/effect/EqEffect.js +8 -5
  140. package/src/engine/sound/sopra/definition/effect/ReverbEffect.js +2 -2
  141. package/src/engine/sound/sopra/legacy/SoundEmitter.d.ts.map +1 -1
  142. package/src/engine/sound/sopra/legacy/SoundEmitter.js +357 -352
  143. package/src/engine/sound/sopra/legacy/SoundTrack.d.ts.map +1 -1
  144. package/src/engine/sound/sopra/legacy/SoundTrack.js +281 -278
  145. package/src/format/image/png/PNGReader.js +644 -644
  146. package/src/format/image/png/crc32.d.ts +1 -1
  147. package/src/format/image/png/crc32.js +7 -8
  148. package/src/shade/descriptor/binding/BindGroupLayoutDescriptor.js +2 -2
  149. package/src/shade/descriptor/binding/BindGroupLayoutEntry.d.ts.map +1 -1
  150. package/src/shade/descriptor/binding/BindGroupLayoutEntry.js +12 -8
  151. package/src/shade/descriptor/binding/StorageTextureBindingLayout.js +2 -2
  152. package/src/shade/descriptor/binding/TextureBindingLayout.js +2 -2
  153. package/src/shade/descriptor/blend/BlendComponent.js +2 -2
  154. package/src/shade/descriptor/pipeline/PipelineDescriptorBase.js +2 -2
  155. package/src/shade/descriptor/pipeline/PipelineLayoutDescriptor.js +2 -2
  156. package/src/shade/descriptor/pipeline/ProgrammableStage.js +2 -2
  157. package/src/shade/descriptor/pipeline/compute/ComputePipelineDescriptor.js +2 -2
  158. package/src/shade/descriptor/pipeline/render/ColorTargetState.js +2 -2
  159. package/src/shade/descriptor/pipeline/render/FragmentState.js +2 -2
  160. package/src/shade/descriptor/pipeline/render/PrimitiveState.js +2 -2
  161. package/src/shade/descriptor/pipeline/render/RenderPipelineDescriptor.d.ts.map +1 -1
  162. package/src/shade/descriptor/pipeline/render/RenderPipelineDescriptor.js +8 -5
  163. package/src/shade/descriptor/pipeline/render/VertexAttribute.js +2 -2
  164. package/src/shade/descriptor/texture/SamplerDescriptor.d.ts.map +1 -1
  165. package/src/shade/descriptor/texture/SamplerDescriptor.js +20 -12
  166. package/src/shade/descriptor/texture/TextureDescriptor.d.ts.map +1 -1
  167. package/src/shade/descriptor/texture/TextureDescriptor.js +11 -7
  168. package/src/shade/device/graph/BufferResourceDescriptor.d.ts.map +1 -1
  169. package/src/shade/device/graph/BufferResourceDescriptor.js +196 -193
  170. package/src/shade/device/graph/TextureResourceDescriptor.d.ts.map +1 -1
  171. package/src/shade/device/graph/TextureResourceDescriptor.js +178 -173
  172. package/src/shade/device/timing/profile/sgpt_read_header.js +1 -1
  173. package/src/shade/device/timing/profile/sgpt_read_records.js +1 -1
  174. package/src/shade/device/timing/profile/sgpt_write_header.js +1 -1
  175. package/src/shade/device/timing/profile/sgpt_write_record.js +1 -1
  176. package/src/shade/renderer/binding/BufferBinding.js +2 -2
  177. package/src/shade/renderer/camera/Camera.js +2 -2
  178. package/src/shade/renderer/geometry/Attribute.js +2 -2
  179. package/src/shade/renderer/geometry/Geometry.js +2 -2
  180. package/src/shade/renderer/geometry/geometry_deduplicate_vertices.js +2 -2
  181. package/src/shade/renderer/geometry/meshlet/MeshletBatch.js +2 -2
  182. package/src/shade/renderer/geometry/virtual/format/checksum/vgeo_compute_asset_id.js +13 -13
  183. package/src/shade/renderer/geometry/virtual/format/checksum/vgeo_compute_directory_block_checksum.js +41 -41
  184. package/src/shade/renderer/geometry/virtual/format/checksum/vgeo_compute_frame_checksum.js +41 -41
  185. package/src/shade/renderer/geometry/virtual/format/checksum/vgeo_compute_header_checksum.js +25 -25
  186. package/src/shade/renderer/material/StandardShadeMaterial.d.ts.map +1 -1
  187. package/src/shade/renderer/material/StandardShadeMaterial.js +13 -8
  188. package/src/shade/renderer/scene/optimization/geometry/internal/triangle_fingerprint_stream.d.ts.map +1 -1
  189. package/src/shade/renderer/scene/optimization/geometry/internal/triangle_fingerprint_stream.js +14 -5
  190. package/src/shade/renderer/scene/optimization/sampler2d_from_image_bitmap.js +1 -1
  191. package/src/shade/renderer/shader/type/WGSLStructField.js +2 -2
  192. package/src/shade/renderer/shader/type/WebGPUArray.js +2 -2
  193. package/src/shade/renderer/shader/type/WebGPUStruct.d.ts.map +1 -1
  194. package/src/shade/renderer/shader/type/WebGPUStruct.js +9 -6
  195. package/src/shade/renderer/texture/ShadeTexture.d.ts.map +1 -1
  196. package/src/shade/renderer/texture/ShadeTexture.js +17 -10
  197. package/src/shade/renderer/texture/mipmaps/WebGPUMipmapGenerator.js +2 -2
  198. package/src/shade/renderer/water/surface/chunk_water_surface_sample.d.ts +4 -4
  199. package/src/shade/renderer/water/surface/chunk_water_surface_sample.js +6 -6
  200. package/src/shade/renderer/water/surface/particles/GPUWaterParticles.d.ts.map +1 -1
  201. package/src/shade/renderer/water/surface/particles/GPUWaterParticles.js +46 -55
  202. package/src/shade/renderer/water/surface/particles/WATER_PARTICLE_STRUCT.d.ts +3 -3
  203. package/src/shade/renderer/water/surface/particles/WATER_PARTICLE_STRUCT.d.ts.map +1 -1
  204. package/src/shade/renderer/water/surface/particles/WATER_PARTICLE_STRUCT.js +14 -4
  205. package/src/shade/renderer/water/surface/particles/chunk_water_particle.d.ts +10 -1
  206. package/src/shade/renderer/water/surface/particles/chunk_water_particle.d.ts.map +1 -1
  207. package/src/shade/renderer/water/surface/particles/chunk_water_particle.js +82 -40
  208. package/src/shade/renderer/water/surface/particles/chunk_water_particle_step.d.ts +4 -1
  209. package/src/shade/renderer/water/surface/particles/chunk_water_particle_step.d.ts.map +1 -1
  210. package/src/shade/renderer/water/surface/particles/chunk_water_particle_step.js +8 -4
  211. package/src/shade/renderer/water/surface/particles/shader_water_particles.d.ts +98 -86
  212. package/src/shade/renderer/water/surface/particles/shader_water_particles.d.ts.map +1 -1
  213. package/src/shade/renderer/water/surface/particles/shader_water_particles.js +440 -298
  214. package/src/view/common/HTMLElementCacheKey.d.ts.map +1 -1
  215. package/src/view/common/HTMLElementCacheKey.js +4 -3
  216. package/src/view/minimap/MinimapMarker.js +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"m4_multiply_f64.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/mat4/m4_multiply_f64.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qCALW,YAAY,KACZ,YAAY,KACZ,YAAY,GACV,YAAY,CA6ExB"}
@@ -0,0 +1,106 @@
1
+ import { assert } from "../../../assert.js";
2
+
3
+ /**
4
+ * Multiplies two 4x4 matrices held in `Float64Array`s.
5
+ * `out = a * b`.
6
+ *
7
+ * A deliberate duplicate of {@link m4_multiply}: the same arithmetic in the same order, so the two give
8
+ * the same result bit for bit, and they must stay identical. Change one, change the other.
9
+ *
10
+ * It exists because {@link m4_multiply} is shared. About twenty modules call it, with `Float32Array`,
11
+ * `Float64Array`, `Transform64` and plain `Array` operands, and V8 keeps one set of type feedback per
12
+ * function, so its element loads and stores go megamorphic. A megamorphic store boxes every number it
13
+ * writes into a fresh HeapNumber. Measured in the dance-stage example (2026-10-12), on `Transform64`
14
+ * operands: 193 B per call through the shared {@link m4_multiply}, ~10 B through an identical copy no
15
+ * other caller reached. `Transform64#multiplyTransforms` composes every attached entity, ~1,700 calls a
16
+ * frame there, and that boxing was a third of the main thread's allocation.
17
+ *
18
+ * So this copy must only ever see `Float64Array` storage; a `Transform64` is one. A single caller passing
19
+ * a `Float32Array` or an `Array` would pollute this copy's feedback too, and bring the boxing back for
20
+ * every caller. The assertions are what keep such a caller out: anything else goes through
21
+ * {@link m4_multiply}.
22
+ *
23
+ * All of `a` is read before the first write, and each column of `b` before the column of `out` it
24
+ * produces, so `out` may be `a` or `b`.
25
+ *
26
+ * @param {Float64Array} out the receiving matrix
27
+ * @param {Float64Array} a the first operand
28
+ * @param {Float64Array} b the second operand
29
+ * @returns {Float64Array} `out` parameter
30
+ */
31
+ export function m4_multiply_f64(out, a, b) {
32
+ // A bare instanceof, not assert.isInstanceOf: that one is shared by every call site in the engine,
33
+ // and once it had seen their mix of classes, this function took 21 ns a call through it against
34
+ // 15.5 ns this way (node 24, 2026-10-12, a build that keeps assertions). Each check throws before
35
+ // the first element access, so a rejected operand never reaches this copy's element feedback.
36
+ assert.ok(out instanceof Float64Array, 'out is not a Float64Array');
37
+ assert.greaterThanOrEqual(out.length, 16, 'out.length');
38
+
39
+ assert.ok(a instanceof Float64Array, 'a is not a Float64Array');
40
+ assert.greaterThanOrEqual(a.length, 16, 'a.length');
41
+
42
+ assert.ok(b instanceof Float64Array, 'b is not a Float64Array');
43
+ assert.greaterThanOrEqual(b.length, 16, 'b.length');
44
+
45
+ // Adapted from gl-matrix, by way of m4_multiply
46
+
47
+ const a00 = a[0],
48
+ a01 = a[1],
49
+ a02 = a[2],
50
+ a03 = a[3],
51
+ a10 = a[4],
52
+ a11 = a[5],
53
+ a12 = a[6],
54
+ a13 = a[7],
55
+ a20 = a[8],
56
+ a21 = a[9],
57
+ a22 = a[10],
58
+ a23 = a[11],
59
+ a30 = a[12],
60
+ a31 = a[13],
61
+ a32 = a[14],
62
+ a33 = a[15];
63
+
64
+ // Cache only the current line of the second matrix
65
+ let b0 = b[0],
66
+ b1 = b[1],
67
+ b2 = b[2],
68
+ b3 = b[3];
69
+
70
+ out[0] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;
71
+ out[1] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;
72
+ out[2] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;
73
+ out[3] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;
74
+
75
+ b0 = b[4];
76
+ b1 = b[5];
77
+ b2 = b[6];
78
+ b3 = b[7];
79
+
80
+ out[4] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;
81
+ out[5] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;
82
+ out[6] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;
83
+ out[7] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;
84
+
85
+ b0 = b[8];
86
+ b1 = b[9];
87
+ b2 = b[10];
88
+ b3 = b[11];
89
+
90
+ out[8] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;
91
+ out[9] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;
92
+ out[10] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;
93
+ out[11] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;
94
+
95
+ b0 = b[12];
96
+ b1 = b[13];
97
+ b2 = b[14];
98
+ b3 = b[15];
99
+
100
+ out[12] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;
101
+ out[13] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;
102
+ out[14] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;
103
+ out[15] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;
104
+
105
+ return out;
106
+ }
@@ -1,5 +1,5 @@
1
1
  import { assert } from "../assert.js";
2
- import { combine_hash } from "../collection/array/combine_hash.js";
2
+ import { hash_mix2 } from "../math/hash/hash_mix2.js";
3
3
  import { EPSILON } from "../math/EPSILON.js";
4
4
  import { epsilonEquals } from "../math/epsilonEquals.js";
5
5
  import { PI2 } from "../math/PI2.js";
@@ -90,7 +90,7 @@ export class ConicRay {
90
90
  * @return {number}
91
91
  */
92
92
  hash() {
93
- return combine_hash(
93
+ return hash_mix2(
94
94
  computeHashFloat(this.angle),
95
95
  this.direction.hash()
96
96
  );
@@ -1 +1 @@
1
- {"version":3,"file":"Vector4.d.ts","sourceRoot":"","sources":["../../../../src/core/geom/Vector4.js"],"names":[],"mappings":"AAMA;;;GAGG;AAGH;;GAEG;AACH;;;;;;;;;;;;;GAaG;AACH,8DAFwB,MAAM;IAuc1B;;;;;;OAMG;IACH,gBALW,OAAO,MACP,OAAO,qBAEP,OAAO,QASjB;IApbD;;;;OAIG;IACH,uDAEC;IArCD;;;;;;;;OAQG;IACH,gBAPW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,EAuBhB;IAXG,UAAW;IACX,UAAW;IACX,UAAW;IACX,UAAW;IAEX;;;;OAIG;IACH,wBAA6B;IAoBjC;;;OAGG;IACH,iBAEC;IAdD;;;OAGG;IACH,gBAEC;IAkBD;;;OAGG;IACH,iBAEC;IAdD;;;OAGG;IACH,gBAEC;IAkBD;;;OAGG;IACH,iBAEC;IAdD;;;OAGG;IACH,gBAEC;IAkBD;;;OAGG;IACH,iBAEC;IAdD;;;OAGG;IACH,gBAEC;IAUD;;;;OAIG;IACH,qBAHW,MAAM,EAAE,WACR,MAAM,QAShB;IAED;;;;OAIG;IACH,oBAHW,MAAM,EAAE,WACR,MAAM,QAOhB;IAED;;;;;;;OAOG;IACH,iDAFa,OAAO,CAkCnB;IAED;;;OAGG;IACH,oBAFW,OAAO,QAQjB;IAED;;;;OAIG;IACH,+BAFa,OAAO,CAOnB;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,kBAlBW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,GACJ,OAAO,CAoBnB;IAED;;;;OAIG;IACH,WAHW,OAAO,GACL,MAAM,CAIlB;IAED;;;;OAIG;IACH,SAHW,OAAO,GAAC,OAAO,GACb,OAAO,CASnB;IAED;;;;;;;OAOG;IACH,QANW,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,GACJ,IAAI,CAShB;IAED;;;;;OAKG;IACH,iBAJW,OAAO,SACP,MAAM,GACJ,IAAI,CAShB;IAED;;;;OAIG;IACH,qBAHW;QAAC,QAAQ,EAAE,MAAM,EAAE,GAAC,YAAY,CAAA;KAAC,GAC/B,OAAO,CAInB;IAED;;;;OAIG;IACH,gBAHW,MAAM,EAAE,GAAC,YAAY,GACpB,OAAO,CASlB;IAED;;;;OAIG;IACH,WAHW,OAAO,GACL,OAAO,CAInB;IAED;;;OAGG;IACH,SAFa,OAAO,CAQnB;IAED;;;OAGG;IACH,mBAFW,UAAU,QAyBpB;IAED;;;;OAIG;IACH,aAHW,OAAO,GACL,OAAO,CAInB;IAED;;;OAGG;IACH,QAFY,MAAM,CASjB;IAED;;;;OAIG;IACH,gBAJW,OAAO,MACP,OAAO,mBAKjB;IAGD;;OAEG;IACH,WAFa,MAAM,EAAE,CAQpB;IAED;;;;OAIG;IACH,mBAHW,MAAM,EAAE,UACR,MAAM,QAIhB;IAED;;;;;MAOC;IAED,0BAEC;IAED;;;OAGG;IACH,uBAFW,YAAY,QAOtB;IAED;;;OAGG;IACH,yBAFW,YAAY,QAStB;IAmBL;;;OAGG;IACH,oBAFU,OAAO,CAEU;IAE3B,mBAlXe,MAAM,EAAE,WACR,MAAM,UAiXM;IAC3B,iBArWe,MAAM,EAAE,WACR,MAAM,UAoWI;CATxB;;kBAaS,MAAM;;;yBAvfH,OAAO,iBAAiB,EAAE,UAAU;sBACpC,OAAO,cAAc,EAAE,OAAO;2BAK9B,OAAO,2BAA2B,EAAE,YAAY"}
1
+ {"version":3,"file":"Vector4.d.ts","sourceRoot":"","sources":["../../../../src/core/geom/Vector4.js"],"names":[],"mappings":"AAOA;;;GAGG;AAGH;;GAEG;AACH;;;;;;;;;;;;;GAaG;AACH,8DAFwB,MAAM;IAyc1B;;;;;;OAMG;IACH,gBALW,OAAO,MACP,OAAO,qBAEP,OAAO,QASjB;IAtbD;;;;OAIG;IACH,uDAEC;IArCD;;;;;;;;OAQG;IACH,gBAPW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,EAuBhB;IAXG,UAAW;IACX,UAAW;IACX,UAAW;IACX,UAAW;IAEX;;;;OAIG;IACH,wBAA6B;IAoBjC;;;OAGG;IACH,iBAEC;IAdD;;;OAGG;IACH,gBAEC;IAkBD;;;OAGG;IACH,iBAEC;IAdD;;;OAGG;IACH,gBAEC;IAkBD;;;OAGG;IACH,iBAEC;IAdD;;;OAGG;IACH,gBAEC;IAkBD;;;OAGG;IACH,iBAEC;IAdD;;;OAGG;IACH,gBAEC;IAUD;;;;OAIG;IACH,qBAHW,MAAM,EAAE,WACR,MAAM,QAShB;IAED;;;;OAIG;IACH,oBAHW,MAAM,EAAE,WACR,MAAM,QAOhB;IAED;;;;;;;OAOG;IACH,iDAFa,OAAO,CAkCnB;IAED;;;OAGG;IACH,oBAFW,OAAO,QAQjB;IAED;;;;OAIG;IACH,+BAFa,OAAO,CAOnB;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,kBAlBW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,GACJ,OAAO,CAoBnB;IAED;;;;OAIG;IACH,WAHW,OAAO,GACL,MAAM,CAIlB;IAED;;;;OAIG;IACH,SAHW,OAAO,GAAC,OAAO,GACb,OAAO,CASnB;IAED;;;;;;;OAOG;IACH,QANW,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,GACJ,IAAI,CAShB;IAED;;;;;OAKG;IACH,iBAJW,OAAO,SACP,MAAM,GACJ,IAAI,CAShB;IAED;;;;OAIG;IACH,qBAHW;QAAC,QAAQ,EAAE,MAAM,EAAE,GAAC,YAAY,CAAA;KAAC,GAC/B,OAAO,CAInB;IAED;;;;OAIG;IACH,gBAHW,MAAM,EAAE,GAAC,YAAY,GACpB,OAAO,CASlB;IAED;;;;OAIG;IACH,WAHW,OAAO,GACL,OAAO,CAInB;IAED;;;OAGG;IACH,SAFa,OAAO,CAQnB;IAED;;;OAGG;IACH,mBAFW,UAAU,QAyBpB;IAED;;;;OAIG;IACH,aAHW,OAAO,GACL,OAAO,CAInB;IAED;;;OAGG;IACH,QAFY,MAAM,CAWjB;IAED;;;;OAIG;IACH,gBAJW,OAAO,MACP,OAAO,mBAKjB;IAGD;;OAEG;IACH,WAFa,MAAM,EAAE,CAQpB;IAED;;;;OAIG;IACH,mBAHW,MAAM,EAAE,UACR,MAAM,QAIhB;IAED;;;;;MAOC;IAED,0BAEC;IAED;;;OAGG;IACH,uBAFW,YAAY,QAOtB;IAED;;;OAGG;IACH,yBAFW,YAAY,QAStB;IAmBL;;;OAGG;IACH,oBAFU,OAAO,CAEU;IAE3B,mBApXe,MAAM,EAAE,WACR,MAAM,UAmXM;IAC3B,iBAvWe,MAAM,EAAE,WACR,MAAM,UAsWI;CATxB;;kBAaS,MAAM;;;yBAzfH,OAAO,iBAAiB,EAAE,UAAU;sBACpC,OAAO,cAAc,EAAE,OAAO;2BAK9B,OAAO,2BAA2B,EAAE,YAAY"}
@@ -1,5 +1,6 @@
1
1
  import { assert } from "../assert.js";
2
- import { combine_hash } from "../collection/array/combine_hash.js";
2
+ import { hash_mix2 } from "../math/hash/hash_mix2.js";
3
+ import { hash_mix3 } from "../math/hash/hash_mix3.js";
3
4
  import { Signal } from "../events/signal/Signal.js";
4
5
  import { lerp } from "../math/lerp.js";
5
6
  import { computeHashFloat } from "../primitives/numbers/computeHashFloat.js";
@@ -405,10 +406,12 @@ export class Vector4 extends Float64Array {
405
406
  * @return {number}
406
407
  */
407
408
  hash() {
408
- return combine_hash(
409
- computeHashFloat(this[0]),
410
- computeHashFloat(this[1]),
411
- computeHashFloat(this[2]),
409
+ return hash_mix2(
410
+ hash_mix3(
411
+ computeHashFloat(this[0]),
412
+ computeHashFloat(this[1]),
413
+ computeHashFloat(this[2])
414
+ ),
412
415
  computeHashFloat(this[3])
413
416
  );
414
417
  }
@@ -0,0 +1,38 @@
1
+ /**
2
+ * A 128-bit xxHash3 result, kept as its two 64-bit halves because that is how the reference
3
+ * implementation names them and how every serialized form writes them.
4
+ *
5
+ * @author Alex Goldring
6
+ * @copyright Company Named Limited (c) 2026
7
+ */
8
+ export class XXH128Hash {
9
+ /**
10
+ * @param {bigint} low64
11
+ * @param {bigint} high64
12
+ */
13
+ constructor(low64: bigint, high64: bigint);
14
+ /**
15
+ * @type {bigint}
16
+ */
17
+ low64: bigint;
18
+ /**
19
+ * @type {bigint}
20
+ */
21
+ high64: bigint;
22
+ /**
23
+ * @param {XXH128Hash} other
24
+ * @returns {boolean}
25
+ */
26
+ equals(other: XXH128Hash): boolean;
27
+ /**
28
+ * @returns {string} 32 lowercase hex digits, high half first
29
+ */
30
+ toString(): string;
31
+ /**
32
+ * Useful for type checking
33
+ * @readonly
34
+ * @type {boolean}
35
+ */
36
+ readonly isXXH128Hash: boolean;
37
+ }
38
+ //# sourceMappingURL=XXH128Hash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XXH128Hash.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/hash/XXH128Hash.js"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH;IAWI;;;OAGG;IACH,mBAHW,MAAM,UACN,MAAM,EAQhB;IApBD;;OAEG;IACH,OAFU,MAAM,CAEL;IAEX;;OAEG;IACH,QAFU,MAAM,CAEJ;IAcZ;;;OAGG;IACH,cAHW,UAAU,GACR,OAAO,CAInB;IAED;;OAEG;IACH,YAFa,MAAM,CAIlB;IAGL;;;;OAIG;IACH,uBAFU,OAAO,CAEgB;CAPhC"}
@@ -0,0 +1,55 @@
1
+ import { assert } from "../../assert.js";
2
+ import { XXH_MASK_64 } from "./xxh3_common.js";
3
+
4
+ /**
5
+ * A 128-bit xxHash3 result, kept as its two 64-bit halves because that is how the reference
6
+ * implementation names them and how every serialized form writes them.
7
+ *
8
+ * @author Alex Goldring
9
+ * @copyright Company Named Limited (c) 2026
10
+ */
11
+ export class XXH128Hash {
12
+ /**
13
+ * @type {bigint}
14
+ */
15
+ low64 = 0n;
16
+
17
+ /**
18
+ * @type {bigint}
19
+ */
20
+ high64 = 0n;
21
+
22
+ /**
23
+ * @param {bigint} low64
24
+ * @param {bigint} high64
25
+ */
26
+ constructor(low64, high64) {
27
+ assert.equal(typeof low64, 'bigint', `low64 must be a bigint, instead was '${typeof low64}'`);
28
+ assert.equal(typeof high64, 'bigint', `high64 must be a bigint, instead was '${typeof high64}'`);
29
+
30
+ this.low64 = low64 & XXH_MASK_64;
31
+ this.high64 = high64 & XXH_MASK_64;
32
+ }
33
+
34
+ /**
35
+ * @param {XXH128Hash} other
36
+ * @returns {boolean}
37
+ */
38
+ equals(other) {
39
+ return this.low64 === other.low64 && this.high64 === other.high64;
40
+ }
41
+
42
+ /**
43
+ * @returns {string} 32 lowercase hex digits, high half first
44
+ */
45
+ toString() {
46
+ return this.high64.toString(16).padStart(16, '0') + this.low64.toString(16).padStart(16, '0');
47
+ }
48
+ }
49
+
50
+ /**
51
+ * Useful for type checking
52
+ * @readonly
53
+ * @type {boolean}
54
+ */
55
+ XXH128Hash.prototype.isXXH128Hash = true;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * xxHash3's default secret — the pseudorandom key material every unseeded hash mixes with, taken
3
+ * directly from FARSH by the reference implementation. Reproduced byte-for-byte; changing a single
4
+ * byte changes every hash this module produces.
5
+ *
6
+ * @see https://github.com/Cyan4973/xxHash/blob/dev/xxhash.h
7
+ * @readonly
8
+ * @type {Uint8Array}
9
+ *
10
+ * @copyright Company Named Limited (c) 2026
11
+ */
12
+ export const XXH3_SECRET: Uint8Array;
13
+ //# sourceMappingURL=XXH3_SECRET.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XXH3_SECRET.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/hash/XXH3_SECRET.js"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,0BAJU,UAAU,CAiBjB"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * xxHash3's default secret — the pseudorandom key material every unseeded hash mixes with, taken
3
+ * directly from FARSH by the reference implementation. Reproduced byte-for-byte; changing a single
4
+ * byte changes every hash this module produces.
5
+ *
6
+ * @see https://github.com/Cyan4973/xxHash/blob/dev/xxhash.h
7
+ * @readonly
8
+ * @type {Uint8Array}
9
+ *
10
+ * @copyright Company Named Limited (c) 2026
11
+ */
12
+ export const XXH3_SECRET = new Uint8Array([
13
+ 0xb8, 0xfe, 0x6c, 0x39, 0x23, 0xa4, 0x4b, 0xbe, 0x7c, 0x01, 0x81, 0x2c, 0xf7, 0x21, 0xad, 0x1c,
14
+ 0xde, 0xd4, 0x6d, 0xe9, 0x83, 0x90, 0x97, 0xdb, 0x72, 0x40, 0xa4, 0xa4, 0xb7, 0xb3, 0x67, 0x1f,
15
+ 0xcb, 0x79, 0xe6, 0x4e, 0xcc, 0xc0, 0xe5, 0x78, 0x82, 0x5a, 0xd0, 0x7d, 0xcc, 0xff, 0x72, 0x21,
16
+ 0xb8, 0x08, 0x46, 0x74, 0xf7, 0x43, 0x24, 0x8e, 0xe0, 0x35, 0x90, 0xe6, 0x81, 0x3a, 0x26, 0x4c,
17
+ 0x3c, 0x28, 0x52, 0xbb, 0x91, 0xc3, 0x00, 0xcb, 0x88, 0xd0, 0x65, 0x8b, 0x1b, 0x53, 0x2e, 0xa3,
18
+ 0x71, 0x64, 0x48, 0x97, 0xa2, 0x0d, 0xf9, 0x4e, 0x38, 0x19, 0xef, 0x46, 0xa9, 0xde, 0xac, 0xd8,
19
+ 0xa8, 0xfa, 0x76, 0x3f, 0xe3, 0x9c, 0x34, 0x3f, 0xf9, 0xdc, 0xbb, 0xc7, 0xc7, 0x0b, 0x4f, 0x1d,
20
+ 0x8a, 0x51, 0xe0, 0x4b, 0xcd, 0xb4, 0x59, 0x31, 0xc8, 0x9f, 0x7e, 0xc9, 0xd9, 0x78, 0x73, 0x64,
21
+ 0xea, 0xc5, 0xac, 0x83, 0x34, 0xd3, 0xeb, 0xc3, 0xc5, 0x81, 0xa0, 0xff, 0xfa, 0x13, 0x63, 0xeb,
22
+ 0x17, 0x0d, 0xdd, 0x51, 0xb7, 0xf0, 0xda, 0x49, 0xd3, 0x16, 0x55, 0x26, 0x29, 0xd4, 0x68, 0x9e,
23
+ 0x2b, 0x16, 0xbe, 0x58, 0x7d, 0x47, 0xa1, 0xfc, 0x8f, 0xf8, 0xb8, 0xd1, 0x7a, 0xd0, 0x31, 0xce,
24
+ 0x45, 0xcb, 0x3a, 0x8f, 0x95, 0x16, 0x04, 0x28, 0xaf, 0xd7, 0xfb, 0xca, 0xbb, 0x4b, 0x40, 0x7e,
25
+ ]);
@@ -0,0 +1,16 @@
1
+ /**
2
+ * 32-bit Cyclic Redundancy Checksum.
3
+ * @see https://en.wikipedia.org/wiki/Cyclic_redundancy_check
4
+ * @param {Uint8Array} buffer byte buffer
5
+ * @param {number} [offset=0] where to start in the input buffer
6
+ * @param {number} [length=buffer.length] how many bytes to include in checksum calculation
7
+ * @return {number} Unsigned 32-bit integer value
8
+ * @copyright Company Named Limited (c) 2026
9
+ *
10
+ * @example
11
+ * const buffer = new BinaryBuffer();
12
+ * buffer.writeASCIIString("Hello World");
13
+ * const checksum = crc32(buffer.raw_bytes, 0, buffer.position);
14
+ */
15
+ export function crc32(buffer: Uint8Array, offset?: number, length?: number): number;
16
+ //# sourceMappingURL=crc32.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crc32.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/hash/crc32.js"],"names":[],"mappings":"AA2EA;;;;;;;;;;;;;GAaG;AACH,8BAXW,UAAU,WACV,MAAM,WACN,MAAM,GACL,MAAM,CAcjB"}
@@ -0,0 +1,96 @@
1
+ import { assert } from "../../assert.js";
2
+
3
+ /*
4
+ * CRC-32/ISO-3309, the reflected 0xEDB88320 variant. The same checksum PNG chunks, ZIP local file
5
+ * headers and gzip trailers all carry, which is why this lives in core rather than beside any one
6
+ * of them.
7
+ *
8
+ * Ported from C source at https://www.w3.org/TR/PNG-CRCAppendix.html
9
+ * See also ISO 3309 [ISO-3309] or ITU-T V.42 [ITU-V42] for a formal specification
10
+ */
11
+
12
+ /**
13
+ *
14
+ * @type {Uint32Array}
15
+ */
16
+ const crc_table = new Uint32Array(256);
17
+
18
+ // Precompute checksum table
19
+ for (let n = 0; n < 256; n++) {
20
+ let c = n;
21
+
22
+ for (let k = 0; k < 8; k++) {
23
+
24
+ if ((c & 1) !== 0) {
25
+ // CRC32b polynomial
26
+ c = 0xedb88320 ^ (c >>> 1);
27
+ } else {
28
+ c = c >>> 1;
29
+ }
30
+
31
+ }
32
+
33
+ crc_table[n] = c;
34
+ }
35
+
36
+ const INITIAL = 0xffffffff;
37
+
38
+ /**
39
+ * Update a running CRC with the bytes buf[0..len-1]--the CRC
40
+ * should be initialized to all 1's, and the transmitted value
41
+ * is the 1's complement of the final running CRC (see the crc32() routine below)).
42
+ * @param {number} input_crc starting CRC value
43
+ * @param {Uint8Array} buffer
44
+ * @param {number} offset
45
+ * @param {number} length
46
+ * @return {number}
47
+ */
48
+ function update_crc(
49
+ input_crc,
50
+ buffer,
51
+ offset,
52
+ length,
53
+ ) {
54
+ assert.isNonNegativeInteger(input_crc, 'input_crc');
55
+ assert.defined(buffer, 'buffer');
56
+ assert.isNonNegativeInteger(offset, 'offset');
57
+ assert.isNonNegativeInteger(length, 'length');
58
+
59
+ let crc = input_crc;
60
+
61
+ const end = offset + length;
62
+
63
+ for (let n = offset; n < end; n++) {
64
+
65
+ const byte = buffer[n];
66
+
67
+ const lookup_index = (crc ^ byte) & 0xff;
68
+
69
+ crc = crc_table[lookup_index] ^ (crc >>> 8);
70
+
71
+ }
72
+
73
+ return crc;
74
+ }
75
+
76
+ /**
77
+ * 32-bit Cyclic Redundancy Checksum.
78
+ * @see https://en.wikipedia.org/wiki/Cyclic_redundancy_check
79
+ * @param {Uint8Array} buffer byte buffer
80
+ * @param {number} [offset=0] where to start in the input buffer
81
+ * @param {number} [length=buffer.length] how many bytes to include in checksum calculation
82
+ * @return {number} Unsigned 32-bit integer value
83
+ * @copyright Company Named Limited (c) 2026
84
+ *
85
+ * @example
86
+ * const buffer = new BinaryBuffer();
87
+ * buffer.writeASCIIString("Hello World");
88
+ * const checksum = crc32(buffer.raw_bytes, 0, buffer.position);
89
+ */
90
+ export function crc32(
91
+ buffer,
92
+ offset=0,
93
+ length=buffer.length,
94
+ ) {
95
+ return (update_crc(INITIAL, buffer, offset, length) ^ INITIAL) >>> 0;
96
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Hash `input` to a 128-bit value.
3
+ *
4
+ * @param {Uint8Array} input bytes to hash; an empty array is valid
5
+ * @param {bigint} [seed] alters the whole hash; 0 selects the reference's unseeded behaviour
6
+ * @returns {XXH128Hash}
7
+ */
8
+ export function xxh3_128(input: Uint8Array, seed?: bigint): XXH128Hash;
9
+ import { XXH128Hash } from "./XXH128Hash.js";
10
+ //# sourceMappingURL=xxh3_128.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xxh3_128.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/hash/xxh3_128.js"],"names":[],"mappings":"AA2TA;;;;;;GAMG;AACH,gCAJW,UAAU,SACV,MAAM,GACJ,UAAU,CAoBtB;2BApV0B,iBAAiB"}