@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.
- package/build/bundle-worker-terrain.js +1 -1
- package/package.json +1 -1
- package/src/core/assert.d.ts.map +1 -1
- package/src/core/assert.js +5 -1
- package/src/core/binary/hash/XXH128Hash.d.ts +1 -37
- package/src/core/binary/hash/XXH128Hash.d.ts.map +1 -1
- package/src/core/binary/hash/XXH128Hash.js +4 -55
- package/src/core/binary/hash/XXH3_SECRET.d.ts +1 -12
- package/src/core/binary/hash/XXH3_SECRET.d.ts.map +1 -1
- package/src/core/binary/hash/XXH3_SECRET.js +4 -25
- package/src/core/binary/hash/crc32.d.ts +1 -15
- package/src/core/binary/hash/crc32.d.ts.map +1 -1
- package/src/core/binary/hash/crc32.js +4 -96
- package/src/core/binary/hash/xxh3_128.d.ts +1 -9
- package/src/core/binary/hash/xxh3_128.d.ts.map +1 -1
- package/src/core/binary/hash/xxh3_128.js +4 -341
- package/src/core/binary/hash/xxh3_64.d.ts +1 -8
- package/src/core/binary/hash/xxh3_64.d.ts.map +1 -1
- package/src/core/binary/hash/xxh3_64.js +4 -241
- package/src/core/binary/hash/xxh3_common.d.ts +1 -223
- package/src/core/binary/hash/xxh3_common.d.ts.map +1 -1
- package/src/core/binary/hash/xxh3_common.js +90 -476
- package/src/core/collection/array/combine_hash.d.ts +6 -0
- package/src/core/collection/array/combine_hash.d.ts.map +1 -1
- package/src/core/collection/array/combine_hash.js +6 -0
- package/src/core/function/FunctionCompiler.js +2 -2
- package/src/core/geom/3d/mat4/m4_multiply.d.ts +3 -0
- package/src/core/geom/3d/mat4/m4_multiply.d.ts.map +1 -1
- package/src/core/geom/3d/mat4/m4_multiply.js +3 -0
- package/src/core/geom/3d/mat4/m4_multiply_f64.d.ts +30 -0
- package/src/core/geom/3d/mat4/m4_multiply_f64.d.ts.map +1 -0
- package/src/core/geom/3d/mat4/m4_multiply_f64.js +106 -0
- package/src/core/geom/ConicRay.js +2 -2
- package/src/core/geom/Vector4.d.ts.map +1 -1
- package/src/core/geom/Vector4.js +8 -5
- package/src/core/math/hash/XXH128Hash.d.ts +38 -0
- package/src/core/math/hash/XXH128Hash.d.ts.map +1 -0
- package/src/core/math/hash/XXH128Hash.js +55 -0
- package/src/core/math/hash/XXH3_SECRET.d.ts +13 -0
- package/src/core/math/hash/XXH3_SECRET.d.ts.map +1 -0
- package/src/core/math/hash/XXH3_SECRET.js +25 -0
- package/src/core/math/hash/crc32.d.ts +16 -0
- package/src/core/math/hash/crc32.d.ts.map +1 -0
- package/src/core/math/hash/crc32.js +96 -0
- package/src/core/math/hash/xxh3_128.d.ts +10 -0
- package/src/core/math/hash/xxh3_128.d.ts.map +1 -0
- package/src/core/math/hash/xxh3_128.js +341 -0
- package/src/core/math/hash/xxh3_64.d.ts +9 -0
- package/src/core/math/hash/xxh3_64.d.ts.map +1 -0
- package/src/core/math/hash/xxh3_64.js +241 -0
- package/src/core/math/hash/xxh3_common.d.ts +224 -0
- package/src/core/math/hash/xxh3_common.d.ts.map +1 -0
- package/src/core/math/hash/xxh3_common.js +476 -0
- package/src/core/math/lookup/ParameterLookupTable.js +2 -2
- package/src/core/model/node-graph/node/NodeInstancePortReference.js +2 -2
- package/src/core/model/reactive/model/ReactiveBinaryExpression.js +2 -2
- package/src/core/model/reactive/model/terminal/ReactiveReference.js +2 -2
- package/src/engine/asset/AssetDescription.js +2 -2
- package/src/engine/ecs/animation/Animation.js +2 -2
- package/src/engine/ecs/animation/AnimationClip.d.ts.map +1 -1
- package/src/engine/ecs/animation/AnimationClip.js +7 -5
- package/src/engine/ecs/gui/GUIElement.d.ts.map +1 -1
- package/src/engine/ecs/gui/GUIElement.js +7 -5
- package/src/engine/ecs/gui/hud/HeadsUpDisplay.js +2 -2
- package/src/engine/ecs/gui/position/ViewportPosition.d.ts.map +1 -1
- package/src/engine/ecs/gui/position/ViewportPosition.js +11 -7
- package/src/engine/ecs/transform/Transform64.d.ts +1 -1
- package/src/engine/ecs/transform/Transform64.d.ts.map +1 -1
- package/src/engine/ecs/transform/Transform64.js +5 -4
- package/src/engine/graphics/ecs/animation/animator/AnimationClip.d.ts.map +1 -1
- package/src/engine/graphics/ecs/animation/animator/AnimationClip.js +8 -5
- package/src/engine/graphics/ecs/animation/animator/AnimationClipDefinition.js +2 -2
- package/src/engine/graphics/ecs/animation/animator/AnimationNotification.js +2 -2
- package/src/engine/graphics/ecs/animation/animator/AnimationNotificationDefinition.js +2 -2
- package/src/engine/graphics/ecs/animation/animator/graph/definition/AnimationGraphDefinition.js +2 -2
- package/src/engine/graphics/ecs/animation/animator/graph/definition/AnimationStateDefinition.js +2 -2
- package/src/engine/graphics/ecs/animation/animator/graph/definition/AnimationTransitionDefinition.d.ts.map +1 -1
- package/src/engine/graphics/ecs/animation/animator/graph/definition/AnimationTransitionDefinition.js +8 -5
- package/src/engine/graphics/ecs/decal/v2/Decal.d.ts.map +1 -1
- package/src/engine/graphics/ecs/decal/v2/Decal.js +9 -8
- package/src/engine/graphics/render/frame_graph/resource/TextureResourceDescriptor.d.ts.map +1 -1
- package/src/engine/graphics/render/frame_graph/resource/TextureResourceDescriptor.js +9 -6
- package/src/engine/graphics3/ParticipatingMedia.js +204 -204
- package/src/engine/graphics3/animation/AnimationClips.d.ts +5 -0
- package/src/engine/graphics3/animation/AnimationClips.d.ts.map +1 -1
- package/src/engine/graphics3/animation/AnimationClips.js +5 -0
- package/src/engine/grid/obstacle/GridObstacle.js +2 -2
- package/src/engine/intelligence/behavior/selector/WeightedElement.js +2 -2
- package/src/engine/interpolation/Interpolated.js +2 -2
- package/src/engine/physics/cloth/ecs/Cloth.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/Cloth.js +7 -5
- package/src/engine/physics/cloth/ecs/ClothCollider.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/ClothCollider.js +7 -5
- package/src/engine/physics/cloth/ecs/ClothDynamics.d.ts.map +1 -1
- package/src/engine/physics/cloth/ecs/ClothDynamics.js +20 -11
- package/src/engine/physics/fluid/FluidField.d.ts.map +1 -1
- package/src/engine/physics/fluid/FluidField.js +7 -5
- package/src/engine/physics/fluid/ecs/FluidComponent.d.ts.map +1 -1
- package/src/engine/physics/fluid/ecs/FluidComponent.js +19 -11
- package/src/engine/physics/fluid/effector/AbstractFluidEffector.d.ts +2 -2
- package/src/engine/physics/fluid/effector/AbstractFluidEffector.js +2 -2
- package/src/engine/physics/fluid/effector/GlobalFluidEffector.d.ts.map +1 -1
- package/src/engine/physics/fluid/effector/GlobalFluidEffector.js +11 -7
- package/src/engine/physics/fluid/effector/ImpulseFluidEffector.d.ts.map +1 -1
- package/src/engine/physics/fluid/effector/ImpulseFluidEffector.js +11 -7
- package/src/engine/physics/fluid/effector/WakeFluidEffector.d.ts.map +1 -1
- package/src/engine/physics/fluid/effector/WakeFluidEffector.js +16 -9
- package/src/engine/sound/ecs/audio/AudioEmitter.d.ts.map +1 -1
- package/src/engine/sound/ecs/audio/AudioEmitter.js +12 -7
- package/src/engine/sound/ecs/trigger/AudioEventTrigger.d.ts.map +1 -1
- package/src/engine/sound/ecs/trigger/AudioEventTrigger.js +192 -191
- package/src/engine/sound/simulation/core/AcousticMedium.js +2 -2
- package/src/engine/sound/simulation/definition/AcousticDirectivity.js +2 -2
- package/src/engine/sound/simulation/definition/AcousticMaterial.d.ts.map +1 -1
- package/src/engine/sound/simulation/definition/AcousticMaterial.js +11 -7
- package/src/engine/sound/sopra/definition/BusDefinition.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/BusDefinition.js +5 -4
- package/src/engine/sound/sopra/definition/DuckingRule.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/DuckingRule.js +7 -5
- package/src/engine/sound/sopra/definition/EventDescription.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/EventDescription.js +23 -13
- package/src/engine/sound/sopra/definition/MixerSnapshot.js +2 -2
- package/src/engine/sound/sopra/definition/ParameterDefinition.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/ParameterDefinition.js +7 -5
- package/src/engine/sound/sopra/definition/clip/AbstractAudioClip.js +2 -2
- package/src/engine/sound/sopra/definition/clip/BlendContainerAudioClip.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/clip/BlendContainerAudioClip.js +4 -3
- package/src/engine/sound/sopra/definition/clip/ContainerAudioClip.js +2 -2
- package/src/engine/sound/sopra/definition/clip/RandomContainerAudioClip.js +3 -3
- package/src/engine/sound/sopra/definition/clip/SampleAudioClip.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/clip/SampleAudioClip.js +16 -9
- package/src/engine/sound/sopra/definition/clip/SilenceAudioClip.js +2 -2
- package/src/engine/sound/sopra/definition/clip/SwitchContainerAudioClip.d.ts +1 -1
- package/src/engine/sound/sopra/definition/clip/SwitchContainerAudioClip.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/clip/SwitchContainerAudioClip.js +2 -2
- package/src/engine/sound/sopra/definition/effect/CompressorEffect.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/effect/CompressorEffect.js +7 -5
- package/src/engine/sound/sopra/definition/effect/EqEffect.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/effect/EqEffect.js +8 -5
- package/src/engine/sound/sopra/definition/effect/ReverbEffect.js +2 -2
- package/src/engine/sound/sopra/legacy/SoundEmitter.d.ts.map +1 -1
- package/src/engine/sound/sopra/legacy/SoundEmitter.js +357 -352
- package/src/engine/sound/sopra/legacy/SoundTrack.d.ts.map +1 -1
- package/src/engine/sound/sopra/legacy/SoundTrack.js +281 -278
- package/src/format/image/png/PNGReader.js +644 -644
- package/src/format/image/png/crc32.d.ts +1 -1
- package/src/format/image/png/crc32.js +7 -8
- package/src/shade/descriptor/binding/BindGroupLayoutDescriptor.js +2 -2
- package/src/shade/descriptor/binding/BindGroupLayoutEntry.d.ts.map +1 -1
- package/src/shade/descriptor/binding/BindGroupLayoutEntry.js +12 -8
- package/src/shade/descriptor/binding/StorageTextureBindingLayout.js +2 -2
- package/src/shade/descriptor/binding/TextureBindingLayout.js +2 -2
- package/src/shade/descriptor/blend/BlendComponent.js +2 -2
- package/src/shade/descriptor/pipeline/PipelineDescriptorBase.js +2 -2
- package/src/shade/descriptor/pipeline/PipelineLayoutDescriptor.js +2 -2
- package/src/shade/descriptor/pipeline/ProgrammableStage.js +2 -2
- package/src/shade/descriptor/pipeline/compute/ComputePipelineDescriptor.js +2 -2
- package/src/shade/descriptor/pipeline/render/ColorTargetState.js +2 -2
- package/src/shade/descriptor/pipeline/render/FragmentState.js +2 -2
- package/src/shade/descriptor/pipeline/render/PrimitiveState.js +2 -2
- package/src/shade/descriptor/pipeline/render/RenderPipelineDescriptor.d.ts.map +1 -1
- package/src/shade/descriptor/pipeline/render/RenderPipelineDescriptor.js +8 -5
- package/src/shade/descriptor/pipeline/render/VertexAttribute.js +2 -2
- package/src/shade/descriptor/texture/SamplerDescriptor.d.ts.map +1 -1
- package/src/shade/descriptor/texture/SamplerDescriptor.js +20 -12
- package/src/shade/descriptor/texture/TextureDescriptor.d.ts.map +1 -1
- package/src/shade/descriptor/texture/TextureDescriptor.js +11 -7
- package/src/shade/device/graph/BufferResourceDescriptor.d.ts.map +1 -1
- package/src/shade/device/graph/BufferResourceDescriptor.js +196 -193
- package/src/shade/device/graph/TextureResourceDescriptor.d.ts.map +1 -1
- package/src/shade/device/graph/TextureResourceDescriptor.js +178 -173
- package/src/shade/device/timing/profile/sgpt_read_header.js +1 -1
- package/src/shade/device/timing/profile/sgpt_read_records.js +1 -1
- package/src/shade/device/timing/profile/sgpt_write_header.js +1 -1
- package/src/shade/device/timing/profile/sgpt_write_record.js +1 -1
- package/src/shade/renderer/binding/BufferBinding.js +2 -2
- package/src/shade/renderer/camera/Camera.js +2 -2
- package/src/shade/renderer/geometry/Attribute.js +2 -2
- package/src/shade/renderer/geometry/Geometry.js +2 -2
- package/src/shade/renderer/geometry/geometry_deduplicate_vertices.js +2 -2
- package/src/shade/renderer/geometry/meshlet/MeshletBatch.js +2 -2
- package/src/shade/renderer/geometry/virtual/format/checksum/vgeo_compute_asset_id.js +13 -13
- package/src/shade/renderer/geometry/virtual/format/checksum/vgeo_compute_directory_block_checksum.js +41 -41
- package/src/shade/renderer/geometry/virtual/format/checksum/vgeo_compute_frame_checksum.js +41 -41
- package/src/shade/renderer/geometry/virtual/format/checksum/vgeo_compute_header_checksum.js +25 -25
- package/src/shade/renderer/material/StandardShadeMaterial.d.ts.map +1 -1
- package/src/shade/renderer/material/StandardShadeMaterial.js +13 -8
- package/src/shade/renderer/scene/optimization/geometry/internal/triangle_fingerprint_stream.d.ts.map +1 -1
- package/src/shade/renderer/scene/optimization/geometry/internal/triangle_fingerprint_stream.js +14 -5
- package/src/shade/renderer/scene/optimization/sampler2d_from_image_bitmap.js +1 -1
- package/src/shade/renderer/shader/type/WGSLStructField.js +2 -2
- package/src/shade/renderer/shader/type/WebGPUArray.js +2 -2
- package/src/shade/renderer/shader/type/WebGPUStruct.d.ts.map +1 -1
- package/src/shade/renderer/shader/type/WebGPUStruct.js +9 -6
- package/src/shade/renderer/texture/ShadeTexture.d.ts.map +1 -1
- package/src/shade/renderer/texture/ShadeTexture.js +17 -10
- package/src/shade/renderer/texture/mipmaps/WebGPUMipmapGenerator.js +2 -2
- package/src/shade/renderer/water/surface/chunk_water_surface_sample.d.ts +4 -4
- package/src/shade/renderer/water/surface/chunk_water_surface_sample.js +6 -6
- package/src/shade/renderer/water/surface/particles/GPUWaterParticles.d.ts.map +1 -1
- package/src/shade/renderer/water/surface/particles/GPUWaterParticles.js +46 -55
- package/src/shade/renderer/water/surface/particles/WATER_PARTICLE_STRUCT.d.ts +3 -3
- package/src/shade/renderer/water/surface/particles/WATER_PARTICLE_STRUCT.d.ts.map +1 -1
- package/src/shade/renderer/water/surface/particles/WATER_PARTICLE_STRUCT.js +14 -4
- package/src/shade/renderer/water/surface/particles/chunk_water_particle.d.ts +10 -1
- package/src/shade/renderer/water/surface/particles/chunk_water_particle.d.ts.map +1 -1
- package/src/shade/renderer/water/surface/particles/chunk_water_particle.js +82 -40
- package/src/shade/renderer/water/surface/particles/chunk_water_particle_step.d.ts +4 -1
- package/src/shade/renderer/water/surface/particles/chunk_water_particle_step.d.ts.map +1 -1
- package/src/shade/renderer/water/surface/particles/chunk_water_particle_step.js +8 -4
- package/src/shade/renderer/water/surface/particles/shader_water_particles.d.ts +98 -86
- package/src/shade/renderer/water/surface/particles/shader_water_particles.d.ts.map +1 -1
- package/src/shade/renderer/water/surface/particles/shader_water_particles.js +440 -298
- package/src/view/common/HTMLElementCacheKey.d.ts.map +1 -1
- package/src/view/common/HTMLElementCacheKey.js +4 -3
- 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 {
|
|
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
|
|
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":"
|
|
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"}
|
package/src/core/geom/Vector4.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { assert } from "../assert.js";
|
|
2
|
-
import {
|
|
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
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
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"}
|