From 8b31e47eeebbbde0f931801b13347ae4248297f7 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Sat, 17 Oct 2026 11:31:46 +0200 Subject: [PATCH 1/2] CultMath shaders: HLSL twins of the four lattice steps, both copies, regenerated GLSL and parity fixture (cut lattice-weighted-shaders) Co-Authored-By: Claude Sonnet 5.5 --- packages/cultmath/README.md | 6 +- packages/cultmath/shaders/CultMath.glsl | 46 + packages/cultmath/shaders/CultMath.hlsl | 46 + .../tests/CultMath.Tests/GlslMirrorTests.cs | 28 + .../HlslSourceCompatibilityTests.cs | 6 +- .../CultMath.Tests/fixtures/glsl-parity.json | 1252 +++++++++++++++-- .../Shaders/CultMath.hlsl | 46 + 7 files changed, 1325 insertions(+), 105 deletions(-) diff --git a/packages/cultmath/README.md b/packages/cultmath/README.md index 10881fdb..29113254 100644 --- a/packages/cultmath/README.md +++ b/packages/cultmath/README.md @@ -34,10 +34,12 @@ shader semantics. `soft_gabriel_gate` gates a pair of sites by the empty-disc margin. Each is a loop over the shader steps `cultmath_power_score` / `cultmath_multiplicative_score`, `cultmath_site_cells_empty`, `cultmath_site_cells_insert`, `cultmath_site_cells_border`, `cultmath_power_border_step` (the exact power cell border, `power_border`) and `cultmath_gabriel_margin`; a shader loops over its own buffer. -- Weighted lattice cells (C# only until the shader cut): `weighted_lattice_cells` returns `float4(F1, F2, smooth, id)` over a jittered, +- Weighted lattice cells: `weighted_lattice_cells` returns `float4(F1, F2, smooth, id)` over a jittered, drifting lattice whose cell weights come from the exact power border of the body span at each cell centre, with a stretched metric and an exact ring search over the stated range (`LatticeMaxBoost`, `LatticeMaxStretch`, `LatticeMaxSmoothing`). It composes the - public steps `lattice_site`, `lattice_weight`, `lattice_distance` and `lattice_smooth_step`. + public steps `lattice_site`, `lattice_weight`, `lattice_distance` and `lattice_smooth_step`. The shaders carry the four steps as + `cultmath_lattice_site`, `cultmath_lattice_weight`, `cultmath_lattice_distance` and `cultmath_lattice_smooth_step`; the ring and box loops + are the shader caller's, written as the comment above them in `CultMath.hlsl` gives them, and the argument checks become its preconditions. - `shaders/CultMath.hlsl`, a canonical HLSL mirror include for shader-side parity. HLSL already owns `float2`, `float3`, and `float4`; the include exposes `cultmath_*` functions for shared semantics HLSL does not provide. diff --git a/packages/cultmath/shaders/CultMath.glsl b/packages/cultmath/shaders/CultMath.glsl index baa0c0b2..41f40279 100644 --- a/packages/cultmath/shaders/CultMath.glsl +++ b/packages/cultmath/shaders/CultMath.glsl @@ -688,6 +688,52 @@ float cultmath_gabriel_margin(vec3 a, vec3 b, vec3 other) return (cultmath_distance(other, (a + b) * 0.5) - r) / r; } +// Weighted lattice cells: the four per-cell steps of math.Lattice.cs, statement for statement. A shader function cannot take a +// span (design.md, "Sites"), so weighted_lattice_cells is the consumer's loop over its own body buffer, in two passes: +// vec2 q = p / cellSize; ivec2 c0 = (ivec2)floor(q); float f1 = 1.0e30, f2 = 1.0e30; int reach = 0; +// for (int k = 0; ; k++) { // ring pass: Chebyshev rings 0, 1, 2, ... around c0, exact exit +// if (k > 1 && 0.5 * (k - 1) >= max(f2, f1 + 2.0 * smoothing)) break; // k never reaches 38 in the accepted range +// for each cell on ring k: d = cultmath_lattice_distance(q, cultmath_lattice_site(cell, time, drift).xy, w, normal, stretch), +// w = cultmath_lattice_weight(site.z, border, boost, falloff), border = the .w of cultmath_power_border_step +// folded over the bodies (owner = the nearest body of the cell centre (cell + 0.5) * cellSize, z = 0); +// if (d < f1) { f2 = f1; f1 = d; } else if (d < f2) f2 = d; store d for the box pass +// reach = k; } +// float m = f1 + smoothing; // box pass: every stored cell, rows dz = -reach..reach, then dx = -reach..reach +// for each (dz, dx): m = cultmath_lattice_smooth_step(m, d, f1, smoothing); // strict < for the winning id (earlier cell wins ties) +// The preconditions the C# function throws for are the caller's in a shader: finite arguments, cellSize > 0, boost in [0, 4], +// falloff > 0, smoothing in (0, 1], stretch in [1, 2], p within 2^23 cells. The normal is normalised as C# does: divide by its +// largest component, then by its length (a zero normal means (1, 0) and needs stretch == 1). The ring bound is 37. +vec3 cultmath_lattice_site(vec2 cell, float time, float drift) +{ + ivec3 h = cultmath_pcg3d(ivec3(int(cell.x), int(cell.y), 0)); + vec2 phase = vec2(float(uint(h.x) >> 8) * (1.0 / 16777216.0), float(uint(h.y) >> 8) * (1.0 / 16777216.0)); + vec2 site = cell + 0.5 + 0.5 * vec2(sin(drift * time + CULTMATH_TAU * phase.x), sin(drift * time + CULTMATH_TAU * phase.y)); + return vec3(site, 0.5 + 0.5 * (float(uint(h.z) >> 8) * (1.0 / 16777216.0))); +} + +float cultmath_lattice_weight(float base_weight, float border, float boost, float falloff) +{ + float t = border / falloff; + return base_weight * (1.0 + boost * exp(-(t * t))); +} + +float cultmath_lattice_distance(vec2 q, vec2 site, float weight, vec2 normal, float stretch) +{ + vec2 v = site - q; + float a = dot(v, normal); + float c = v.x * normal.y - v.y * normal.x; + return weight * length(vec2(stretch * a, c)); +} + +float cultmath_lattice_smooth_step(float m, float d, float f1, float smoothing) +{ + if (d >= f1 + 2.0 * smoothing) + return m; + float h = cultmath_smoothstep(0.0, 1.0, 0.5 + 0.5 * (m - d) / smoothing); + float next = m + (d - m) * h - h * (1.0 - h) * smoothing / (1.0 + 3.0 * smoothing); + return min(next, f1 + smoothing); +} + vec2 cultmath_segment_closest(vec2 point_value, vec2 start, vec2 end) { vec2 segment = end - start; diff --git a/packages/cultmath/shaders/CultMath.hlsl b/packages/cultmath/shaders/CultMath.hlsl index ed1d4247..94bec900 100644 --- a/packages/cultmath/shaders/CultMath.hlsl +++ b/packages/cultmath/shaders/CultMath.hlsl @@ -688,6 +688,52 @@ float cultmath_gabriel_margin(float3 a, float3 b, float3 other) return (cultmath_distance(other, (a + b) * 0.5) - r) / r; } +// Weighted lattice cells: the four per-cell steps of math.Lattice.cs, statement for statement. A shader function cannot take a +// span (design.md, "Sites"), so weighted_lattice_cells is the consumer's loop over its own body buffer, in two passes: +// float2 q = p / cellSize; int2 c0 = (int2)floor(q); float f1 = 1.0e30, f2 = 1.0e30; int reach = 0; +// for (int k = 0; ; k++) { // ring pass: Chebyshev rings 0, 1, 2, ... around c0, exact exit +// if (k > 1 && 0.5 * (k - 1) >= max(f2, f1 + 2.0 * smoothing)) break; // k never reaches 38 in the accepted range +// for each cell on ring k: d = cultmath_lattice_distance(q, cultmath_lattice_site(cell, time, drift).xy, w, normal, stretch), +// w = cultmath_lattice_weight(site.z, border, boost, falloff), border = the .w of cultmath_power_border_step +// folded over the bodies (owner = the nearest body of the cell centre (cell + 0.5) * cellSize, z = 0); +// if (d < f1) { f2 = f1; f1 = d; } else if (d < f2) f2 = d; store d for the box pass +// reach = k; } +// float m = f1 + smoothing; // box pass: every stored cell, rows dz = -reach..reach, then dx = -reach..reach +// for each (dz, dx): m = cultmath_lattice_smooth_step(m, d, f1, smoothing); // strict < for the winning id (earlier cell wins ties) +// The preconditions the C# function throws for are the caller's in a shader: finite arguments, cellSize > 0, boost in [0, 4], +// falloff > 0, smoothing in (0, 1], stretch in [1, 2], p within 2^23 cells. The normal is normalised as C# does: divide by its +// largest component, then by its length (a zero normal means (1, 0) and needs stretch == 1). The ring bound is 37. +float3 cultmath_lattice_site(float2 cell, float time, float drift) +{ + int3 h = cultmath_pcg3d(int3((int)cell.x, (int)cell.y, 0)); + float2 phase = float2((float)((uint)h.x >> 8) * (1.0 / 16777216.0), (float)((uint)h.y >> 8) * (1.0 / 16777216.0)); + float2 site = cell + 0.5 + 0.5 * float2(sin(drift * time + CULTMATH_TAU * phase.x), sin(drift * time + CULTMATH_TAU * phase.y)); + return float3(site, 0.5 + 0.5 * ((float)((uint)h.z >> 8) * (1.0 / 16777216.0))); +} + +float cultmath_lattice_weight(float base_weight, float border, float boost, float falloff) +{ + float t = border / falloff; + return base_weight * (1.0 + boost * exp(-(t * t))); +} + +float cultmath_lattice_distance(float2 q, float2 site, float weight, float2 normal, float stretch) +{ + float2 v = site - q; + float a = dot(v, normal); + float c = v.x * normal.y - v.y * normal.x; + return weight * length(float2(stretch * a, c)); +} + +float cultmath_lattice_smooth_step(float m, float d, float f1, float smoothing) +{ + if (d >= f1 + 2.0 * smoothing) + return m; + float h = cultmath_smoothstep(0.0, 1.0, 0.5 + 0.5 * (m - d) / smoothing); + float next = m + (d - m) * h - h * (1.0 - h) * smoothing / (1.0 + 3.0 * smoothing); + return min(next, f1 + smoothing); +} + float2 cultmath_segment_closest(float2 point_value, float2 start, float2 end) { float2 segment = end - start; diff --git a/packages/cultmath/tests/CultMath.Tests/GlslMirrorTests.cs b/packages/cultmath/tests/CultMath.Tests/GlslMirrorTests.cs index c9c8977f..3ee41606 100644 --- a/packages/cultmath/tests/CultMath.Tests/GlslMirrorTests.cs +++ b/packages/cultmath/tests/CultMath.Tests/GlslMirrorTests.cs @@ -852,6 +852,34 @@ static int4 clamp(int4 x, int4 a, int4 b) { if (a.x > b.x || a.y > b.y || a.z > var a = Point3(r); return new object[] { a, r.Next(8) == 0 ? a : Point3(r), Point3(r) }; }), + // The lattice steps. The cell is an integer-valued vec2 (negative and large included), time and drift span + // zero and the accepted range; the weight's border covers 0, near the falloff, and the 1.0e30 of no body. + new Family("vec3 cultmath_lattice_site(vec2, float, float)", "ulp-bounded", r => + new object[] { new float2(r.Next(-4000, 4000), r.Next(-4000, 4000)), r.Next(6) == 0 ? 0.0f : Uniform(r, -200.0f, 200.0f), r.Next(6) == 0 ? 0.0f : Uniform(r, -3.0f, 3.0f) }), + new Family("float cultmath_lattice_weight(float, float, float, float)", "ulp-bounded", r => + { + var falloff = Uniform(r, 0.05f, 40.0f); + var border = r.Next(5) switch { 0 => 0.0f, 1 => 1.0e30f, 2 => falloff * Uniform(r, 0.9f, 1.1f), _ => Uniform(r, 0.0f, 3.0f * falloff) }; + var boost = r.Next(5) switch { 0 => 0.0f, 1 => 4.0f, _ => Uniform(r, 0.0f, 4.0f) }; + return new object[] { Uniform(r, 0.5f, 1.0f), border, boost, falloff }; + }), + new Family("float cultmath_lattice_distance(vec2, vec2, float, vec2, float)", "ulp-bounded", r => + { + var angle = Uniform(r, 0.0f, 6.2831855f); + var normal = r.Next(6) == 0 ? new float2(1.0f, 0.0f) : new float2(MathF.Cos(angle), MathF.Sin(angle)); + var stretch = r.Next(5) switch { 0 => 1.0f, 1 => 2.0f, _ => Uniform(r, 1.0f, 2.0f) }; + return new object[] { Point2(r), Point2(r), Uniform(r, 0.5f, 5.0f), normal, stretch }; + }), + // The smooth step: d exactly at f1 + 2 smoothing one in four (the equal branch), near it one in four, the + // smoothing near 0 and at 1, m anywhere up to f1 + smoothing. + new Family("float cultmath_lattice_smooth_step(float, float, float, float)", "ulp-bounded", r => + { + var smoothing = r.Next(5) switch { 0 => 1.0f, 1 => Uniform(r, 1.0e-3f, 1.0e-2f), _ => Uniform(r, 0.01f, 1.0f) }; + var f1 = Uniform(r, 0.0f, 10.0f); + var edge = f1 + 2.0f * smoothing; + var d = r.Next(4) switch { 0 => edge, 1 => edge * Uniform(r, 0.99f, 1.01f), _ => Uniform(r, f1, edge + 1.0f) }; + return new object[] { Uniform(r, f1, f1 + smoothing), d, f1, smoothing }; + }), }).ToArray(); // A point of magnitude m, m log-uniform in [lo, hi]: one component at +-m, the other two uniform in [-m, m], diff --git a/packages/cultmath/tests/CultMath.Tests/HlslSourceCompatibilityTests.cs b/packages/cultmath/tests/CultMath.Tests/HlslSourceCompatibilityTests.cs index 2f6a49a0..3cb5070a 100644 --- a/packages/cultmath/tests/CultMath.Tests/HlslSourceCompatibilityTests.cs +++ b/packages/cultmath/tests/CultMath.Tests/HlslSourceCompatibilityTests.cs @@ -35,6 +35,10 @@ public sealed class HlslSourceCompatibilityTests Assert.NotNull(ShaderFunction(shader, "cultmath_site_cells_border", siteCells)); Assert.NotNull(ShaderFunction(shader, "cultmath_gabriel_margin", typeof(float3), typeof(float3), typeof(float3))); Assert.NotNull(ShaderFunction(shader, "cultmath_power_border_step", typeof(float3), typeof(float4), typeof(float4), typeof(float4))); + Assert.NotNull(ShaderFunction(shader, "cultmath_lattice_site", typeof(float2), typeof(float), typeof(float))); + Assert.NotNull(ShaderFunction(shader, "cultmath_lattice_weight", typeof(float), typeof(float), typeof(float), typeof(float))); + Assert.NotNull(ShaderFunction(shader, "cultmath_lattice_distance", typeof(float2), typeof(float2), typeof(float), typeof(float2), typeof(float))); + Assert.NotNull(ShaderFunction(shader, "cultmath_lattice_smooth_step", typeof(float), typeof(float), typeof(float), typeof(float))); Assert.NotNull(ShaderFunction(shader, "cultmath_segment_closest", typeof(float2), typeof(float2), typeof(float2))); Assert.NotNull(ShaderFunction(shader, "cultmath_distance_to_segment", typeof(float2), typeof(float2), typeof(float2))); Assert.NotNull(ShaderFunction(shader, "cultmath_segment_closest", typeof(float3), typeof(float3), typeof(float3))); @@ -200,7 +204,7 @@ public sealed class HlslSourceCompatibilityTests } Assert.True(mismatches.Count == 0, $"{mismatches.Count} mismatches:{Environment.NewLine}{string.Join(Environment.NewLine, mismatches.Take(12))}"); - Assert.Equal(136, compared.Count); + Assert.Equal(140, compared.Count); } /// diff --git a/packages/cultmath/tests/CultMath.Tests/fixtures/glsl-parity.json b/packages/cultmath/tests/CultMath.Tests/fixtures/glsl-parity.json index eec34dfa..acfd786d 100644 --- a/packages/cultmath/tests/CultMath.Tests/fixtures/glsl-parity.json +++ b/packages/cultmath/tests/CultMath.Tests/fixtures/glsl-parity.json @@ -2728,7 +2728,7 @@ "4022181e 40221be2 4181cf61 41847273 -> c1605ede c15b17ca", "bfc63914 bfc5886c 41558bdf 4159d691 -> c1729db4 c16e3cec", "41719da7 4171a109 c19eb92a c19eaade -> 420bbcd9 420bc4d7", - "40f2e763 4120d76e bf81ca39 401a0c2c -> 40a5e14d 413110b5", + "40f2e763 4120d76e bf81ca38 401a0c2c -> 40a5e14d 413110b5", "403ecb1f 40410e41 c101976e c0ed526d -> 41265bfe 4131dafe", "3f2502e7 3f250e19 4180e4db 4180e97d -> c17782cc c17778d4", "c1749928 c1741414 c185bb15 c1846fd3 -> 3fa233f0 3fbb10b0", @@ -5056,7 +5056,7 @@ "c12a1ca9 c129e60f c026bfa8 41214e89 -> c026bfa8 c026bfa8", "41646d2a 41989373 c11d417d 40befd8d -> 40befd8d 40befd8d", "416e3268 4181ee24 bf563220 417bb26e -> 416e3268 417bb26e", - "c0c50d72 be9aa858 bfb35300 41894251 -> bfb35300 be9aa858", + "c0c50d72 be9aa860 bfb35300 41894251 -> bfb35300 be9aa860", "410fef0b 4114c15d c164037e 3fd35dff -> 3fd35dff 3fd35dff", "4106ccec 4113b120 c0832e1c 41374ad7 -> 4106ccec 4113b120", "c1122227 c1121dd1 c0976074 41bfcfbd -> c0976074 c0976074", @@ -6820,7 +6820,7 @@ { "glsl": "vec2 cultmath_iv_exp(vec2)", "tolerance": "ulp-bounded, platform exp", - "platform": "Ubuntu 24.04.5 LTS; .NET 10.0.12", + "platform": "Microsoft Windows 10.0.26200; .NET 10.0.12", "cases": [ "41202b2a 4120314e -> 46ade79e 46ae2a6b", "c0d1a016 bfb9db96 -> 3abb4cbc 3e6fb77f", @@ -6917,7 +6917,7 @@ "40c71490 4165a95c -> 43fbab24 49d1201c", "3fc1015d 3fc19163 -> 40908b7c 40912e7d", "c17ee168 c151c9c2 -> 34019755 3607a61b", - "c0c3c1df 3fa3ddfc -> 3b107367 40663bd7", + "c0c3c1de 3fa3ddfa -> 3b10736b 40663bd3", "c17826ef c17819e9 -> 34455621 3445f704", "c159be3f c159b8bf -> 35a50371 35a53c36", "c0020079 bffad0ae -> 3e0650d0 3e104fe8", @@ -7083,11 +7083,11 @@ { "glsl": "CultPhasor cultmath_phacelle(vec3, vec3, float, float)", "tolerance": "ulp-bounded, platform exp, sin, cos; across platforms |diff| <= 2^-20 max(|v|, 1); on a device |diff| <= 2^-18 max(|v|, 1)", - "platform": "Ubuntu 24.04.5 LTS; .NET 10.0.12", + "platform": "Microsoft Windows 10.0.26200; .NET 10.0.12", "cases": [ - "c01d8630 41b2cd8c 41ea274c bfa19894 40aeb6ce 40918978 3e9be843 3f000000 -> bf74d9fb 3fb71956 bf35fe4e 3f21280a c01277e2 403b5fe4 40464bbd bd5b4455", + "c01d8630 41b2cd8c 41ea274c bfa19894 40aeb6ce 40918978 3e9be843 3f000000 -> bf74d9fb 3fb71956 bf35fe4e 3f21280a c01277e2 403b5fe7 40464bbd bd5b4455", "c2234cf7 4237b112 419ae0c0 c0acbcd4 bf60f9a0 bfeb2b08 3ebf0a10 3f000000 -> c0d0048f 3f228da3 bfc85f60 3edaf41b c0171c80 be137f8c be1c92a3 bf5747bf", - "41cc0920 42390a28 c1c4714d 4095ff5a 40ae1422 40138f40 3ea0019d 3f000000 -> c0626854 c06c83d4 bfb294eb be676f09 bfcf7e6e 3d2e218b c0200a4a 3f167e2f", + "41cc0920 42390a28 c1c4714d 4095ff5a 40ae1422 40138f40 3ea0019d 3f000000 -> c0626854 c06c83d4 bfb294eb be676f09 bfcf7e6e 3d2e2183 c0200a4a 3f167e2e", "42370b68 c2438846 c1e6efa5 c03373ff 402d665c 4013a940 3e578396 3f000000 -> 3d678d11 3e4c172f beeb5835 be30e395 3f0a6332 3ede254b bee8e250 3eae4126", "c08f5578 411586a8 42413a4c c019de34 3fc5c70c bf08ccf0 3f5a6e2e 3f000000 -> 401e1cfd bfc4bac6 bf58739f 3f279e2b bcc6aac3 3f322772 3edf42e6 3df7608b", "c11d6390 41b27d04 c17248a0 402cdca8 c0bf8bd5 c0829639 3effad62 3f000000 -> bf03c0db 3ff17078 3f87ac38 3f75d4e0 3fe2b4b6 c0cfb86d c0697330 3e8ede55", @@ -7097,16 +7097,16 @@ "c156c260 41a86c28 41c868c0 4064de10 40964edc 3e7448e0 3eb4f280 3f000000 -> bf8c32e0 bffb8ca7 3d8b13de 3e438cc7 3f323542 3f99dc06 40017862 3e874112", "c1d068b3 42225982 c205c8f0 40ad9ff8 3ec5dd80 40707e58 3f0ce75b 3f000000 -> c0349e81 3f3fc530 bfaf1dbc bf18915a c08caaaa 3eac5ccd c005c769 3e9225e7", "c1e59fe1 41a04784 4208ac42 c0920956 bee7b4a0 c07134a5 3ea378b1 3f000000 -> bf3feef3 bdb8ba0b bfa29638 be587b15 3f3930d2 3ef203a1 3fff1a53 bdbfd9a5", - "42389eb6 4106e060 c15fbf54 3ffd6f00 3e9e6f60 bffcb888 3f3075cd 3f000000 -> 3f332fdc 3c8560b8 bfe1216d 3c2f34ca 3bf5488d 393690af bc9a1676 bf7ffc41", + "42389eb6 4106e060 c15fbf54 3ffd6f00 3e9e6f60 bffcb888 3f3075cd 3f000000 -> 3f332fdb 3c8560ce bfe1216d 3c2f34bf 3bf5488d 393690af bc9a1676 bf7ffc41", "c20f4cf6 c1dfe857 bed31800 40717ea8 c0a6b312 408b5396 3d29b33a 3f000000 -> bfdb8d4f 403490e4 3fb46b68 3e471378 bd600a14 bfbec46f 3fc2be3f 3eaf81a2", "c224ee6a 41d06018 414aa3f8 4024db50 40215b48 40036b94 3f657d0a 3f000000 -> bff064ec 3f7da25d 3e056ae2 be8ac707 bf782c47 bed3745c c00c9402 bcacdb39", "41b4d2e4 c1d569b9 4242f024 bf523eb0 c0933fbf 40b37860 3effacc8 3f000000 -> be71736c bd8a544e 3c17c22f 3f7aa6b3 bf04a68a c05faf26 40b9af6e bd872883", "421867b6 c1aa947d c21c327e 402c6040 409cb72c c00c5822 3ecef6a5 3f000000 -> 402c1659 40ac0e18 c01c7aba 3e2e0e0e 3eed75dd 3f6d6a7b bed7ec61 bf7c4657", "c2158204 c12f6f30 c212cbea bfce6068 c0725f30 3ffc14b0 3dc82c17 3f000000 -> bf1395df bf305c8f bd010deb 3c80722f 3faded2e bcab6bdf 3e04aa20 3d81745f", - "41949b58 4187ba84 c210eb56 becef150 40aceb96 3ddc8e80 3e004e03 3f000000 -> 3f1c001d bfbfd00c 3f9c703f bf46ef9f 3ee14306 c015c255 3facb8b2 3e843e47", + "41949b58 4187ba84 c210eb56 becef150 40aceb96 3ddc8e80 3e004e03 3f000000 -> 3f1c001d bfbfd00c 3f9c703f bf46ef9f 3ee1430a c015c256 3facb8b2 3e843e47", "422ff3b8 c1e3f97a c117efcc 4041ae24 3e35fc40 bf6d0858 3e712c37 3f000000 -> bfdb3c1a bdd2c0db 3f47d294 bf103816 bf957c53 bd8fb3dc 3f083fd8 3f5382c9", - "c16e4c30 c14b7fe0 c1d54085 bf8b652c bfca9a04 c06e21c5 3e857f24 3f000000 -> bfff4d45 3eda6caf c0881cdc 3e7adfa2 3e134e36 bfc64ff6 bec024d1 bf36ee7d", - "422d5612 c135cecc c224002b c0836a40 3f0bfd30 3fd2bf48 3f762107 3f000000 -> 4058e898 bf411a76 bfb68041 3eaab85a bf996e7b 3e8897c4 3f0117dc 3f715983", + "c16e4c30 c14b7fe0 c1d54085 bf8b652c bfca9a04 c06e21c5 3e857f24 3f000000 -> bfff4d45 3eda6cb0 c0881cdc 3e7adfa2 3e134e33 bfc64ff6 bec024d0 bf36ee7d", + "422d5612 c135cecc c224002b c0836a40 3f0bfd30 3fd2bf48 3f762107 3f000000 -> 4058e898 bf411a77 bfb68041 3eaab859 bf996e7b 3e8897c4 3f0117dc 3f715983", "c14fd0a4 bf22c600 c17192b0 3e9dd3c0 c0bd4f62 40656694 3d24f368 3f000000 -> beff75fe c0d75ce4 4082d09b bcb4fe19 3c34a7be 3e184c99 bdb90498 bf7ff000", "40cb6f18 420bdb7a 423a18e2 c0802b55 beff9dc0 bfc16eb0 3f70ee13 3f000000 -> c05a7f35 3bd810da bfa0cad2 bf57161c 40a94183 bc275f6f 3ff91c8a bf0ad490", "c22b4d81 41a392ec 423ce770 bfa3e2d8 409774fa c07e6f32 3f46714c 3f000000 -> bfdd6fa6 c021e2ac 3f2cb532 bdb4ffec 3f462d16 3f9d4611 bd304b02 3e837570", @@ -7122,10 +7122,10 @@ "422bfc72 408d09e0 41cadff4 bf949404 40b76420 c05932ce 3e0260c0 3f000000 -> 3e1ad712 c0700bfc 4035036a 3e345710 3f873541 3ed84397 bf4514a3 3f2c6e39", "4182b7f0 3fdb3500 423dfe3e 3ff98528 409c70a4 3db12680 3f38a282 3f000000 -> 3ef90c71 3fbabdde 3cffa967 3f70ef28 3fad5f13 4081ff52 3db1f9b3 bead0d2a", "413263c8 bfec49e0 c18d8a1c 3fa248b0 40ac1f40 3e0a2c00 3d090b54 3f000000 -> bca80779 3e97874d be698984 3ed80cf6 400f1075 3fccdce2 c02c14f7 be947a34", - "c14cd5dc 421796b6 c13e9a50 bd739d00 c06779b4 40898cda 3f76729b 3f000000 -> 3dc4e9ea 401d4ac1 c064800e 3d4e6b1f 3f0e7a24 bd288139 bf8f7aa8 3f1baa65", + "c14cd5dc 421796b6 c13e9a50 bd739d00 c06779b4 40898cda 3f76729b 3f000000 -> 3dc4e9ea 401d4ac1 c064800e 3d4e6b1f 3f0e7a22 bd288139 bf8f7aa8 3f1baa65", "418f6740 41f235c8 4215cd42 bf2b2258 bf9e2864 40096424 3f5f39ba 3f000000 -> be5562ac bf1d54e0 3f6bf72d 3f43aa38 be7cebc0 bf3a7b3d 3f8bd79c bf25145c", "c21af350 c244d836 c1fd5079 c04d5704 c084cb9b c054b65e 3f7c2c02 3f000000 -> c02a3303 c06ce177 c052a8f5 bf0fe3fb 3fe753f7 4020fab9 400f290a bf53bc0b", - "c1d91797 422434ca 412c86c4 c0a6a1ff be700520 4051c5d0 3ca2ec6d 3f000000 -> bf1cff92 bda671ee 3ec4b46b 3f7e5aae c0ac3c44 bf369954 4057cba2 bde7da35", + "c1d91797 422434ca 412c86c4 c0a6a1ff be700520 4051c5d0 3ca2ec6d 3f000000 -> bf1cff90 bda671eb 3ec4b468 3f7e5aae c0ac3c44 bf369952 4057cba2 bde7da32", "c1d68924 4105a85c c232ef2e 3f547b60 bfb8f8a0 3f50ae20 3f0ed843 3f000000 -> bd6ae04d 3e01e51e 3e889d50 bf7356a6 3e33b352 bec6c2fc bf510b30 be9f06e2", "41841508 c14ba5c8 42234a50 405641f4 bfd89908 c080c7a1 3f7bf0dc 3f000000 -> bf3b659f 3ec0b685 3f5fef14 bca2d5fe beed41b9 3fcc95eb bf9ffd2c 3e6bca16", "41ab7d88 c21fcf04 c1e179b7 3dfeaf00 407c2510 40861d2c 3eff6bda 3f000000 -> bdcb6bb1 c05d2a17 c0889194 3f1af01f 3d9aa858 402825d1 404fa971 3f4bca27", @@ -7162,22 +7162,22 @@ "c18fbce6 c22dfc75 c0efbca8 4081c10a 3fa33a00 409759ea 3f67ef0c 3f000000 -> bf3f410e bf22565c 3f2ec5e2 bed5b35d c03d3bcc bf0b39ee c00f3505 be7c1db3", "41dc9120 41066fb4 41e51bb4 c0af079e be40fae0 3f9102d0 3a428d58 3f000000 -> 40858dd5 3fa1c560 bfc5d334 bf01413a 40289b75 3f7b7b03 c01d7e4a 3f0b485f", "c204b70a c0e6eab0 405ddf70 3f8cb560 3fe47360 c009a082 3f05139d 3f000000 -> 3e0506c1 3fb50296 3ddaf7a8 3da04aa2 be4289ee 402cda41 c04a45dd befee595", - "41e775b8 41a13c24 3fff4440 c0ab4f3c c0af6a4b 4062f6d0 3ef83151 3f000000 -> c0938b46 c0791d1e 402f4bb1 3ddd00cd bf001f3a bed8524c 3e983873 bf7e814d", + "41e775b8 41a13c24 3fff4440 c0ab4f3c c0af6a4b 4062f6d0 3ef83151 3f000000 -> c0938b46 c0791d1e 402f4bb1 3ddd00cd bf001f39 bed8524b 3e983873 bf7e814d", "c1990bdd c22aca80 4143abc0 3f8f0ed4 409ecb36 40bd3d24 3f3f7d18 3f000000 -> 3e7c42ad c02acd31 c02ad591 3f5df0f6 bedb68e4 40948f0c 40949653 3eff2bcd", "c21697f6 c21a8540 422f2efa c0b2df61 40bc3f6a c09e501f 3cdafb54 3f000000 -> 404b0750 bff7ce6c 3f54574b 3e692377 bf9b078c 3f74d3af 3f4e90a2 3e170af8", "416a6ce0 c1a40321 c224844e c0875f12 3e02c380 c050400e 3f717c7e 3f000000 -> 3f5bfafd bf578513 3e09b82a bf210791 40546be4 bf3e6ade 3fbb2d42 3ea4603f", - "bf13d980 c187a568 c224fbf8 4017ddcc c08280e5 c0b7b521 3f07efce 3f000000 -> c035c7e9 4046f7b2 408de22d 3eda80e7 3f27ddb6 c0458a5f c0085163 3f5ebdad", + "bf13d980 c187a568 c224fbf8 4017ddcc c08280e5 c0b7b521 3f07efce 3f000000 -> c035c7e9 4046f7b3 408de22d 3eda80e7 3f27ddb6 c0458a5f c0085163 3f5ebdad", "c15a6a20 42220e4a 41e33738 3f41c650 c09a217d bf71f350 3eef1ccb 3f000000 -> bf9232a6 bfd661c0 bf881c2f 3dd9ae5b bf511ebb bf7d8751 be02f9d2 be208642", "3f8ccd80 c2065d14 c09c9e60 3f596790 3f9c0e48 c03de55e 3d3713ad 3f000000 -> 3d8701f5 bf856906 3ee69b79 3f589fb3 bd5be9b1 3f9dc717 bed7dece 3ecce28f", "c194b02e 411abbf0 40b7bf58 3ff375b4 c04d0045 bda99740 3e123c80 3f000000 -> 3fe78ed8 c042110d 3ef8a224 bf318c2d c036b693 4081fc19 3f83136c beb7e53b", "c1158174 c0dc0c78 42229080 3ec7f980 3f4cdb70 3efea3f0 3f5080f0 3f000000 -> 3e73860e bd68f779 be9c8d3b 3e9f1250 3d9f3286 bc984bc7 bdccaeef bf7354c9", "41c2106c 405e6e80 421e2858 40429838 40b4f244 c0595821 3f429101 3f000000 -> bf08a4d0 3f0467fe bf3d3d16 3e670e91 3d3e3def 3ed61720 4047141f 3cdd6ce6", - "c1e92711 c20a6ca2 c038e830 409660e8 3fffb930 3f377180 3e0ac49b 3f000000 -> 3f558c3c 3f2b69c1 bf308c3f 3f2c6b1f 4072bb10 3fa110d8 3e8db4f1 bb866fe9", + "c1e92711 c20a6ca2 c038e830 409660e8 3fffb930 3f377180 3e0ac49b 3f000000 -> 3f558c3d 3f2b69c1 bf308c3e 3f2c6b1f 4072bb10 3fa110d8 3e8db4f1 bb867017", "c213a47c 415c3df4 40f57130 409d128a 40b6d2a8 409910e6 3e38682c 3f000000 -> c0609695 c0375c02 c08b0570 bf2306eb c0194810 c0870187 c045b923 3f3d16a2", "41bafc9c 4040c1d0 c2384dcc 40a3ff3e 3eaf13d0 bfabbbf0 3f74f97e 3f000000 -> c09ae81a 3fbb6006 3f9d6de1 be502d30 bf6b220d 3db0f756 bed9d3fa 3f554e4a", "c0270280 42170b1e c23bc9c1 3ec43160 4091d758 3fea50c4 3f44b72e 3f000000 -> bdf61ce9 406c7377 3fccac48 baeddb4e 3fab5485 3db1b1bb bfd68e22 bf307c0c", - "414ef014 40b21ee0 41fde9c0 3fc84534 c0b2469e c0255f52 3dd83a99 3f000000 -> 3d054e09 bd9dbe7f 3e93b33e beed3ddb 3f6c8450 407824b2 3d04c278 3e29c43d", - "c0b72308 c2257991 41d5836c 3f4c8c90 40a66b74 c0bd330a 3e8d23ff 3f000000 -> be960ca6 c0053936 3e27d95c be06b313 3fb1cec1 bfbd90a3 bf792711 3e1a0b33", + "414ef014 40b21ee0 41fde9c0 3fc84534 c0b2469e c0255f52 3dd83a99 3f000000 -> 3d054e10 bd9dbe7f 3e93b33e beed3ddb 3f6c8450 407824b2 3d04c288 3e29c43d", + "c0b72308 c2257991 41d5836c 3f4c8c90 40a66b74 c0bd330a 3e8d23ff 3f000000 -> be960ca6 c0053936 3e27d970 be06b313 3fb1cec1 bfbd90a3 bf792711 3e1a0b35", "41eadde8 c1883b50 41459bb8 3f8b2318 3fdb6564 3fce6960 3c10f1a3 3f000000 -> 3e2a07ce 3e976bc2 3e862015 3f7ac176 3f4ec396 3fb8224e 3fa31a12 be4e34e9", "c2462536 420e7624 42028568 bf2ff7c0 407c85d8 4068c688 3f3c1252 3f000000 -> bf98ace4 bffc1d44 c0491ccb 3e8a3a95 bd352040 3f921df4 3ef19767 3f2e5386", "c1b2ef80 c0be2610 c16083bc 405c2de8 409c59fe bfcc2428 3f006614 3f000000 -> 4005d507 404199d8 be0bb2fe be922beb c0366336 bf9059ee 3d024f4a bf452778", @@ -7187,27 +7187,27 @@ "419f9b74 42446f7a c1f9de1a c0611312 be625da0 bfc641f8 3e2a6f08 3f000000 -> 400ee70d be6ba7b2 3f33d83e bf22f77c 3febeadc be42856c 3f1473dc 3f456d95", "41692cc8 c114756c 41dfea20 c0b5ee8a 3fd75800 405283c0 3f362b17 3f000000 -> c05275e1 3edb82ec bf503b09 bf580669 40930788 bfe983dd c0866d83 be87e41f", "40e14890 c1783ecc 41705b40 c0b4e735 3f37f220 40275588 3f0f92a2 3f000000 -> c098015d 3f9e4ea3 403885e9 3ed705d2 c00cae84 3f12839b 3faac6ed bf685485", - "41061698 c05acd50 420b0b0c bf200920 c09137fb c0ab22d1 3f3a7a8c 3f000000 -> 3fac4705 405d74ef 3fc6b2e6 3f1823a6 bf7c495e c01de987 c09a3534 3efb88e0", + "41061698 c05acd50 420b0b0c bf200920 c09137fb c0ab22d1 3f3a7a8c 3f000000 -> 3fac4705 405d74ef 3fc6b2e6 3f1823a6 bf7c495e c01de986 c09a3534 3efb88e0", "c23a9414 c102ac08 409f2568 40956024 3fa5276c 4090b6aa 3ec3d45c 3f000000 -> c03644f7 bfc427a8 c068d345 bf289191 c033cf05 bf5aef0d c070d206 3ef8745d", "41d6939c c2239a52 41babdd8 c08d2c84 401c5920 c0902ebd 3f4c4e64 3f000000 -> 3f6d1340 bfbaa59f 3ebe7a7e 3d867d94 be1b76eb bf281843 be7ba74c 3df2a956", "42120dd8 4100f4b8 40dc7408 4038dc1c 409c595e 40b3fdaa 3f7a3d3f 3f000000 -> bfc33673 bffef515 c03c889a 3f270b90 4074c748 408c812d 4083588d 3e5d753d", "c22f20fc c1a7197a c1e98d2e bf002348 c0affda8 c0a7797e 3decf621 3f000000 -> 3eec79c4 4099377f 406dddce 3f115d84 bea3210e c0536376 c02416ab 3f52b98c", "4021c4e0 c17fe868 41cf392c bfd76bc8 c00cdb5a bf3e7170 3f1cb7da 3f000000 -> 3f2dcc2a 3f315cd7 3f09d94c bf19b99a bf9c3b88 3f07253b be70219d be6aa357", - "42438da6 c1d7df3c c2111ca0 c0b373da 40988b36 c0033d45 3f4d5bb2 3f000000 -> 4012b7e4 3f5c743d 3c8db636 bd901a7a 3f8ab549 3eb60a09 3fc49512 3dcd570a", + "42438da6 c1d7df3c c2111ca0 c0b373da 40988b36 c0033d45 3f4d5bb2 3f000000 -> 4012b7e4 3f5c743d 3c8db62c bd901a7a 3f8ab549 3eb60a09 3fc49512 3dcd570a", "c1c4eac1 4226b7e4 421e9d8a 4088d1b2 3f8f6600 4049ccb8 3f37fac1 3f000000 -> 3f3d1fc2 3ea8dcef 3f66ca8d 3f7646e5 40269fb6 3f94c5f7 404b5579 be8bc43e", - "421a15fe c1b106e9 41a5c304 c05b22b2 c09f207a 4040b7e4 3f78ac19 3f000000 -> 401a7e7d 406f51b9 bfdd05ac 3e8588b6 bef1ea6b 3e268e1e 3fbae05e 3f581092", + "421a15fe c1b106e9 41a5c304 c05b22b2 c09f207a 4040b7e4 3f78ac19 3f000000 -> 401a7e7d 406f51b9 bfdd05ae 3e8588b6 bef1ea6b 3e268e1e 3fbae05e 3f581092", "c2151e44 c17d52f0 c0ddba10 3f4a3c20 40706050 c0331dc2 3e78c661 3f000000 -> bf1b45e1 bf02a724 3e3068a7 3f672b51 40029c9f 4055188c bfdd893a 3e2cd55a", "41c8bf8c 423dc256 41da160c bfad9708 400f3ee4 c0713c62 3f60520b 3f000000 -> 3ff3a6ef c01c8623 bf00ae11 bf0f27cf 400efeae c01a4744 3ffdc24a bd54a470", "c16f4cd0 c0daa6f0 41a66bfc c0bc31d8 3fd67130 c0795b57 3f4eee55 3f000000 -> 409b4569 bf558889 4035a6c3 3f3c6aff c0a8cfb3 3f68277a c0457df7 3f2d4e1e", "c1491284 c196c840 41232e90 bf1eb940 c018bfb3 bf9e27f0 3f23db16 3f000000 -> 3f7f5350 3f838185 3fa294d9 bf1ee30d 3e5c5e79 bfa98a5b 3de4aca0 3d74a95a", - "c22f76a5 c23344eb c20df755 c04e9a64 400fabc0 3fd84688 3f5c96fd 3f000000 -> 40692189 bfd19f2f bf6b430d 3e8f7457 bf7755c8 bfdd4632 3f8d9965 3f6983dc", + "c22f76a5 c23344eb c20df755 c04e9a64 400fabc0 3fd84688 3f5c96fd 3f000000 -> 40692189 bfd19f2f bf6b4309 3e8f7456 bf7755c7 bfdd4632 3f8d9965 3f6983dc", "421b651e 41a53544 c05432c0 c09fa4f1 c0a80fc1 3f35f930 3f00bf43 3f000000 -> beea3767 3fefb99c 3f8ccf09 be2a0d41 3e1760b8 3f94851b 3ecd7130 bdd8dab9", "4230f58c c2166d7f c04463c0 409c3a0e 3f6c2460 40837d10 3f08e72a 3f000000 -> c01c16d9 bf07400b bfedb2cf bf27bdda c07c9495 3f425d8b c0178264 3ee3df2e", "420ad16a 4247ab84 c1ec31a2 bf25e630 3f684cf0 c081635a 3f40bc64 3f000000 -> bf6bb447 bf53d21f 3e84eba6 3e5d36f7 3f1bfc0a 3fd5cb13 bf978f7d be81d8e3", "c23bf09c 42037d1a c219000d 3e120000 408dfb1a 3f9e0710 3f30893b 3f000000 -> bfcc7bb5 bec50c07 3eaf8922 be220b89 3e3c8770 bf9a0da0 bfc9e61d bd94d272", "42290740 414c0974 c2099996 40bfc992 3f0a8170 c0ba676a 3eec84b5 3f000000 -> 40441441 bfd4da9c c018e65b 3f6ae859 408ffe01 3ff9e5cd c08eb6a7 bec5f101", "41b42100 c1cf0dad 422a4290 3f6d6070 3fb24cb8 c01572c8 3edd262d 3f000000 -> beef1c7a bdcfe77d 3f564c05 bf2dbd7f bedcf473 bdc01e16 3f46065a 3f3c0450", - "c1f9ed42 c212ee20 4084c5e8 402c3734 3f27c7a0 c097921e 3e5b707e 3f000000 -> bf819ee5 bea0058d 3fde8951 3ec594a4 3fd7a293 3e0c6676 c0415a62 3ead3500", + "c1f9ed42 c212ee20 4084c5e8 402c3734 3f27c7a0 c097921e 3e5b707e 3f000000 -> bf819ee6 bea0058c 3fde894f 3ec594a4 3fd7a295 3e0c6677 c0415a62 3ead3500", "c232f06f 4230217c 41e3fdc8 c09533bf be88b040 c096381b 3f5bbbfd 3f000000 -> c06f242b bf14e793 bfc4ff22 3ee388d2 c0392aab bf64486a c039cbce bf168559", "42171d88 c1710c80 40e79c20 c06c15b7 40af3d62 4070a218 3ca26c6a 3f000000 -> be6a59e7 3f6608c5 3ffb9f73 3dc14ee9 bf84c37f 3efa15df 400c80ba bd8df087", "beb7ed80 c195594f 4222f52c c0b3cba0 407bc8f4 c0a408c9 3df99e44 3f000000 -> c0a288e1 40708608 c09d54d0 3ed96bd0 c01878a2 3fe1a1a0 c013970b bf67c57f", @@ -7229,12 +7229,12 @@ "c1ad57b7 3fdc6ee0 41f355d0 40927334 3fa73d28 403e3220 3eb6eff5 3f000000 -> bf6d0f7f 3e4f7034 c0833b58 be18dcc9 bfb9ada4 3eb4ace0 bf8ea70f 3f198fad", "423ebd88 c22076d2 c1e6cab8 3fe13dc0 c0311946 40bfdb84 3ea78895 3f000000 -> 3f0821df c0431559 40e07c7b 3e483e55 3dd92881 bf1b9935 3fb30cd9 bf7b0ebe", "c15483a4 41e2edb8 4220c264 3f47a178 c087a5c5 c020d313 3cb89c14 3f000000 -> c000b46a 3ed9bd91 3f8b13c6 bef25c20 bfa8218e 4034d6d6 40147392 3e9c6f34", - "42199716 c1f5d9f0 c1d0e49e 402b9848 bfd62764 c0238681 3f610546 3f000000 -> c02dcfc8 3fabac9b 3ef7a840 3d98d223 bfa0e9c0 be35a763 bf35cc8c 3d489da4", + "42199716 c1f5d9f0 c1d0e49e 402b9848 bfd62764 c0238681 3f610546 3f000000 -> c02dcfc8 3fabac9b 3ef7a840 3d98d223 bfa0e9c0 be35a764 bf35cc8c 3d489da5", "c1e18843 c1ea1d4a c1f0de9a 40100934 c09a15bb bfa9b9b0 3ea9a9fc 3f000000 -> bfedbc48 4041fa37 3fa3c95f bf2ce41f bfd9b49b 4031a25a 3f95fcaf 3f3ccc46", "c1e75efe c247ca30 41917d6c c05f78a5 400ae5d8 bfbb4348 3ee9250f 3f000000 -> 3fbbc938 bf63c8c9 3f5c342f bf6d0d7f 406647ec c00baa52 40070473 3ec14ee3", "41ca9c70 c236c993 c1d61825 3f91ebd8 c0156ed7 3d4f0700 3ea50dcd 3f000000 -> be2ded4d 3f293293 be97a457 bedbf082 bda57901 3ea0f91e be104557 3f672d3b", - "3f0bac40 c2235044 c12fbf78 bf5d7ee8 bdb4d580 bed6e9f0 3ecc771d 3f000000 -> bcc0b1ef 3b6388a9 3e1d37ca bf60c54b bd30bcf4 3bd0b11f 3e9032e0 3ef5107f", - "c18c5f22 40d0e9c0 c208d1fb c0414db8 bef23af0 be853f10 3f423e80 3f000000 -> 3f9f5cd2 bf89a54c 3fb99ee5 3de3410e 3e101ef2 bcacae0e bf22ac7d beed1c82", + "3f0bac40 c2235044 c12fbf78 bf5d7ee8 bdb4d580 bed6e9f0 3ecc771d 3f000000 -> bcc0b1e6 3b6388d0 3e1d37ca bf60c54b bd30bceb 3bd0b142 3e9032e0 3ef5107f", + "c18c5f22 40d0e9c0 c208d1fb c0414db8 bef23af0 be853f10 3f423e80 3f000000 -> 3f9f5cd2 bf89a54c 3fb99ee5 3de3410e 3e101ef2 bcacae1d bf22ac7c beed1c82", "421c97d2 c242f60f 4237a34a c07cedd0 3fa927c0 40be66f4 3e202557 3f000000 -> bf7861a7 3e63b5ad 3fc16f81 3f7971d1 c0868b6f 3f76b1b3 40d19003 be663f9c", "41e28214 c1dff8a2 c16675e8 bed18b00 409e6748 3f4e5c30 3e05d941 3f000000 -> bf52ff06 40809974 3f97be2e bebe104e 3ea8b4bd bfcda5f1 bef2a865 bf6db52c", "c20c2366 c245663c c214a0c5 c0aad26e 40593d60 3f2dec80 3f366ed6 3f000000 -> c0a9bbed 4081e8c9 3f70011d bd97cbb8 3fa470e3 bf618115 be2e2972 bf7e74d7", @@ -7300,7 +7300,7 @@ "420edbd2 4213f8a4 c22eb859 bec6dc50 3ec73660 407b6750 3f6d2051 3f000000 -> 3e9509a0 3f0e98a2 c0241151 3f36d780 be9815b3 bf1182fe 40276c11 3f332da9", "c223667d c225ff34 415ea3d4 bf1e8c60 bfaa4c04 3dd5aa80 3e92ff72 3f000000 -> 3f1d6979 bee9bdd3 beff057f be95961a 3e4059d5 be0ecfab be1bd013 3f74d49c", "413520a0 420b64b4 41921efc c05b5dc1 4029a30c 401678e8 3de04541 3f000000 -> 3e519ec4 bee0a927 be91cfb8 3f7e59b3 bfe5b178 40762c98 401fc637 3de81f56", - "41380bc4 c1c94463 414649dc 40ba1f70 bfcf8424 c0299fe2 3f390b6d 3f000000 -> 3fb61a66 c027a579 c02e92f1 3d09ecb9 40109a20 3f875e20 bc81bf2b be8cb958", + "41380bc4 c1c94463 414649dc 40ba1f70 bfcf8424 c0299fe2 3f390b6d 3f000000 -> 3fb61a66 c027a579 c02e92f1 3d09ecb9 40109a20 3f875e20 bc81bf1a be8cb958", "c22b966d 4246261a c217aae1 bf82a248 3f91128c c05d921e 3ebb7c1a 3f000000 -> bffbe4d3 403cca92 c0712475 3ef2cfa3 bf87afe1 3fcb6439 c001e544 bf616197", "3ee01000 42130f8e c1428140 40bf1842 bfed2720 40828c1e 3e151a3c 3f000000 -> c000583a 3f59d55a bfed76d7 bf6cca17 c09c2c92 40048896 c0907a2e 3ec2983d", "c145f42c c0bb08e8 415a04c4 3ecd5a00 3f852b68 3fe922e8 3f51d5d1 3f000000 -> bed83b5f bd89baca 3f6bba4c 3e9cbc6e be0b107a bcb127b4 3e979a44 bf73b5b3", @@ -7315,7 +7315,7 @@ "423b1544 4190a20c 40d19768 3dcc3800 3e1ba600 c0beb4e7 3f508cbf 3f000000 -> bfc9acf4 3fdd15a5 be9e6d06 3f11bc01 3fb9246c 3f8f3841 c06379c9 3d2e42ec", "c09ae0b8 c23b5550 c13113fc 40a19c44 c0196226 3fd81300 3ebb7d00 3f000000 -> 3f49278a bada5100 bfca8df6 be8e0490 c00bdedd bfb048b4 be6778bd 3e8e0a9c", "c1a3ff64 40bda240 40ce6920 3f3f48f0 4063fd30 c052759e 3f0d6d4e 3f000000 -> 3fae6fa2 403c9b58 3dc42885 3f31d2b1 3c8aeb7f 3f7dcaa7 bfe535aa be1c1843", - "c1120be8 c1356da0 40f93db8 c05778e2 40821568 40ad9be4 3f6235ac 3f000000 -> 4048150c c001d8cb c0a22786 3ee7fc7e bfcaf663 3e8548d7 4031cd73 3f259945", + "c1120be8 c1356da0 40f93db8 c05778e2 40821568 40ad9be4 3f6235ac 3f000000 -> 4048150c c001d8cb c0a22786 3ee7fc7e bfcaf663 3e8548d7 4031cd72 3f259945", "c1383fb8 41aa0624 bf90aa00 4098411c c06c4c15 40021778 3f41782c 3f000000 -> c0acf6e7 406374a9 bfdcf47c bd15df43 bea0354c bbffb3e8 bea19208 3f58dcb2", "40881408 422378c8 41b17ea8 c0554d28 c091a72f c0a5ce0a 3f7a0e60 3f000000 -> c0101919 bf9ae321 c03ce2bd 3e380a5c bf844d98 bf53e851 bf477512 bf1b3db8", "42118818 c0bd7838 42169c9e bffb8898 be3ee040 40a1746c 3f20d3ae 3f000000 -> 3f2bc9d9 bf70eead c034deee 3c6efce6 3efc10da 3f136b94 3f1ef384 3e963716", @@ -7327,11 +7327,11 @@ "407510d0 41d12bd8 4238ffde 401f5168 3e0c8260 c068e4c0 3e7e4cff 3f000000 -> 3fd784a2 bfd9df18 bfe8fe65 3ece32b4 3f159759 bfe183d1 bfbcece7 bf435b24", "42286d90 c0d669b0 409abdb8 c0a55665 c08b50a6 409d7328 3f0b70f0 3f000000 -> 409f4eb2 3fd59c64 c0a1cfd2 3ebdbccc bf6a8504 c0345791 3fb43350 3f67637d", "40808538 420cdda6 c1d96028 3e21ff00 c011ea23 409049de 3ec93506 3f000000 -> bea31741 bf95c98c 3fb2f070 3f5fbbe7 3f7413b0 bf87054b 408474c4 bda142aa", - "c186b798 c1346e60 c1c1bc24 c004c3f0 3f7cca10 c0ba966c 3eb25d32 3f000000 -> bf5ea3d1 bf17a595 bf07cc86 bf175dba 3f97106c bce874fc 40284694 be111a86", + "c186b798 c1346e60 c1c1bc24 c004c3f0 3f7cca10 c0ba966c 3eb25d32 3f000000 -> bf5ea3d5 bf17a594 bf07cc8c bf175dba 3f97106b bce87502 40284694 be111a89", "c1aaffc6 c116eaf8 c1904f01 c0b87841 4006df40 402d2a4c 3f47e57d 3f000000 -> 3fe2a698 bf7fd8cc bf80fca3 bf1c08c1 4085b579 c004ce71 c032ce1f 3f213d89", "c210559c c22f40e9 c11f2ce0 bef6b0e0 bf849088 3d4b6300 3f3ac13d 3f000000 -> beaf70e5 bf105e10 be064829 bda9fd9a 3ce9cd31 3d40642e 3c32f36a bf7f1ddb", "c11093ec 41e95144 412ac560 c0b81c1f 3ffe6cf8 c0bfec5a 3ecfb1e0 3f000000 -> 3fd42658 bf560945 40677723 be22be66 3f1f2328 3f0f1db6 401a756e 3ee47007", - "420bad72 4177dd68 420871a2 402a3910 bfb8db88 40ac257e 3e53a602 3f000000 -> 3da61c89 3f646b2a 403a8407 bd32a950 3e4a2167 bec97eba bf606b13 bf3749a3", + "420bad72 4177dd68 420871a2 402a3910 bfb8db88 40ac257e 3e53a602 3f000000 -> 3da61c89 3f646b2a 403a8407 bd32a950 3e4a2167 bec97eba bf606b11 bf3749a3", "c14939ec 41a3bbe0 c13f7e3c 40a4cad0 c073b7e8 409996fa 3f22837d 3f000000 -> 406fb95c c04ba0bd 40908492 bf0ed481 c0212a5a 4008e5eb c0425142 bf54738a", "c23d1277 c1d90192 c2341210 beec0460 c07243fe 404aa258 3ecd4fb2 3f000000 -> 3ee93428 407a3e36 c04b7377 3e609676 bdd1b1b5 bf61040b 3f36f0e4 3f79c456", "41e83d20 42031b24 c232aa82 40982f10 bfc5339c 3ffb17a4 3f6c05e1 3f000000 -> 40812bdf bfe484b2 3fac3cf5 bd1971e8 bf9264b0 beba5e27 bffaa777 bf3604c8", @@ -9347,7 +9347,7 @@ "40bcad6c 40779eb8 3af16c3c c174e6b6 3fc0b988 3c801dd6 -> 41a99eb6 401741f4 3c8f63c5", "c104d6fa 3f0d0a50 39d9aac2 3fb2d710 bf93689c 3c5a491e -> c11b31dc 3fd9edc4 3c61441e", "4197454e 4064df94 3a88e443 c190c1df 3fa35008 39774681 -> 42140396 40133790 3aacb6d6", - "c02dbe68 c020dfed 3a6798aa 40824ff8 c04490dc 3bb42405 -> c0d92f2c 3f0ec3bc 3bd151e9", + "c02dbe68 c020dfed 3a6798aa 40824ff8 c04490dc 3bb42404 -> c0d92f2c 3f0ec3bc 3bd151e8", "c18fdeae 4035f4dc 3d227f08 41778c28 bf9d4c60 399f196b -> c205d261 40824d86 3d23e2cc", "4135d448 404c0c34 3c3b1530 410f6126 40668b90 40bb1176 -> 4019cc88 bed3fae0 40bb6f12", "c1284539 408de740 38f47fd4 c18045f5 3c53fe00 3a1507ea -> 40b08d62 408d7d41 3a361404", @@ -12591,7 +12591,7 @@ { "glsl": "float cultmath_cycles_power(float, float)", "tolerance": "ulp-bounded, platform pow", - "platform": "Ubuntu 24.04.5 LTS; .NET 10.0.12", + "platform": "Microsoft Windows 10.0.26200; .NET 10.0.12", "cases": [ "bfb8bc1c 00000000 -> 3f800000", "3f7fc090 3fa15ed0 -> 3f7fb009", @@ -12854,7 +12854,7 @@ { "glsl": "float cultmath_cycles_logarithm(float, float)", "tolerance": "ulp-bounded, platform log", - "platform": "Ubuntu 24.04.5 LTS; .NET 10.0.12", + "platform": "Microsoft Windows 10.0.26200; .NET 10.0.12", "cases": [ "416175a4 418f2e6d -> 3f6ac789", "40d2d3ad 416ecd13 -> 3f328da7", @@ -13015,7 +13015,7 @@ "40f1bf09 4176dd9e -> 3f3d3089", "41250305 3f8051c0 -> 446a1e9f", "41558518 417a2177 -> 3f7143c9", - "404b60bc 4196dad1 -> 3ec99020", + "404b60bc 4196dad1 -> 3ec99021", "4120edef 4159270a -> 3f629694", "4160d238 3ff7d002 -> 408001d4", "41870981 4137656a -> 3f944fe0", @@ -24907,7 +24907,7 @@ { "glsl": "float cultmath_cycles_arcsine(float)", "tolerance": "ulp-bounded, platform asin", - "platform": "Ubuntu 24.04.5 LTS; .NET 10.0.12", + "platform": "Microsoft Windows 10.0.26200; .NET 10.0.12", "cases": [ "3f74439c -> 3fa22776", "beaa06dc -> bead5166", @@ -24932,14 +24932,14 @@ "3eae8380 -> 3eb2152a", "bf3ff8fb -> bf590ffc", "3f7bb06c -> 3fb189e5", - "3dee93e0 -> 3def1ede", + "3dee93e0 -> 3def1edd", "bfb0b96e -> bfc90fdb", "bf454824 -> bf613cb1", "3f23fb40 -> 3f31f9c7", "be9b0000 -> be9d788d", "3fb7c110 -> 3fc90fdb", "bf0c30e4 -> bf145b51", - "3e855c0c -> 3e86ea5c", + "3e855c0c -> 3e86ea5d", "bf0e2123 -> bf16ae2c", "3f72c708 -> 3f9fbe32", "3f98afd8 -> 3fc90fdb", @@ -24970,7 +24970,7 @@ "3f81d10a -> 3fc90fdb", "bf033714 -> bf09c506", "3fa3a04a -> 3fc90fdb", - "3f1281b8 -> 3f1bfaf2", + "3f1281b8 -> 3f1bfaf3", "bf34447a -> bf480038", "bf9eb144 -> bfc90fdb", "3f38d780 -> 3f4e86c5", @@ -25014,7 +25014,7 @@ "3f039538 -> 3f0a32b8", "3f4cd500 -> 3f6d70e3", "3ee655e4 -> 3eeee961", - "3ef23d20 -> 3efc5474", + "3ef23d20 -> 3efc5473", "3e0c9370 -> 3e0d0572", "3f9f079c -> 3fc90fdb", "3e4b1770 -> 3e4c7278", @@ -25038,7 +25038,7 @@ "3f982f94 -> 3fc90fdb", "3ef183b4 -> 3efb8213", "bed4d500 -> bedb7e63", - "bf49041d -> bf672e44", + "bf49041d -> bf672e45", "bf986f2a -> bfc90fdb", "3eeeeb04 -> 3ef89167", "bf05421c -> bf0c27dd", @@ -25087,12 +25087,12 @@ "bf2114d2 -> bf2e38cf", "bf89904b -> bfc90fdb", "bf278f84 -> bf36ac3c", - "bf7f527b -> bfbfbed1", + "bf7f527b -> bfbfbed2", "3f8de8c6 -> 3fc90fdb", "bfa9dbe0 -> bfc90fdb", "bf8e558e -> bfc90fdb", "beee0a24 -> bef79347", - "bf7c5d15 -> bfb37639", + "bf7c5d15 -> bfb3763a", "3e2dc4f0 -> 3e2e9d42", "3e8c65a4 -> 3e8e3807", "3f3be8c0 -> 3f530045", @@ -25108,7 +25108,7 @@ "3e8fe798 -> 3e91deba", "bf9af793 -> bfc90fdb", "3f96f5d6 -> 3fc90fdb", - "bf241cb4 -> bf32255b", + "bf241cb4 -> bf32255a", "bfbff533 -> bfc90fdb", "bf02913a -> bf09040a", "3f1ad780 -> 3f264ac6", @@ -25133,7 +25133,7 @@ "3f700570 -> 3f9b993a", "3f68eb8c -> 3f924ad2", "bf5ec490 -> bf871d4a", - "3f44b0ec -> 3f604feb", + "3f44b0ec -> 3f604fec", "3e5adaa0 -> 3e5c8e2c", "bfb0d056 -> bfc90fdb", "3f814c00 -> 3fc90fdb", @@ -25170,7 +25170,7 @@ { "glsl": "float cultmath_cycles_arccosine(float)", "tolerance": "ulp-bounded, platform acos", - "platform": "Ubuntu 24.04.5 LTS; .NET 10.0.12", + "platform": "Microsoft Windows 10.0.26200; .NET 10.0.12", "cases": [ "3da419e0 -> 3fbecb6b", "bccc7dc0 -> 3fcc41e7", @@ -25185,7 +25185,7 @@ "3f99f728 -> 00000000", "3efe6a30 -> 3f867f99", "bf8e3141 -> 40490fdb", - "be1ccb60 -> 3fdcbd18", + "be1ccb60 -> 3fdcbd17", "bf6312e3 -> 402a57f6", "beca9b18 -> 3ffd2360", "bfa261f2 -> 40490fdb", @@ -25221,12 +25221,12 @@ "3e8561b8 -> 3fa753cc", "bf888ac6 -> 40490fdb", "3fbb7d54 -> 00000000", - "3ec05018 -> 3f97c656", + "3ec05018 -> 3f97c657", "bf8c0f8c -> 40490fdb", "bf72b2f0 -> 40345736", "3f244db8 -> 3f5fba77", "3f8a5ea0 -> 00000000", - "3f792f18 -> 3e6cd375", + "3f792f18 -> 3e6cd374", "3e8b1738 -> 3fa5d8c1", "be22d5b8 -> 3fdd80c8", "3f434100 -> 3f340ba0", @@ -25250,7 +25250,7 @@ "3f8f186c -> 00000000", "3f30b1e8 -> 3f4f1b53", "3d953310 -> 3fbfba8c", - "bde0dee0 -> 3fd7250e", + "bde0dee0 -> 3fd7250d", "3f7b8300 -> 3e4007f6", "3f35601c -> 3f488ecf", "bf9a050a -> 40490fdb", @@ -25272,7 +25272,7 @@ "bfb4c70e -> 40490fdb", "3e93057c -> 3fa3c820", "3f2b8624 -> 3f56293a", - "bf51e010 -> 40220aae", + "bf51e010 -> 40220aaf", "bf8aa06c -> 40490fdb", "3f9839c8 -> 00000000", "3f28eed8 -> 3f59a156", @@ -25297,16 +25297,16 @@ "3e8aea00 -> 3fa5e480", "3ed35888 -> 3f9298c3", "3f567510 -> 3f13e3ce", - "3e9761c8 -> 3fa2a464", + "3e9761c8 -> 3fa2a463", "3fbc3ca0 -> 00000000", "bf5814bd -> 4024d6ee", "3f807f68 -> 00000000", "3f9dceea -> 00000000", "3da55340 -> 3fbeb7c5", - "3f1a4008 -> 3f6c92ef", + "3f1a4008 -> 3f6c92ee", "3fa491d4 -> 00000000", "3f385e00 -> 3f44484f", - "3e9ac620 -> 3fa1c0e6", + "3e9ac620 -> 3fa1c0e5", "3e9541ec -> 3fa3329f", "bf647da0 -> 402b1eac", "3dc1c080 -> 3fbcef2e", @@ -25351,7 +25351,7 @@ "beab7798 -> 3ff4c5fc", "3f0df694 -> 3f7ba4b1", "3f94dda6 -> 00000000", - "bf5c7d84 -> 4026f34c", + "bf5c7d84 -> 4026f34d", "3f9296ba -> 00000000", "bfbada1e -> 40490fdb", "3f8cf40a -> 00000000", @@ -25364,11 +25364,11 @@ "bf6b7605 -> 402f4022", "bfad549a -> 40490fdb", "3faa5d8c -> 00000000", - "3e8b7c88 -> 3fa5be6e", + "3e8b7c88 -> 3fa5be6f", "3f3fa580 -> 3f398dc6", "bf61690a -> 4029746e", "bf73a264 -> 403516b7", - "bebc692c -> 3ff94c5a", + "bebc692c -> 3ff94c5b", "bf28f55c -> 4012a9b0", "bd6d56c0 -> 3fd07ba1", "3e8aae98 -> 3fa5f3ee", @@ -25427,13 +25427,13 @@ "3f930316 -> 00000000", "bf6bfdd5 -> 402f9730", "3fa53312 -> 00000000", - "bf1a0e9a -> 400ddba4" + "bf1a0e9a -> 400ddba5" ] }, { "glsl": "float cultmath_cycles_arctan2(float, float)", "tolerance": "ulp-bounded, platform atan", - "platform": "Ubuntu 24.04.5 LTS; .NET 10.0.12", + "platform": "Microsoft Windows 10.0.26200; .NET 10.0.12", "cases": [ "c08cbc16 c1549681 -> c0349aac", "418c8108 41948858 -> 3f41f3ee", @@ -25442,7 +25442,7 @@ "c1853a3e 4183660c -> bf4ad4c8", "40cc3750 c18864ad -> 4032239a", "c1841fce 414eb7b4 -> bf682df1", - "3f7f11c0 41915dcc -> 3d605f59", + "3f7f11c0 41915dcc -> 3d605f58", "c1190690 40822148 -> bf959a14", "41235546 414a8e7c -> 3f2db91b", "c173027e 4157ae48 -> bf584be7", @@ -25451,12 +25451,12 @@ "41504298 c1432d3c -> 4014b8bf", "41976732 4165afb0 -> 3f6bff17", "c12faa83 c19c5692 -> c0284d67", - "c0aa038c c0cb2194 -> c01c7634", + "c0aa038c c0cb2194 -> c01c7633", "c0df2a78 c0a67120 -> c00d8b25", "4144767c c11a39a5 -> 400f2006", "c00c8aa0 4194be56 -> bdf0c4af", "3f876310 c1937378 -> 404564aa", - "41636814 c1172a84 -> 400a13e2", + "41636814 c1172a84 -> 400a13e1", "3f81e2e0 bd4f6800 -> 3fcf71a7", "41309010 c08f8f1c -> 3ffa7c90", "40982a9c 3f904760 -> 3fab4541", @@ -25467,23 +25467,23 @@ "4192314a 4086f2c0 -> 3fac080a", "411b37ca c171da02 -> 40248b70", "c1664f18 c130242c -> c00e512f", - "40eced38 40bd9198 -> 3f655f42", - "4104386c 411d5130 -> 3f32ed70", + "40eced38 40bd9198 -> 3f655f43", + "4104386c 411d5130 -> 3f32ed71", "bdd98800 c15cd654 -> c04891c6", "c161bae2 c19f6675 -> c021a16c", "c15bccb4 4139d89a -> bf5e709e", "c1065de6 c1860dc7 -> c02b5428", "419a2318 416c82f8 -> 3f6a973f", - "bf911740 3eafb040 -> bfa36fa4", + "bf911740 3eafb040 -> bfa36fa5", "41961b7c c01fd768 -> 3fd9fffb", "4042f5d8 c00cea20 -> 400c95f1", - "c12f053d 418e307c -> bf0d3c4a", + "c12f053d 418e307c -> bf0d3c4b", "403d4400 c11dc866 -> 40366a62", "c15831c7 412e7716 -> bf644dcc", "c0d29330 41698de0 -> bed8d810", "c0fd3872 415963f8 -> bf0702af", "c131bb1f c074e670 -> bff386a5", - "417f6828 40a71880 -> 3fa09868", + "417f6828 40a71880 -> 3fa09869", "40497b80 41717390 -> 3e529a28", "413af82e c196608f -> 40257713", "4179eb80 bfb8a2f0 -> 3fd4d959", @@ -25492,8 +25492,8 @@ "414f2488 c180a1ba -> 401dad4f", "4036b5f0 c15671f1 -> 403ba162", "bf97a3d0 c0046bb8 -> c027c818", - "40ae84d8 c0f9a4b6 -> 402203ec", - "3feb4440 40f9d6e0 -> 3e6cc1c5", + "40ae84d8 c0f9a4b6 -> 402203eb", + "3feb4440 40f9d6e0 -> 3e6cc1c6", "419f7088 411a15a2 -> 3f8f723b", "c188441a bfeff970 -> bfd71812", "40560bd0 410fd5de -> 3eb65b86", @@ -25508,10 +25508,10 @@ "414c9fc4 418893dc -> 3f249745", "c033b3b8 c18b7729 -> c03ed777", "c13f3667 c152d7a7 -> c019eb30", - "c086fb50 41627eb4 -> be9446ba", + "c086fb50 41627eb4 -> be9446b9", "c13dde75 41858b9e -> bf1e348f", "41655ddc c13d8347 -> 4010b9bb", - "40a95660 41584940 -> 3ebf0aa4", + "40a95660 41584940 -> 3ebf0aa3", "4141fbc4 c0ce1146 -> 4003c77a", "c0091050 c155ea5c -> c03ee580", "40b8f0c0 c18079b9 -> 4032f416", @@ -25524,17 +25524,17 @@ "40a7d388 c07a5f68 -> 400d8c45", "4186baee c161afee -> 4011273b", "c1988920 3f471480 -> bfc3d822", - "3f70c440 40be95d8 -> 3e2060cf", + "3f70c440 40be95d8 -> 3e2060d0", "417834e8 415d5098 -> 3f57b555", "c1775234 40c0f8f8 -> bf99734e", "c1974114 4198ffc8 -> bf479800", "410c0ec4 bff12930 -> 3fe432a6", "413a6dc4 c09ce414 -> 3ffc0b0b", "be987ac0 c097edfc -> c0450d7e", - "bfa53460 4194fa8e -> bd8db6e0", + "bfa53460 4194fa8e -> bd8db6e1", "40d38cc8 c19c290d -> 403429aa", "415e9230 bea6b840 -> 3fcc0ec1", - "c1612e94 4199eb08 -> bf21ad98", + "c1612e94 4199eb08 -> bf21ad99", "c102419c 3f3e0580 -> bfbd6c6a", "c171e10c 3e75cd00 -> bfc70799", "c159f7c3 c040e368 -> bfe4ee5c", @@ -25543,18 +25543,18 @@ "c0ebecc4 4188a552 -> bed0a0ee", "40b612c0 419e96ba -> 3e8f1b96", "c1392859 c184cf09 -> c02219d5", - "40f88828 c0379bc8 -> 3ff65a7b", + "40f88828 c0379bc8 -> 3ff65a7c", "4183657e 418c205a -> 3f40d57c", "3d64c400 c049c398 -> 4047eda0", - "c184e5e2 c0ba5c6c -> bff438b2", - "c13cf1d2 c09df406 -> bffbbd3f", + "c184e5e2 c0ba5c6c -> bff438b3", + "c13cf1d2 c09df406 -> bffbbd40", "41951ea0 40d3e958 -> 3f9d5e14", "4117a1c4 4182e3fa -> 3f0666f9", "c100421b 3fa11c00 -> bfb52067", "c0a4c048 3fd9b1a0 -> bfa0392a", "c0bce6f0 c0a756e0 -> c012ed67", - "410f31a8 4089ad2c -> 3f8fb3fa", - "beb17800 40836d64 -> bdac6ea3", + "410f31a8 4089ad2c -> 3f8fb3f9", + "beb17800 40836d64 -> bdac6ea4", "c0724d88 bee688c0 -> bfd836b1", "3fb83bc0 c1693dec -> 4042c367", "c18c3dd4 4027c610 -> bfb60fc6", @@ -25562,7 +25562,7 @@ "41231d74 404d91d0 -> 3fa1fe4e", "c0e92c5a c04e1b80 -> bffe543d", "404ffd08 c1396f46 -> 403790b4", - "bf50eb60 41702f48 -> bd5e7502", + "bf50eb60 41702f48 -> bd5e7501", "c0294f90 412b4d2a -> be780e6d", "c0fe6df0 41350240 -> bf1cd3f4", "bfd3b0d0 41824f24 -> bdcf3ab0", @@ -25571,15 +25571,15 @@ "400eab20 c180166a -> 4040354a", "40b741d8 415a8318 -> 3ecb4b31", "c0b19f72 c1844941 -> c03455ba", - "418bd268 c0f5d76c -> 3ffe1262", + "418bd268 c0f5d76c -> 3ffe1263", "3fa6a0a0 c19bf37a -> 4044cb60", "417687a4 418fb914 -> 3f357bee", - "c104b28d 40b23950 -> bf7abbaa", + "c104b28d 40b23950 -> bf7abba9", "40b00cb0 be7bb000 -> 3fcec6d5", "41836b9a c15bc2b2 -> 40111937", "40697890 417344c4 -> 3e7121a8", "4190121e c158f0df -> 400dd562", - "c18bdd8b bf6a2c00 -> bfcfc0bd", + "c18bdd8b bf6a2c00 -> bfcfc0be", "418b5438 4191f240 -> 3f431ff0", "c0f7e4e4 410571fe -> bf3f9e8f", "c163d334 bd98d600 -> bfc9bb97", @@ -25590,27 +25590,27 @@ "c133cbd1 c12c03ab -> c015618c", "bf32bb00 c1111506 -> c04424d8", "40e3794c bfa93e10 -> 3fe099e8", - "419cd3d2 bf1c60c0 -> 3fcd0c96", + "419cd3d2 bf1c60c0 -> 3fcd0c97", "bf800240 40cf58c0 -> be1ccef2", "c1630418 4194bc52 -> bf26e0ae", - "419ee38a c0d13810 -> 3ff1c4a8", + "419ee38a c0d13810 -> 3ff1c4a9", "c0554ad8 bf756f80 -> bfecea8c", "4155c1e0 c086c8b0 -> 3ff02782", "c19438df c155bc54 -> c00c82ae", "4181ed52 c072d0e0 -> 3fe66fdc", "41335fee c12dcd2f -> 4015c95e", "c1571882 c194fd20 -> c0210be4", - "c19a88b4 c0b6e8d0 -> bfede30f", - "c153621e c19b2864 -> c022ca69", - "40a5abdc 419f6cf2 -> 3e822341", + "c19a88b4 c0b6e8d0 -> bfede310", + "c153621e c19b2864 -> c022ca68", + "40a5abdc 419f6cf2 -> 3e822342", "40d30c58 419f1e6c -> 3ea3ee9c", "418c0490 c0b33c62 -> 3ff0b4e5", - "c0831f14 40e27288 -> bf065d6a", - "bf2ad860 4075b2b0 -> be303f57", + "c0831f14 40e27288 -> bf065d69", + "bf2ad860 4075b2b0 -> be303f56", "bf04a640 bffc8c00 -> c038a00e", "bf41b3a0 40b8c260 -> be056f50", "4021d860 c14d4bd9 -> 403c9ba3", - "3d83a000 40cb8cf8 -> 3c258915", + "3d83a000 40cb8cf8 -> 3c258914", "c178b13e c0fba980 -> c0028267", "c0108e98 40935624 -> bee9826e", "40833c68 40d08ed0 -> 3f0fc87b", @@ -25623,13 +25623,13 @@ "c1000d87 419fc51c -> bec32579", "c0814a50 c18dda43 -> c03ab943", "c186e3b7 c15b7765 -> c0103ce8", - "4183a496 c01779a8 -> 3fdb58d2", + "4183a496 c01779a8 -> 3fdb58d3", "40e51c20 bfe49ed0 -> 3fe85ad7", - "4187b382 c1690142 -> 4011ef14", - "40d37970 419b19ac -> 3ea83333", + "4187b382 c1690142 -> 4011ef13", + "40d37970 419b19ac -> 3ea83332", "3fa7f3f0 c0b5afc8 -> 403a86cd", "c122c32b 416a72a0 -> bf1b5a62", - "40374b70 c19b6a93 -> 403fb1c2", + "40374b70 c19b6a93 -> 403fb1c3", "c08588a0 c19f609e -> c03bd8f2", "419cbe90 c170df46 -> 400e75e0", "4182e2b4 c1643109 -> 40126ac4", @@ -25642,9 +25642,9 @@ "c1300d51 c108ac40 -> c00ec793", "410261e6 c1588362 -> 40265f3f", "419adcac 40054e48 -> 3fbb5784", - "41798160 c0ecc4b0 -> 4000e25e", + "41798160 c0ecc4b0 -> 4000e25f", "40639318 c1702fdd -> 403a2d2c", - "c1794797 c1829f3b -> c0184bca", + "c1794797 c1829f3b -> c0184bc9", "c0904192 c0035a40 -> bfffbf67", "41787da0 c19a2a35 -> 401da5e0", "4120e654 c1014c4b -> 400fdab9", @@ -25664,15 +25664,15 @@ "4112e32a c18e9f42 -> 402aa0a2", "bfaa2d50 40ef51f8 -> be3427dc", "c16ae95c 406f7cb0 -> bfa91e64", - "40d2db80 405037e8 -> 3f8e5b81", + "40d2db80 405037e8 -> 3f8e5b82", "be920280 419b18c2 -> bc70fbde", "41823e9c c10676ec -> 4003074a", "40fc01e0 40a9689c -> 3f7a9c4a", "416ade10 c15a3b2c -> 40147298", "c12b4626 419bd752 -> bf00a1ec", - "413a29aa c0cd07be -> 4004befe", + "413a29aa c0cd07be -> 4004beff", "c199d0c3 c1866487 -> c0127d6a", - "419e0288 c1425a56 -> 4007d1b2", + "419e0288 c1425a56 -> 4007d1b3", "4144a97c 4083fd0c -> 3f9f9ec3", "4104e2a2 3f327440 -> 3fbe57fd", "c10cd1b9 40378e30 -> bfa0bd4e", @@ -25685,7 +25685,7 @@ "3fc08c60 c177750c -> 4042db49", "c10a43a9 c0be1246 -> c00b121d", "4061f8c0 40e4294c -> 3eeb6b1a", - "c0aa3df6 4165c098 -> beb5a9ce", + "c0aa3df6 4165c098 -> beb5a9cf", "c13c904c c1220f4d -> c011f7c3", "4141fe18 c13691ef -> 4014db0f", "c043e348 40bf5874 -> bef239e5", @@ -27502,7 +27502,7 @@ "41849800 c188d01c 41c72b04 bdd28ae4 beedfee5 bf837164 3f90e18e 3f3f55f0 00000000 3b0d2fc8 4236f87d bf39e059 3f2e8b81 3f74e94f 409bab14 4004ea5c c0dfa028 3f15b8f0 40bd0658 40f00d4c c03d5e5d 3fd6171b 3f14477a 00000008 4023bcd8 beb3a626 -> 3c1191c1 bb1feb74 3c0b933a 3f428fb6 3da36fdc 00000000", "422b6520 41258304 c0839c80 bf7be9f9 bf5e6f5d be832d17 3fb0ec81 3db71d93 3f000000 bab888e5 3d2777da bffc2caa 3fcdc7ff bfbf07b1 bfad3168 406be260 c0b132a1 3f177070 3f3a7250 c03e6f00 402b13e6 403e9444 403f1752 00000005 3fc9b537 3e80067b -> ba77e11a 3bb8a89f bae78866 3f9248c4 3e00dfe5 3aeaa69b", "41d93ec4 422da77c c2100d66 3f52fd44 3febeba3 3fa7c7f0 401c2757 3fd15b5a 3ca3d70a c08b04fe 3c9ab5f4 3f64b957 3f00166b 3e8499d1 c0318716 c0d2f8c4 c03076c4 40aaf1a8 bee4d250 c01196bc bf93badc bfc7a3c4 401329e9 00000003 4038f474 bf67d4d5 -> c56ce0f4 c5053dc2 c4891c8e 3f0ccf21 4d38aa8b 48af23ac", - "c1929f8e 41790590 bd960400 401c4ee9 bef7d899 bf905fa8 40316b2a 3ec68420 3dcccccd 3e2351d4 3d8250a0 bf11a5ca be6aff5d 3e360e5b 3fb5bef8 406b31b0 bf6c5108 be5bcca0 3f9523a8 be3fd840 bfbe3742 3f6faee8 bf6227f9 00000004 3fd683e2 3f187ba5 -> 40594256 3f654700 bed6cbe8 3f9fc85b 455dd8d8 43679f29", + "c1929f8e 41790590 bd960400 401c4ee9 bef7d899 bf905fa8 40316b2a 3ec68420 3dcccccd 3e2351d4 3d82509f bf11a5ca be6aff5d 3e360e5b 3fb5bef8 406b31b0 bf6c5108 be5bcca0 3f9523a8 be3fd840 bfbe3742 3f6faee8 bf6227f9 00000004 3fd683e2 3f187ba5 -> 40594069 3f65417a bed6c66a 3f9fc888 455dd8dc 43679f26", "40653cc0 41fa519c c2431b4d 3eec3129 3fc4bc98 bf3584e5 3fe13e56 3e87c466 3ca3d70a 4047c965 3d3a6a63 bf948db3 bf1fca65 bf84aa3d 40f42854 c0860ed1 3fb75a08 40ed70ea 40a2e562 3fa437d0 bfe25dd3 c0025cd0 3e6a13b4 00000007 bf12ee58 3f7ada76 -> c363268b c2e25afd c34d34a0 40995dd9 48bcadde 42ffb11b", "42060ba2 c2181a78 41e2e484 3f9298b5 bfd5ea1c bf6b356e 4048300d 3fe741dc 3f000000 3b27c028 423a8cc6 bec5937d 3f22c857 3f807614 3fe5bac8 40d1014c 40e06ba6 c034bf4c 40a3aa92 40217fb8 40396fc4 3df08d77 3fb28b80 00000003 40099c68 bf32bfca -> bb131d2c 3b94b2a7 bb43e70f 3f9c4e3e 3b4883f5 3c04918b", "41d5de38 c1ada306 42039892 bfdd6bd1 bfaa73dd bee8d71e 403bc376 3fb43217 3f000000 3a946acd 3f963133 be85f94a becba2e1 be643b88 c0aa4450 bfdf4a84 40c9c04e c0131930 bf47dfe0 3f835170 bf538f19 be8d9115 40279934 00000007 3f031cfa be896c82 -> 3a026a39 39981093 ba5dbea0 3e3ebb35 3836a673 00000000", @@ -30586,7 +30586,7 @@ "bf217c8d becc21d0 bf378e33 42c53108 bf217c8d becc21d0 bf378e33 42c53108 00000000 3f800000 bf217c8d becc21d0 bf378e33 42c53108 00000003 -> bf217c8d becc21d0 bf378e33 42c53108 bf217c8d becc21d0 bf378e33 42c53108 00000000 3f800000", "c167ddc0 c1f40f78 4320be2c 45d2bda6 00000000 00000000 00000000 7149f2ca 00000000 bf800000 42a6931d 407c8e40 42a61cd5 4547a8c8 00000001 -> 42a6931d 407c8e40 42a61cd5 4547a8c8 c167ddc0 c1f40f78 4320be2c 45d2bda6 3f800000 00000000", "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 c1e4e8a0 c25b8dec c2ce2346 4556aa42 00000000 -> c1e4e8a0 c25b8dec c2ce2346 4556aa42 00000000 00000000 00000000 7149f2ca 00000000 bf800000", - "3fcb389b bfa59b45 bfe3cb26 4386cf2f c1a79864 c2560988 c241c9a4 44ae6380 3f800000 00000000 3fcb389b bfa59b45 bfe3cb26 4386cf2f 00000002 -> 3fcb389b bfa59b45 bfe3cb26 4386cf2f 3fcb389b bfa59b45 bfe3cb26 4386cf2f 3f800000 40000000", + "3fcb389c bfa59b47 bfe3cb28 4386cf30 c1a79864 c2560988 c241c9a4 44ae6380 3f800000 00000000 3fcb389c bfa59b47 bfe3cb28 4386cf30 00000002 -> 3fcb389c bfa59b47 bfe3cb28 4386cf30 3fcb389c bfa59b47 bfe3cb28 4386cf30 3f800000 40000000", "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 430dced8 c2d3b8a0 41c3f5b8 45f4e96b 00000000 -> 430dced8 c2d3b8a0 41c3f5b8 45f4e96b 00000000 00000000 00000000 7149f2ca 00000000 bf800000", "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 c30244bd c314b27a c2241c9c 461f3b8e 00000000 -> c30244bd c314b27a c2241c9c 461f3b8e 00000000 00000000 00000000 7149f2ca 00000000 bf800000", "00000000 00000000 00000000 7149f2ca 00000000 00000000 00000000 7149f2ca bf800000 bf800000 3f8ec21f 3f13a3d0 be7dd51e 42b950fc 00000000 -> 3f8ec21f 3f13a3d0 be7dd51e 42b950fc 00000000 00000000 00000000 7149f2ca 00000000 bf800000", @@ -31198,6 +31198,1054 @@ "40539f00 c2122050 423b2e18 40539f00 c2122050 423b2e18 c1ae4660 c138258c 404d49a0 -> bf800000", "4240f392 c0ac6948 c1bff4f6 41b23800 c2132e37 41f84b4c c1d9368d 4100a7fc 41c8c400 -> 3f8dd440" ] + }, + { + "glsl": "vec3 cultmath_lattice_site(vec2, float, float)", + "tolerance": "ulp-bounded", + "cases": [ + "4516a000 c49e2000 4345fe3e 00000000 -> 4516a28e c49e0e0e 3f70a10c", + "c5037000 c4c88000 4326cf8c 3ee87eb0 -> c5036d39 c4c8761a 3f050f3b", + "43820000 c4aa8000 00000000 00000000 -> 43823d7a c4aa6000 3f1c709a", + "44c84000 c4060000 00000000 3ef36bc0 -> 44c84606 c405ffd9 3f56bbdf", + "4535f000 c5507000 42ad4bb4 3f02ac68 -> 4535f84d c55064d3 3f5ed3da", + "44c04000 455b3000 c29db30c c01fce33 -> 44c05ddd 455b303e 3f564a69", + "c5079000 c4814000 4273beb8 00000000 -> c5078e60 c4813926 3f2c059c", + "c512d000 c4810000 4286bfc8 bf4f2938 -> c512c061 c480e00f 3f4d7138", + "c3b50000 45643000 c3195c8b bd688a80 -> c3b48b8d 4564304b 3f0338a7", + "c56ed000 44c6e000 c27f8adc 00000000 -> c56ec069 44c6e94d 3f2146df", + "45418000 44da0000 4333ec32 3eec80c0 -> 45418024 44da034f 3f3b13a4", + "43b38000 c48b0000 4236a448 bd487d80 -> 43b3f77e c48ae327 3f2f60d0", + "c4c46000 45655000 c219682c bfd1f5ea -> c4c4499c 45655ea3 3f5d3646", + "44814000 45755000 42173cf8 bf96cc78 -> 448155f5 45755d80 3f706cc6", + "45021000 c4a20000 3ff02700 bf0c5478 -> 45021895 c4a1f49e 3f1678c8", + "444fc000 453d9000 c2d9d52e 3e0bae00 -> 444fd4e8 453da000 3f724e70", + "c557b000 c51f8000 42eb3708 bf93fbea -> c557a18e c51f7eea 3f6b9a18", + "452e0000 44fae000 c162dda0 00000000 -> 452e01e7 44fae6b2 3f3e55f7", + "c52b2000 c4902000 00000000 be29f8a0 -> c52b18eb c49009b5 3f693a0c", + "c51fa000 c4968000 00000000 c03ff8fc -> c51f9fdb c4966074 3f276407", + "c4dc2000 c51b4000 c31c98ae 00000000 -> c4dc0010 c51b3aca 3f5c8c77", + "454ea000 c573b000 00000000 3fbeaf6c -> 454ea59c c573aff1 3f00d8e4", + "c5540000 c3490000 c283b24e bfd167dc -> c553f38b c348dedd 3f75543b", + "4527a000 448a2000 42c52d40 c01d8305 -> 4527aca2 448a26f9 3f5fc117", + "c4cc6000 c51a1000 c30c7f28 402f0130 -> c4cc5a05 c51a0e7d 3f4549ec", + "c5384000 44c64000 c3111069 3e0b3dd0 -> c5383508 44c6405a 3f0620e7", + "45106000 4575b000 00000000 bf903333 -> 45106fb0 4575bed5 3f4d7f0c", + "c4540000 4527a000 430cd3a0 c0251d1e -> c453d052 4527a0b4 3f712106", + "44b6c000 c5628000 c32e3909 bf6d37b8 -> 44b6dbe7 c5627aaa 3f470c97", + "44d34000 c2d20000 c33acc51 401742b8 -> 44d36000 c2d0e0bb 3f09a977", + "44b12000 4514f000 41a5e158 00000000 -> 44b12085 4514f086 3f130f68", + "453d5000 44a36000 432f78fa 3fdbd4b0 -> 453d5f3a 44a3600f 3f14b309", + "43ba0000 c44e4000 00000000 00000000 -> 43ba1bf3 c44e251a 3f433df9", + "c4ae2000 c5115000 c2daf32e 3ef3f1e0 -> c4ae1e64 c5114000 3f1a58ef", + "c53d1000 447f8000 00000000 4016422e -> c53d0c2a 447fbdac 3f13ddf9", + "45414000 c4934000 4270bc80 bd7e2880 -> 45414cd2 c4932139 3f7fa642", + "44454000 c5494000 431b0cee 400367e6 -> 44455187 c5493c16 3f49516a", + "450b3000 45350000 c25cd74c 00000000 -> 450b3f17 45350cce 3f4d916d", + "c44a0000 c4ef4000 4285f7bc 00000000 -> c449f186 c4ef2d05 3f63a4ce", + "c5182000 c4658000 4257dd40 402db7fa -> c5181bd3 c4654c46 3f010c4e", + "c4b9a000 43dd0000 42e7d3a4 c0006246 -> c4b993de 43dd0b04 3f456178", + "45760000 c4bd6000 c2a96c4a bf9c3a0e -> 45760221 c4bd5e35 3f4c9684", + "455ff000 c4c8a000 c2be4e1a bf4be8b8 -> 455fffb8 c4c89f04 3f731d86", + "c537b000 c487e000 00000000 403c65be -> c537a28b c487c0ab 3f2fd3b2", + "c507b000 452a7000 c2dceddc c003ba9e -> c507a71f 452a7029 3f460e8e", + "c4cac000 c47e0000 00000000 3f60a72c -> c4cabfcf c47dc004 3f58c19e", + "450d8000 4546c000 42518368 3f2d2104 -> 450d8cd6 4546cfd9 3f77afbe", + "45390000 453cf000 43093ed6 4032420c -> 4539000d 453cf9fd 3f7619dc", + "c4f38000 c4840000 432d7aaa 401d82ae -> c4f36c0f c483fedb 3f734ca2", + "41880000 c3e60000 c3212ca2 402982a8 -> 41892de9 c3e5fe3d 3f0088fa", + "45606000 438d8000 c2c5731e 00000000 -> 45606fb0 438dad7b 3f00561c", + "c47b8000 454f9000 4235c81c 3dc8f740 -> c47b73b8 454f9850 3f49392a", + "44f6c000 43b20000 c1567f80 bd10b180 -> 44f6daa9 43b24cc4 3f1ef926", + "c5247000 43580000 00000000 4010a91c -> c5246bf8 43589d0d 3f5526fe", + "c52f5000 4531e000 c2dd64c8 be644570 -> c52f4038 4531e036 3f137c2c", + "42800000 c501d000 4294ccf8 3fd407b8 -> 4281394c c501c099 3f62ba02", + "44b60000 c486c000 423b06d0 bf8d4844 -> 44b602db c486ad4b 3f0da434", + "4555f000 c537f000 4335ee6e 3fc4f888 -> 4555f9f0 c537e01f 3f092784", + "c45e0000 c5132000 4340db6c 3fb247b0 -> c45de425 c5131ff8 3f4079b4", + "440bc000 c425c000 c32b25f6 c01ef6eb -> 440bd54f c4259a5e 3f225f0c", + "c5713000 45573000 c1987f28 00000000 -> c5712d8a 4557396e 3f31cd03", + "c47dc000 43ea8000 c209aff8 3f0da2f8 -> c47d8ed2 43eaf5fb 3f4ddd9a", + "c5477000 452e9000 c1a9fd60 bfd75c5d -> c5476068 452e9fbf 3f111f00", + "c4a42000 43500000 c3465ad3 400051b4 -> c4a4012d 435008f7 3f455f0c", + "445ec000 c5707000 c2a65667 00000000 -> 445ed54b c57060e7 3f6b2eec", + "c5400000 454fd000 422ff274 3f0256b4 -> c53ffec4 454fd002 3f6c0833", + "44464000 4512e000 c11c4dc0 00000000 -> 4446400b 4512e74c 3f7be588", + "456eb000 c44fc000 00000000 3f393210 -> 456eb513 c44fbd7a 3f247f74", + "44630000 c49da000 00000000 00000000 -> 44632f12 c49d9fc9 3f43de8b", + "c4d6c000 c48d2000 c3110d0d bfecf93c -> c4d6a078 c48d003d 3f530442", + "c5511000 439a0000 00000000 becd37f0 -> c5510438 439a249a 3f43e7ad", + "443c4000 c5518000 42ab772c be529760 -> 443c5459 c5517925 3f7c9f1a", + "45711000 c53d1000 c2b19c54 be932470 -> 45711ee6 c53d0dc5 3f1dd7fe", + "44f40000 c4b04000 42eec970 c00b9278 -> 44f415cc c4b02b37 3f3b746b", + "c50f4000 4578e000 c22b40b4 3fad404c -> c50f3bd5 4578edd2 3f232010", + "45008000 44da2000 00000000 00000000 -> 45008740 44da360d 3f48a34e", + "450fe000 41b80000 00000000 3ff098ac -> 450fe56f 41be7a28 3f6326c9", + "c564d000 c4248000 430b4f0c 4004391a -> c564cfa5 c4246077 3f0c305e", + "c52ca000 44834000 43137c1e 3f4b0d84 -> c52c904d 44835d66 3f1548a7", + "454b6000 c3ba0000 4346efb2 c019ee96 -> 454b6e10 c3b9e0c2 3f1e6b9a", + "c4440000 453f5000 42cd3a10 400a4d06 -> c443ffe1 453f5ff8 3f6afd40", + "45212000 45649000 c29fc325 bf7ea380 -> 452124c8 45649f40 3f59c676", + "4502a000 c50d6000 425e1ef8 401be5a2 -> 4502a4ee c50d5fc1 3f542ed4", + "44984000 45611000 c2a63d71 00000000 -> 44984f0d 45611622 3f73b29f", + "c4858000 c3af8000 c1e74308 00000000 -> c48579ee c3af55df 3f425274", + "452f2000 c4eb8000 c32d5a65 bf13c1f8 -> 452f2c33 c4eb74c6 3f18acae", + "449e8000 451d6000 c2ab528d c0321702 -> 449e8151 451d6752 3f309a6a", + "c56d0000 c4964000 00000000 3fa39ef0 -> c56cff30 c4963da2 3f3f81d1", + "45412000 c5446000 428d5588 3fc17e4c -> 4541245d c54450f3 3f0896e0", + "454bc000 c49b0000 c1f54480 00000000 -> 454bc0a0 c49af622 3f33a73a", + "4521f000 44228000 428d96d8 3fafc708 -> 4521fb2e 44228197 3f3e5d29", + "c5449000 42f60000 430caaec bf5acfb0 -> c5448a4e 42f60310 3f47c393", + "43eb0000 c533b000 c206c198 3f324510 -> 43eb30cc c533a65f 3f48772c", + "45541000 c4ae0000 c2eca3e9 3ed6c250 -> 455418ea c4adfffe 3f0908d4", + "c4264000 452ff000 42039b48 beaaf830 -> c426197f 452ffd99 3f13a4e6", + "44dd8000 45620000 419bd4b8 bfa5c5d6 -> 44dd83c3 45620f4a 3f0eef84", + "4572b000 439e8000 c2a24c7e 3e963610 -> 4572b30b 439efffc 3f4fa950", + "454b1000 4534b000 42c7daec 00000000 -> 454b1f53 4534b7d4 3f7d91e1", + "438f8000 c22c0000 c2e17394 3de3c840 -> 438ff9b2 c228004d 3f70a0b9", + "c5496000 453ef000 432b22e8 bfb83f2c -> c5495cdf 453effa1 3f1c38c4", + "44210000 c4bbe000 c346e648 c00e09ed -> 44213fb5 c4bbda43 3f6b6e8e", + "4573a000 c4760000 00000000 00000000 -> 4573af0f c475c337 3f7156aa", + "c2ae0000 c40b8000 00000000 00000000 -> c2ac3700 c40b6e23 3f628da4", + "447e0000 c5506000 c2a18ed8 3f3cfd68 -> 447e3e1a c5505f72 3f60d346", + "44a70000 45276000 c324f3e1 bfd24f18 -> 44a70883 452767a3 3f07bcce", + "45764000 c4050000 42855fdc bf5cb590 -> 45764003 c404f7b7 3f6cff51", + "c4f50000 c4dc8000 00000000 3fa77534 -> c4f4e7cb c4dc6136 3f6a82af", + "43b88000 c4440000 4337d146 c03d5484 -> 43b8ae60 c443e95c 3f3bd79a", + "c463c000 c5775000 c32c9e6a 4016519a -> c46389f5 c577462c 3f0ef61c", + "c5730000 c5149000 c311b2c6 00000000 -> c572f888 c51489d4 3f344d30", + "443a0000 44f5a000 c1c93e80 bfaa937f -> 443a3d86 44f5b3ba 3f7aa052", + "c5354000 43d70000 c27a9b38 c00cf66a -> c5353b0e 43d77b7b 3f6852a4", + "c5227000 45391000 42635f88 c00cfc99 -> c52266aa 453912fa 3f501530", + "4545f000 c55ba000 c2a48576 bd063c00 -> 4545fab2 c55b9d96 3f2e7034", + "c550f000 c4e58000 00000000 3e814740 -> c550eb6f c4e566f4 3f1d7ed7", + "45388000 c3918000 00000000 c0074f24 -> 453886d9 c39155b8 3f1cb110", + "44ba8000 c4de8000 c2af40f4 c0104f11 -> 44ba824e c4de6786 3f6bdb17", + "443b4000 c43c8000 4282dd88 400f0ae4 -> 443b6e18 c43c7fce 3f5b73dc", + "44e6a000 c516e000 c2c885c1 c025110a -> 44e6bfc1 c516de51 3f666d73", + "c414c000 c5549000 c2a10f69 4027c27e -> c4148078 c5548f2d 3f6ef1fa", + "c4912000 43de8000 00000000 c03b8174 -> c4911deb 43def7e0 3f67bee6", + "4479c000 453dd000 4324f128 00000000 -> 4479cf21 453dd9de 3f53a750", + "c51e3000 44d36000 00000000 00000000 -> c51e230b 44d36f89 3f40d3ba", + "c42e4000 4507e000 c2c1ceef c000e619 -> c42e1574 4507ee28 3f6677a7", + "45417000 c5113000 4337c7c6 bf9f2dca -> 45417131 c5112000 3f6ed406", + "c50bf000 c4550000 c30dc0ec bf2c47dc -> c50bed2b c454fdfb 3f33fe2e", + "c48c4000 44694000 c3064cd2 00000000 -> c48c2d3d 44697274 3f5c027e", + "44e80000 c4540000 42e3276c 4030b2bc -> 44e80247 c453da5b 3f011354", + "44cb0000 c572c000 00000000 00000000 -> 44cb0327 c572b01b 3f007bd7", + "44010000 449d2000 422c916c 401319da -> 4401004e 449d2794 3f2760a2", + "44fd6000 c5611000 00000000 00000000 -> 44fd68c4 c5610fb3 3f5e0eeb", + "c529b000 c4ba8000 c21860ac c01786df -> c529a5eb c4ba6321 3f5b2c20", + "45055000 c4b02000 c26d89ec c0033b58 -> 45055145 c4b003d7 3f75cbe4", + "c4fb6000 4505e000 43117980 00000000 -> c4fb5fa3 4505ef82 3f15ef4c", + "c46f4000 c575c000 4306c934 3e431580 -> c46f0f18 c575be73 3f01a312", + "c5381000 449b8000 433be9ec 3dd7a1c0 -> c5380266 449b875a 3f4db8ef", + "42180000 4454c000 42e0a5b0 00000000 -> 421a0b60 4454c19d 3f748012", + "452ba000 c4234000 430b9ee6 3fd1b1d0 -> 452ba1e1 c42329c0 3f1c1783", + "c5195000 c4720000 4283d944 bf0fd9a0 -> c5194508 c471ded5 3f759668", + "c4374000 45411000 c28e02e8 bf42ffb0 -> c43705a5 4541172e 3f24907f", + "c5655000 4545d000 c2e35010 3f05ae78 -> c5654cce 4545d871 3f0b0a44", + "44f92000 44f9a000 00000000 3feb4604 -> 44f92e6d 44f9b89e 3f1ec66c", + "c4d10000 44f50000 c24417f4 00000000 -> c4d0ee33 44f50fd7 3f3a3acd", + "45543000 c4b76000 c295d081 00000000 -> 455434fd c4b74342 3f44ae16", + "c5045000 c55df000 42b4ebe0 beaf1de0 -> c50443e0 c55deb30 3f1bc5ec", + "c4fae000 c4ac2000 00000000 bfea312e -> c4fac006 c4ac00ba 3f033aa2", + "450db000 c5056000 431a0e26 3f43b3e8 -> 450db05b c5055e5c 3f307ca5", + "44888000 c54e0000 00000000 3f5315d8 -> 44888b06 c54dff5b 3f0135aa", + "45683000 44118000 4327e04c c034e66a -> 45683019 4411800c 3f14ff45", + "c4bfc000 4566d000 c3127243 bfa0d991 -> c4bfb438 4566dfd1 3f261d38", + "4518f000 4529c000 c083bf20 c008b0a6 -> 4518f252 4529c04d 3f7b8998", + "bf800000 c41cc000 00000000 3f2aee68 -> be91ef5c c41c9485 3f40a5db", + "42700000 42bc0000 c0450880 00000000 -> 4271f42a 42bce3e5 3f536bd4", + "c4cb0000 44b40000 00000000 3e524b20 -> c4caea9b 44b400b1 3f2cdb31", + "44440000 c54c3000 42eece7c 3f7473e8 -> 44442331 c54c2cf0 3f5ff7b6", + "c50be000 c5704000 00000000 00000000 -> c50bd03a c5703bae 3f46be6e", + "c55b7000 c47a4000 42af8bec 00000000 -> c55b6f06 c47a05c1 3f0b166e", + "c4fb0000 c5353000 43319b44 c00f668f -> c4fafa6b c5352983 3f0922ba", + "442ac000 c4474000 c1ffe680 bf134720 -> 442ada0d c4470001 3f65caf5", + "43920000 c520f000 431672bc 00000000 -> 4392035d c520e10d 3f4ead97", + "c5183000 45002000 42c64644 3f92d744 -> c5182cc4 45002031 3f027816", + "4569d000 c2f20000 c21c9aa4 be898a90 -> 4569d01c c2f1811a 3f245cba", + "43c80000 c537b000 42803cfc 40125dfe -> 43c84d37 c537a73f 3f476f40", + "c52a6000 45653000 00000000 bf0dd300 -> c52a5da3 456538f7 3f3856d0", + "c573b000 44bf4000 c2426fc8 bfbc227b -> c573a03e 44bf40d7 3f7b0a8d", + "44b7a000 452ab000 c2d5dd5e 00000000 -> 44b7bfea 452ab4f1 3f017376", + "c5207000 c51cd000 c2a1cbb7 bea456c0 -> c5206912 c51cc3a3 3f38f540", + "44fe0000 c3a38000 42b38cfc 402af3f2 -> 44fe1c72 c3a30150 3f135124", + "c4314000 c4d4c000 42c30df8 00000000 -> c4313fdf c4d4aab5 3f74104a", + "c4cb2000 42280000 4316b896 bf6872ec -> c4cb06ab 42283faa 3f552676", + "c5187000 c55dc000 c295d289 bfcf78c4 -> c5186003 c55db81b 3f4e2bb4", + "443fc000 43f28000 c2ddf40e 402e22b4 -> 443fea05 43f2813d 3f662b9a", + "c46b4000 c52fb000 00000000 3fa37c00 -> c46b1edd c52fa84b 3f3c1f51", + "c513e000 44c56000 42929520 3fbcff28 -> c513de45 44c566ae 3f5cbee8", + "42c20000 c54c7000 408f8c80 3e888c60 -> 42c26081 c54c6011 3f639a1a", + "4561f000 c4b92000 00000000 4001b836 -> 4561fe10 c4b91a46 3f0f4396", + "c4b7c000 c5017000 c3127cb2 bfcfead6 -> c4b7a2c9 c50161f1 3f2eeb78", + "44e04000 c5283000 42b21af4 bf7f3440 -> 44e04023 c5282261 3f6e3d92", + "c3ae0000 443e0000 4303a168 3fa3dd5c -> c3adbbee 443e1196 3f33110b", + "c5205000 c4d22000 43071d36 bf1986c4 -> c5204def c4d20c2b 3f707a68", + "c50b4000 44e40000 c34726fa 00000000 -> c50b3bde 44e40d1c 3f2c9abe", + "43270000 454bd000 c264ddc4 3fff4a40 -> 432704b4 454bdbce 3f7ad96e", + "454be000 45696000 43177bd8 3ed240f8 -> 454be0cb 4569679b 3f245c04", + "431b0000 c5227000 00000000 3fc59a78 -> 431bdcef c5226572 3f087a59", + "c5002000 45501000 42ac4c68 00000000 -> c500140f 455014c9 3f4a8c48", + "444b0000 456bd000 c3030cf6 4025653c -> 444b059f 456bdf4e 3f33e254", + "c5479000 454e1000 40881f20 c0075bba -> c54781eb 454e1033 3f0295d0", + "44a14000 451d8000 433ec1d6 3fc9ba40 -> 44a1400b 451d8ed3 3f1807bf", + "c5697000 45351000 4305dcc8 3faa203c -> c5696630 4535169a 3f46b075", + "c5311000 44a2a000 42dd999c bdc15d80 -> c53106c1 44a2b1b0 3f170a62", + "45174000 c496c000 c25dc250 bf1a3ea0 -> 45174e03 c496ab5e 3f22d35b", + "c560d000 c47f8000 433ed0fa 3f8029f0 -> c560ce1f c47f4bd4 3f1394fa", + "c4db0000 4564b000 c24cd640 bfdfe869 -> c4daffe8 4564b6c0 3f6b6c71", + "c5457000 450c3000 c30a9c4c 40079db2 -> c5456fb9 450c35f3 3f6abbba", + "455f2000 45057000 420810dc 00000000 -> 455f2001 450572b9 3f2d3ed6", + "451df000 448fa000 c1a6a018 00000000 -> 451df2ed 448fbb4c 3f720bbe", + "44d02000 c47e4000 c2a0127c c0129019 -> 44d0385c c47e3f5e 3f7adbf2", + "45553000 439e0000 c3318a53 3e8e9db8 -> 455534b0 439e1c29 3f7c94ca", + "43d60000 44fdc000 42db2f08 00000000 -> 43d67294 44fdc4bc 3f10f3bc", + "c552c000 44abc000 c30b0c9b 3fb04f84 -> c552bda3 44abdb91 3f1a84ef", + "c3d18000 c429c000 c3105118 bf6cc1ec -> c3d17d6b c429b1cb 3f2bc02d", + "43978000 c4a6c000 c2e0d6f3 bfc07db8 -> 4397ff3f c4a6bb7d 3f580309", + "c3560000 434a0000 429f9ba0 4007e6b6 -> c3551fca 434a6fa9 3f6bd89a", + "45122000 44f4a000 430ebcac bfdc282e -> 45122a31 44f4a174 3f196366", + "42500000 44d1c000 4285b240 3f69aba8 -> 4253fdc3 44d1d4ed 3f523e46", + "45040000 45667000 00000000 bf1b3d58 -> 45040eca 456670b5 3f3d4cdc", + "45406000 456ae000 c178bb80 400e691c -> 45406fb3 456ae198 3f27e16b", + "44dec000 c3b68000 c236a370 bf16a1d8 -> 44ded1ac c3b66165 3f3d21de", + "c4fb6000 45596000 429408b0 bf56e39c -> c4fb470b 4559658e 3f3a4558", + "454a2000 c5270000 c341e287 3f4bb068 -> 454a2032 c526f2a8 3f38f4ee", + "44ff8000 c54b5000 42d68fc4 be8a8f30 -> 44ff8879 c54b412a 3f3727c5", + "c512b000 c51ae000 c3156fb2 3fb06c60 -> c512a20b c51ad63f 3f4e79b8", + "c5763000 c4568000 431585ca bf15e4ac -> c57622e9 c456538a 3f2e3d1c", + "c555e000 4523b000 00000000 c03e8a85 -> c555dff9 4523b0e0 3f724efc", + "44e84000 c51d0000 432da2ae c004938c -> 44e85cbc c51cfc0a 3f62d922", + "c3360000 451a0000 42665d68 3f9ddeb0 -> c335f95f 451a0765 3f6b3d66", + "c547e000 c57a0000 41ceec90 bff670a8 -> c547d1f6 c579fdc2 3f03246c", + "c4b9e000 440fc000 00000000 3f656108 -> c4b9de8b 440ffb70 3f2cd786", + "44b14000 c3fb8000 c33bc76f bfef45d8 -> 44b14260 c3fb0b32 3f56f000", + "455d7000 c1600000 c1a74710 00000000 -> 455d7e5a c1537ef2 3f6b4a46", + "c534c000 44240000 41052ad0 c0325de0 -> c534b6d5 44240eee 3f27552b", + "c4936000 c4b5c000 c325b43f 3f8fc7cc -> c4934a96 c4b5bfa2 3f7873a3", + "c1700000 453ae000 4307198c 3f63e62c -> c16fd192 453aefe8 3f054eb2", + "44bc0000 44ebe000 c31561b2 bfa17a47 -> 44bc1a8d 44ebf832 3f5267ad", + "c1c80000 4529a000 00000000 00000000 -> c1c68378 4529aed9 3f240486", + "446f4000 45554000 00000000 bfb9fbca -> 446f4a91 45554cb2 3f04aeea", + "c574b000 4534b000 42632d18 3ee111e0 -> c574a1c7 4534bef0 3f343b12", + "c4dd6000 c50c6000 c30d94b0 c039cc04 -> c4dd4348 c50c5d63 3f6cfa76", + "44f9e000 c4ecc000 00000000 bf655430 -> 44f9ee56 c4eca106 3f150851", + "44f32000 452ef000 42a9795c c03b6228 -> 44f328a7 452ef5e2 3f7f1562", + "c5636000 4484e000 00000000 401df118 -> c5635fff 4484ecff 3f4593d8", + "c515b000 44c6a000 4330092a bed8f1a8 -> c515a5a2 44c6b241 3f18d291", + "c2c80000 c573e000 c2f36372 c02328b0 -> c2c604c5 c573db1b 3f64665c", + "c4358000 43040000 00000000 4035b0e8 -> c43577a8 43042920 3f686870", + "c4e28000 44f6e000 433af74c bfb1768e -> c4e27efd 44f6fca1 3f1fd684", + "c51e5000 c4cc6000 41932c20 40062fdc -> c51e4370 c4cc5ffc 3f4a40b4", + "c4ad0000 c5758000 42f5635c c038d3fe -> c4acf6c4 c5757f53 3f397842", + "c5457000 4461c000 c32b94f6 3fd3da60 -> c5456655 4461d013 3f5c713e", + "c531d000 4554c000 00000000 3fd31580 -> c531cd26 4554c02d 3f2a7b60", + "43840000 c5186000 00000000 00000000 -> 43847f3a c518526e 3f41ff98", + "c555f000 c48cc000 c2f78b77 bd954520 -> c555e876 c48ca3fc 3f3c10d4", + "c40c8000 c4966000 c3036da5 3f8df9b8 -> c40c606d c496564a 3f77a9b6", + "c528a000 c51cc000 41010820 c02fddd8 -> c5289b81 c51cbd88 3f2c778e", + "c1880000 456c3000 c2709050 bee25730 -> c1804908 456c3eb8 3f1a77be", + "45160000 45217000 c31a66e1 3e001330 -> 45160236 45217fd5 3f1b38cc", + "c501b000 c4956000 42fe5630 3f65f130 -> c501aacf c4955e9b 3f193a69", + "c560a000 44684000 414546d0 bfb5c683 -> c560979a 446866db 3f2caa65", + "456f8000 4547c000 c3239b00 3fb79da0 -> 456f829c 4547cfe8 3f17c063", + "456a1000 c47a4000 c065cdc0 c003600c -> 456a167c c47a001f 3f3b8012", + "44a3e000 44de8000 00000000 bf284170 -> 44a40000 44de88c4 3f1451d2", + "c53d9000 44c8a000 c32f7aa7 00000000 -> c53d80a5 44c8a06c 3f23070a", + "45576000 43828000 00000000 4025bb54 -> 455769f2 4382ff24 3f181520", + "43940000 c3760000 423db004 bf9bd3b0 -> 43944d97 c375616f 3f56082d", + "c545f000 c4818000 4343a524 400310b8 -> c545e00e c4816966 3f67bff8", + "c561f000 c5312000 c34240ae 3f6b7d28 -> c561ef83 c531107c 3f60b3e0", + "42e60000 c52d1000 c035ce40 bfd2a816 -> 42e77ec9 c52d0004 3f37e044" + ] + }, + { + "glsl": "float cultmath_lattice_weight(float, float, float, float)", + "tolerance": "ulp-bounded", + "cases": [ + "3f6d830b 4151776a 40800000 41422924 -> 40058bf4", + "3f3731b2 4111d3b4 404eb7a9 421b04d1 -> 4039c43a", + "3f47a619 42bda93c 405c5bdd 4210ec46 -> 3f486063", + "3f5385b6 4211ea84 3f8f2ce3 4161d14a -> 3f53d1bc", + "3f17308b 00000000 00000000 40daf0ca -> 3f17308b", + "3f05a592 420406a7 40800000 420cb8ff -> 3fb1aaf8", + "3f77ffae 4126729d 00000000 412cce21 -> 3f77ffae", + "3f50bbd4 420b9574 00000000 42105fca -> 3f50bbd4", + "3f147e0e 7149f2ca 3cfde4d3 410399e1 -> 3f147e0e", + "3f51cb79 42899ee3 3f38a396 420c5e59 -> 3f5507f7", + "3f1844d2 414486e2 00000000 41594261 -> 3f1844d2", + "3f4a43ae 40a73afe 00000000 400d8ac3 -> 3f4a43ae", + "3f4738b5 418b9d5f 3fdb0520 418ed724 -> 3fa52d41", + "3f6373e6 423b7795 40051022 41be11b4 -> 3f6d1c04", + "3f11f09c 00000000 3fe92eed 40049491 -> 3fcde70c", + "3f4c6494 7149f2ca 405836c9 4217dd19 -> 3f4c6494", + "3f7ac799 4118dd0c 3f961c6d 410cbf1b -> 3faa97f5", + "3f067826 428a0413 3e736113 41ef6cf8 -> 3f06a051", + "3f5dbcc6 41eeb285 40800000 41f2f5cc -> 400be4eb", + "3f2befd5 7149f2ca 406fc7ae 414dcfd1 -> 3f2befd5", + "3f5df917 4099d9b4 40440a34 409a0ad5 -> 3fec5d52", + "3f5e2849 4254325b 00000000 42123fe3 -> 3f5e2849", + "3f45d7d0 00000000 4034c322 4207d933 -> 403d2880", + "3f7c965a 40b1e9c7 3e8c350f 41290ee5 -> 3f98838f", + "3f4a2c8e 00000000 40800000 41e5bb17 -> 407cb7b2", + "3f0e9ff6 4056d16f 40207aa6 40a52c40 -> 3fbc773b", + "3f31b598 41b54785 40800000 41d364a7 -> 40019b6c", + "3f779272 00000000 00000000 415d888e -> 3f779272", + "3f747dac 00000000 3fa13f77 421b69d8 -> 400a1f3e", + "3f075c24 7149f2ca 3f3f27b0 41cdef3d -> 3f075c24", + "3f12ad0f 41ce0351 40800000 41de9c41 -> 3fc5ea74", + "3f4d9862 420aa65b 00000000 420716c1 -> 3f4d9862", + "3f1826d4 40baf7a2 401f10a5 40baf440 -> 3f919fbe", + "3f757de8 414baab5 00000000 41494335 -> 3f757de8", + "3f748c92 00000000 3ec6fd1b 418d4819 -> 3fa9cbea", + "3f0d4bb9 420db7a8 40484f6b 41e8b88d -> 3f71a18c", + "3f4ce9e2 405fedf5 400870b0 3fa03f85 -> 3f4d1737", + "3f342963 40c2bfca 3ce9f2da 40b48098 -> 3f35c49b", + "3f58c78b 7149f2ca 400c7a4e 41fc9e33 -> 3f58c78b", + "3f03c2be 7149f2ca 3fa7d20c 41e6f5a4 -> 3f03c2be", + "3f203f68 7149f2ca 40800000 40b40ec2 -> 3f203f68", + "3f677fc3 7149f2ca 00000000 40e4afcc -> 3f677fc3", + "3f467520 7149f2ca 3e28690b 41112632 -> 3f467520", + "3f4731b5 41a7e932 40367549 41b807fb -> 3fdf1a57", + "3f378263 7149f2ca 40800000 42020f48 -> 3f378263", + "3f16ce49 00000000 3fb23980 41f16dc1 -> 3fb46473", + "3f635736 42906cb2 00000000 421ea5a9 -> 3f635736", + "3f23f8f0 3e22a1f5 00000000 3da01ef0 -> 3f23f8f0", + "3f3e6cef 41a5d989 00000000 4187ac07 -> 3f3e6cef", + "3f04eb61 41fe6fbb 407ce5a8 41f2690e -> 3f99baf8", + "3f41eff6 00000000 3ebebf35 41ca3f93 -> 3f851838", + "3f3c5164 42971914 3f29ced1 41f57278 -> 3f3c9bc8", + "3f5866a0 42ae03d9 40249c4a 420dfc69 -> 3f59c4f1", + "3f2ff58c 413403d2 40655dd0 412a32e4 -> 3fbefe6b", + "3f5bbc1c 4161e001 00000000 4139d4ca -> 3f5bbc1c", + "3f6edbea 00000000 40800000 41d896e7 -> 40954972", + "3f4f37b4 00000000 40800000 41670cc4 -> 408182d0", + "3f1df2e2 00000000 40800000 421e6cc7 -> 40456f9a", + "3f79dbcc 42574ad2 00000000 42082f9f -> 3f79dbcc", + "3f725216 3f35023f 3ee9ebbc 3f3dc6b8 -> 3f8f72b4", + "3f1a459f 7149f2ca 00000000 419ac727 -> 3f1a459f", + "3f4b89ab 41e7399f 3ee13a04 41eb7fa8 -> 3f6daea3", + "3f4d757a 00000000 4053e8ec 410c7d70 -> 405d7022", + "3f534887 41e7882d 40272241 41a8d8d7 -> 3f93b95e", + "3f2f3b99 7149f2ca 407a13ad 3e59064c -> 3f2f3b99", + "3f742bcc 7149f2ca 406fcc70 4126a7f9 -> 3f742bcc", + "3f14921a 41eb954b 4013550e 41f69125 -> 3f8eec19", + "3f13539f 42d01f07 4019356d 421587f6 -> 3f137a90", + "3f24caa0 425c2cec 00000000 41ce2b83 -> 3f24caa0", + "3f3b0d9b 41660c95 3dc53971 415e855e -> 3f413d41", + "3f1d3bc8 412a9636 40800000 411bcaed -> 3fad6edf", + "3f575de0 418114e3 3f316b43 416b20e6 -> 3f82098b", + "3f2ee476 4186cfbd 3df2bcad 418fad93 -> 3f377cb4", + "3f6d3134 42ce72db 3e55ba0b 420a654f -> 3f6d32ef", + "3f27c6f5 7149f2ca 40800000 41d7265b -> 3f27c6f5", + "3f0c3ec4 4186733c 40800000 421b883a -> 40176864", + "3f30220c 00000000 00000000 41eedf5d -> 3f30220c", + "3f3f888b 424bc4d1 40800000 41c0638c -> 3f48276a", + "3f109d83 429e066d 3f3c8d74 41d77fe5 -> 3f10a283", + "3f0fdc01 7149f2ca 40800000 420ab716 -> 3f0fdc01", + "3f501e0e 4036d952 3f42ddf2 4200bc4a -> 3fb6a577", + "3f3ad083 420c7855 00000000 41426492 -> 3f3ad083", + "3f3d9aa6 42d934da 4033bfc5 421fe15e -> 3f3def6e", + "3f4997f4 40c70029 3f22833e 40c9dee1 -> 3f7a0559", + "3f700afe 7149f2ca 40800000 419f9a38 -> 3f700afe", + "3f38d38b 00000000 00000000 41e38608 -> 3f38d38b", + "3f5bb886 3fcbd455 3eee842d 41d27dfe -> 3fa0da1c", + "3f788146 4262d4b6 40800000 41c99841 -> 3f7ec958", + "3f563e4d 7149f2ca 00000000 41edbdee -> 3f563e4d", + "3f3db1cc 00000000 40800000 40a575b9 -> 406d1e3f", + "3f52a49c 425fa61f 4027f996 41cfab26 -> 3f57fc6f", + "3f4bcdcc 417147dd 40402622 41819962 -> 3fe68604", + "3f524bbc 4275b12c 3fa6de03 4205d85b -> 3f5bba4b", + "3f6c5d20 419b989e 3f9fd4d2 418dd2af -> 3fa27796", + "3f3b0ab3 40a650ed 40800000 40a927b8 -> 3febcbdc", + "3f51c566 00000000 3fac294c 41cdf7c8 -> 3ff5f52a", + "3f68a5aa 425bb0d1 3fba6110 419be8e9 -> 3f68c47e", + "3f7ff0ec 00000000 406a42b5 41e405be -> 40951891", + "3f1e0be2 00000000 40170d87 41e1eb68 -> 4004c455", + "3f65fc58 4164ef70 3ffe29c2 415f278e -> 3fc2b2b5", + "3f1d6270 4210ee84 00000000 417f2f9f -> 3f1d6270", + "3f79402e 00000000 404bf3c7 3fa61f16 -> 408271a5", + "3f7064a9 00000000 40800000 412469bf -> 40963eea", + "3f6675ba 4203f5df 40421a46 420a10b6 -> 3fff6868", + "3f35e971 7149f2ca 3fd9d2b3 417186dd -> 3f35e971", + "3f52e092 415a8919 40800000 41a0c990 -> 4039997a", + "3f08b4c4 40cfc3fb 3fabf26f 40dfc4b4 -> 3f564137", + "3f0eb571 7149f2ca 402e546d 3f944f72 -> 3f0eb571", + "3f398ea2 00000000 00000000 421a3f04 -> 3f398ea2", + "3f674a92 42176571 40800000 42113d1f -> 4007da3c", + "3f5914b7 00000000 00000000 4104aed5 -> 3f5914b7", + "3f2a793c 00000000 00000000 4186aea3 -> 3f2a793c", + "3f131952 41a8fc81 3f5d0060 41e2e35e -> 3f5c04f7", + "3f65b962 40a39e26 400ad01b 41f79b11 -> 4032a484", + "3f09e2ed 00000000 00000000 41a46707 -> 3f09e2ed", + "3f41bc54 41d1c9c8 4079cc16 41db80e7 -> 3ff88876", + "3f3877b6 00000000 3ffa0c86 4214b79f -> 400834e4", + "3f2adf98 7149f2ca 3f8a1059 40d9e9b3 -> 3f2adf98", + "3f22b812 40352a97 3fdd8c08 3fe5d401 -> 3f3a2cff", + "3f75d178 41c851c4 405a4162 41ef8403 -> 4025947b", + "3f7bdb24 40d194ef 00000000 40da9897 -> 3f7bdb24", + "3f5c70a1 00000000 00000000 403265ab -> 3f5c70a1", + "3f662fd0 7149f2ca 00000000 411385ab -> 3f662fd0", + "3f44c1dc 417909cf 401ab205 40e43b28 -> 3f48d207", + "3f6021a7 7149f2ca 40800000 41c2e787 -> 3f6021a7", + "3f550c69 41f4ab81 3fd420d8 4202cac9 -> 3fb4205d", + "3f735c23 4140acea 3d1277b6 4146a49e -> 3f76c1a7", + "3f19cd66 00000000 40800000 413203ad -> 404040c0", + "3f2b80f0 410579f7 40506c4f 410c24e7 -> 3fc67c83", + "3f241bc8 00000000 40800000 4153ffad -> 404d22ba", + "3f1f3a83 7149f2ca 3eb5e3ad 3f60c6e0 -> 3f1f3a83", + "3f653d35 4255a64c 40247178 41ac6251 -> 3f6680c2", + "3f00cd3d 4183a4bf 4036aa9e 4187e884 -> 3f885474", + "3f36d8b2 418daf29 40086af8 41ab1956 -> 3fbd95c3", + "3f0f6361 7149f2ca 00000000 41811a30 -> 3f0f6361", + "3f0eb0bc 420856d0 00000000 41be6940 -> 3f0eb0bc", + "3f6bb615 00000000 3e463691 417982be -> 3f8cab2d", + "3f5be679 4126a383 3fe6e81d 41279df6 -> 3fb7c588", + "3f199c94 41d80d39 406b442e 41cc0d9a -> 3fa8d497", + "3f7d5d1c 7149f2ca 3f8b894a 408238d9 -> 3f7d5d1c", + "3f6283b8 41c2c908 40800000 41b6a293 -> 4001414a", + "3f3a0d94 403509f5 407fce51 4039f36c -> 3fed2217", + "3f2ea0ae 00000000 40330b1e 41d88058 -> 4025ca1b", + "3f2b2a56 41440f0a 40800000 420b8d96 -> 4042179c", + "3f2a8eca 41c6e565 40067127 41279303 -> 3f2bd647", + "3f323db3 7149f2ca 3f1330d5 41016a09 -> 3f323db3", + "3f1b9ddd 42087618 00000000 4206ca18 -> 3f1b9ddd", + "3f491271 41b0d5e0 00000000 41b678d5 -> 3f491271", + "3f3025ca 41463f0b 404254e5 41b3e3f3 -> 400ebcbc", + "3f7a1b2c 40c19d70 402de243 410d2e7a -> 4028aef2", + "3f23cf27 7149f2ca 3e296a9f 41cda394 -> 3f23cf27", + "3f6d810e 40cc3789 3e5991b2 411d1271 -> 3f874984", + "3f1302d2 40955756 400b2407 401f3ecf -> 3f1c7db9", + "3f6217e5 7149f2ca 3f880504 4142117a -> 3f6217e5", + "3f620e21 00000000 3f83decf 41dfe58e -> 3fe5790b", + "3f5b4c92 428038eb 400e2fd9 4219057c -> 3f78ac8c", + "3f251c5b 41d78d14 3f32943d 420e25c6 -> 3f65ee39", + "3f6e7e42 41c6ec2b 40022c8b 411e968f -> 3f6f63cc", + "3f57f914 3ffe8050 402d1508 409e6298 -> 4032409b", + "3f701ae2 7149f2ca 403033d6 42143527 -> 3f701ae2", + "3f3d3d03 41c0c360 00000000 41c359ea -> 3f3d3d03", + "3f266922 7149f2ca 3fe40e14 41fa8a22 -> 3f266922", + "3f7cb04a 420f80e8 3e7824d0 415f1625 -> 3f7cc52e", + "3f36f7e7 00000000 00000000 3f0bf14a -> 3f36f7e7", + "3f3e1330 00000000 40800000 40d99ad0 -> 406d97fc", + "3f6f87f0 41a59150 40800000 4164fde7 -> 3fb2f48d", + "3f722328 7149f2ca 3f4cca9a 41da3474 -> 3f722328", + "3f625bda 4264a877 40800000 41cdd262 -> 3f68db74", + "3f481521 41906815 00000000 4203db9f -> 3f481521", + "3f5b48ca 41cd8cfc 401d92bb 41f80d94 -> 3ff57e37", + "3f5a7a3e 7149f2ca 3f848810 42123895 -> 3f5a7a3e", + "3f6c52a8 7149f2ca 402a4ad1 41865e5d -> 3f6c52a8", + "3f45668a 419d5407 3ea1ddfd 4140f8fc -> 3f49c56c", + "3f1de32f 3f11db52 00000000 41eeb5c7 -> 3f1de32f", + "3f6a0656 7149f2ca 40800000 41ee684d -> 3f6a0656", + "3f337734 00000000 4035c78e 421dd526 -> 402c4cfa", + "3f62449a 41ec4ae2 00000000 41645000 -> 3f62449a", + "3f1c9df7 00000000 3f3d4757 420f067d -> 3f88351e", + "3f55f406 4222cea6 4005f377 41b423a5 -> 3f6704b1", + "3f1ac95a 7149f2ca 3f6e46fb 41cca012 -> 3f1ac95a", + "3f0b5737 4189b6e4 3f2d2092 4147198d -> 3f193e36", + "3f56453e 418672ad 40800000 4180c570 -> 3ffb33aa", + "3f1eacab 7149f2ca 4024d1bb 41196435 -> 3f1eacab", + "3f63fc90 41095794 404df45d 41771d52 -> 403fac1f", + "3f28839c 41f7a83f 00000000 41fa94bc -> 3f28839c", + "3f6a0f51 00000000 40800000 4202e3b0 -> 40924993", + "3f6b4322 40e050f7 00000000 40ef000c -> 3f6b4322", + "3f415ba0 41841259 4029420b 411313d5 -> 3f55add2", + "3f3745c1 424654a8 3fadc526 4194d472 -> 3f377a23", + "3f26409f 4205cc3a 40800000 420cbb42 -> 3fd9c9b1", + "3f6f3f28 41f290f5 00000000 41f129d1 -> 3f6f3f28", + "3f230960 00000000 401575f5 3fc8bbcd -> 4007f1ec", + "3f38e9e0 416ea6ba 3e9005b6 416f362f -> 3f4c237a", + "3f30a69c 00000000 3fcb8d06 4200f91c -> 3fe4c8bc", + "3f6ce281 7149f2ca 40800000 4202f2d8 -> 3f6ce281", + "3f5ccaf4 4287a277 40703ba5 41e145f7 -> 3f5f4d2f", + "3f422077 4082e32d 4049bd5d 4072f9c2 -> 3fc0e88b", + "3f043c6b 7149f2ca 40125eda 420059dc -> 3f043c6b", + "3f3c1189 7149f2ca 00000000 4048ecb3 -> 3f3c1189", + "3f35e577 414f17b2 3e96b21c 418046af -> 3f51ccf7", + "3f1b2ec7 427166a2 3ee309ca 41af29ef -> 3f1b379e", + "3f1caf6c 00000000 00000000 40ee9633 -> 3f1caf6c", + "3f77f5d2 4269c952 40800000 420e00f5 -> 3f9cf676", + "3f76c96a 00000000 40800000 41c09e38 -> 409a3de2", + "3f5ed4c9 3d277e95 3fb1a8c4 3e527386 -> 400206e3", + "3f26d8f2 7149f2ca 40800000 4014fa90 -> 3f26d8f2", + "3f4602c2 408746ed 3f9b95f3 407aa0cc -> 3f8887d2", + "3f4eebb8 426b128f 3f9bc6c1 41c6a46a -> 3f4fd9b4", + "3f3748e3 40f247f0 00000000 40f9e51f -> 3f3748e3", + "3f7e4f42 422fd886 4041265f 41dc5185 -> 3f9d2cae", + "3f0a2f7e 00000000 3ff603ae 401a740d -> 3fc9e35f", + "3f7e58be 00000000 00000000 41b72368 -> 3f7e58be", + "3f63ea78 40a2b431 407d678e 4200ade4 -> 408a8255", + "3f4d739b 41159661 3f7e4fe7 411d574f -> 3f900e2c", + "3f3d33d4 7149f2ca 401344da 41c7c1d5 -> 3f3d33d4", + "3f34debb 7149f2ca 40800000 41017536 -> 3f34debb", + "3f65c71e 4203a0bb 40569f05 4207ea47 -> 4004da05", + "3f4c1e46 00000000 3fcaea62 41ab0774 -> 4003ecf4", + "3f381c84 7149f2ca 3faa17bf 41c79ef9 -> 3f381c84", + "3f0a3d14 00000000 3fe2eb9a 41d2766c -> 3fbfa7af", + "3f37babe 00000000 3fc36e9a 410a5949 -> 3fe81ffe", + "3f2f6c4c 7149f2ca 4019f755 41da7bdb -> 3f2f6c4c", + "3f5aee7d 4273f904 3fb6e244 420dabc4 -> 3f6b0ca4", + "3f553864 00000000 40360549 40b902a0 -> 404ce897", + "3f273ec7 7149f2ca 407b53af 41f87923 -> 3f273ec7", + "3f691280 00000000 00000000 41b8178c -> 3f691280", + "3f5129f0 40a5bb24 40800000 3feeb587 -> 3f5189bb", + "3f1c410e 40d7e67b 3ee6f631 4159cb50 -> 3f5362fb", + "3f5f1eee 3f00c1b9 40703bd9 40cfb902 -> 4083f409", + "3f553b13 4295e85e 3c8e9eca 420948c8 -> 3f554323", + "3f3331cf 41e78bd9 405a3af7 41ea6811 -> 3fccbfac", + "3f625896 00000000 00000000 40a63c80 -> 3f625896", + "3f612e44 7149f2ca 40800000 41f9dd64 -> 3f612e44", + "3f6fe7d4 7149f2ca 00000000 411ad53f -> 3f6fe7d4", + "3f6b203d 42cce4c5 40012a16 421c8649 -> 3f6ba06a", + "3f1326a8 3f8d399e 40378733 4107cbca -> 400c8375", + "3f7ef268 7149f2ca 00000000 4183183b -> 3f7ef268", + "3f61f409 4091bd89 407bd25c 40f8ff7a -> 40564826", + "3f324ac3 00000000 00000000 413010aa -> 3f324ac3", + "3f404692 4113c651 00000000 40cc836b -> 3f404692", + "3f65871d 425c6115 3f82fc7c 41ac18a9 -> 3f65dc50", + "3f2da5e4 418c5d34 40687d0e 411b6c9a -> 3f45ce4b", + "3f2e00b4 7149f2ca 00000000 41b512cf -> 3f2e00b4", + "3f4868f4 7149f2ca 40800000 4197b8f8 -> 3f4868f4", + "3f1b434d 00000000 4063fd4b 414eb3cc -> 40311720", + "3f56cf28 41d0de41 00000000 4197fe91 -> 3f56cf28", + "3f16ffe4 41af7196 00000000 41a388a3 -> 3f16ffe4", + "3f79cea6 410272c5 3f4b5a55 40f77546 -> 3f9d8ce5", + "3f344e25 3eddfb7f 00000000 3ed5b081 -> 3f344e25", + "3f57b643 42a91549 00000000 41e2f585 -> 3f57b643", + "3f34b289 7149f2ca 3f38596e 41859a3e -> 3f34b289", + "3f6454ec 4159b8bc 406cf8d2 4160ff05 -> 400bf206", + "3f4082d8 419e64cb 3ffc2685 41ff7219 -> 3fe158bb", + "3f04c657 41a3aafd 3fff5af5 4107aecc -> 3f058f88", + "3f6853fe 7149f2ca 40699a7b 41c4a949 -> 3f6853fe", + "3f7f18e4 41c37602 3ea00387 4200bc76 -> 3f95f32e" + ] + }, + { + "glsl": "float cultmath_lattice_distance(vec2, vec2, float, vec2, float)", + "tolerance": "ulp-bounded", + "cases": [ + "4218840c 41d66378 4208a0fc 41135e88 40214e09 3f54f18d 3f0e185d 40000000 -> 4291dbe9", + "c1e70e48 41875468 bfa1e3c0 414fed70 4093ed14 3f7fedee 3cc05c6d 3f800000 -> 4300f228", + "c1d88701 42415288 42273716 c1e92f44 409fe9f3 3e8f2ed4 3f75c92b 3f800000 -> 44018240", + "3fe8f420 c24192f5 418a18b4 c190b71e 406f5393 3f2bd051 bf3dc768 3f92f390 -> 4301b897", + "c1ce8a88 41445368 c0b64bd0 c245ff41 3fba260a 3f800000 00000000 40000000 -> 42d66cc2", + "c21f4ce1 421154cc c0ef7c08 c1fbe9c2 408fe6b8 bc98ca13 3f7ff49a 3fb92095 -> 43e9302c", + "420b8432 c24424bf c201c11a c244b314 3fd0b933 bf6db1c3 bebe2159 40000000 -> 43500122", + "422c4f6c 424311ae 41207898 420b77f2 402d7e53 3f7efbae 3db65bfd 3fb8d690 -> 4308ed96", + "41037f94 42382a3e c20f4df4 c24116ce 40725652 bd97387b bf7f4d1a 3fd65071 -> 441e2646", + "c241a5e0 c242c597 42392e04 414ffe88 4023300a bf62a529 3eee0f01 3fe1f6fc -> 43b0ba3f", + "422ef81c c1df9090 42443a20 412d9f04 403fa01d 3f800000 00000000 3ff5ec9e -> 42f03d17", + "3f3ba9c0 c2065cd8 411c377c 4130b954 3f880d5a bf4d8570 bf18a234 40000000 -> 429ddaeb", + "423f58a4 421bad6e c2017fe6 42049b00 3fe0e102 3f730bed 3ea0cd6c 40000000 -> 438a1045", + "421528b0 c12f9154 bff1f060 c19f606d 40394317 3c84c589 bf7ff764 3f9fda01 -> 42eb70b5", + "c0c9f1d0 c1ff8201 41930284 423d7824 4014f92e 3e2ea92e bf7c3fa3 3fe891f4 -> 43a26e90", + "c1aff82e 42362f0e c20a0a82 421c50da 409a8f72 bf77edad be7f1b90 3ff535ca -> 42ffe7e4", + "4201f232 c2382b1d 41632ae8 c1fc2016 405d0cdc 3edce7c0 3f66f244 3ff78771 -> 42abffd1", + "c1aa7760 c23f6f3a 423e117a c1351940 407805ea be86d037 3f76f75e 3f9b0f0a -> 4398afd5", + "4040b5e0 c2461f7f bfd92320 4159e2e0 4047b047 3f7f8506 bd7acf20 3fcd3a0d -> 434865d8", + "41c22940 c2226c3b 4240d7d8 c0e640f8 3fee023b 3f309945 bf3955a5 40000000 -> 42a0a558", + "4101000c c20202a0 c1c65c5f 401ad230 4010b5de 3f800000 00000000 3f82e782 -> 42db292c", + "4238f014 c1353b20 4230369e 421d4a3a 3fb64c6a bf41167c bf281629 40000000 -> 42d48aed", + "40f22198 421a67a6 c0304a50 c09d7d38 3facaeed 3f02ccdc 3f5c0fe2 40000000 -> 42e9280d", + "c14c405c 409f0e80 c1bb6a8f 419f6660 4080cd72 bf76da65 3e87a3cd 40000000 -> 42f79358", + "41b5e980 c1109a54 c212bc33 c15cf3e0 3f5b2c4b 3f800000 00000000 3fc58ca2 -> 429d3f4a", + "413fda1c bfc75060 421e896e c12ea118 403abfae 3f24b7d1 3f43f825 3fa75c45 -> 42b224aa", + "41b5255c 42477520 410417e0 c12bb888 408818b7 3f672665 bedc0d3d 3f800000 -> 43847131", + "4208a900 c172c448 c23dc7ae 40910a10 409cc383 3f36f1ce 3f3312cc 3f936fc1 -> 43d6e3c8", + "c00cde90 41cc0544 c0a1a100 42428bec 402effa2 3f800000 00000000 40000000 -> 42824bea", + "4206f7c0 c1aae2ee c09acc30 4240982e 3f0e43f2 3f800000 00000000 3ff0ca9a -> 425f6237", + "c210c121 c181eba2 c20bba65 421d5ac6 3fe4ec59 bf044c04 3f5b2a5f 3fa112cd -> 42ec9d99", + "c2370814 41ba2628 41d1be2c 4163cf88 3fc70be7 be06ab36 bf7dc6ca 3fa6078a -> 42e19c5a", + "c2024aee 4233fc4a c222a2fc c1d81281 3fd0cc88 3f800000 00000000 3f800000 -> 42ec649e", + "c218e52f c0982488 c203daf4 4203b4f6 3f0da256 bf7fff2e bba3ca8f 3fa497ad -> 41a98562", + "41923894 c1f0a5b6 41075d44 c04850c0 406f7fbf be1b63d9 bf7d090a 3f8e5164 -> 42e95b37", + "4237f1e0 c21865f2 c1f3f845 c23339bb 4045ca36 bf7be4e7 be36a97a 3f850926 -> 437687f7", + "c1704510 413044b4 c23c9bff 421ab0d6 40887ff0 3f6e5155 bebafbb0 3f800000 -> 4334d9df", + "4131fe8c c245da51 41cd8bfc c04dd670 3f233c27 bf73be82 3e9c859d 3f800000 -> 41f756c2", + "c1f572a9 4208b7d6 c021ba10 41a47440 3fc42e5e 3f7fc1dc 3d325474 3f8fb141 -> 425231b8", + "41c03618 420586cc c223a9e1 c22dab74 408e4236 bf6b07f5 becaf139 3fbb10ec -> 441a841f", + "c1d6bc39 419887c8 c1dbe4fa 420a6392 40779b87 3e01392d 3f7df412 3fb01e43 -> 42a465c8", + "401451d0 41f9d5cc 4240ecf0 c2447f6a 409938d6 bf1e200d bf4953a0 3f800000 -> 43dd908a", + "c22084a3 c00ac070 c08ae178 c217dc22 3f343036 3ea29245 3f72c091 3fb0f4c0 -> 421ae60f", + "41a83b48 c21d4cde 4223d794 409158c0 3f8a0eb5 3f800000 00000000 40000000 -> 427fb9a8", + "41519cd8 41971440 c1d5efca 421efc68 4003ffac bf7c4e36 be2d5721 3f800000 -> 42b98417", + "c217e6ec c23752e6 420b5af6 41ff2320 40226088 3f55623d 3f0d6eec 40000000 -> 4404629d", + "bf113bc0 c2138984 c1235d6c c12b1750 3fd335ce 3e6e01a0 bf78fd34 3f917862 -> 4251071e", + "c03c0440 c238a930 406ea410 40bbad60 404260fa 3ec78eeb 3f6bc11f 3f800000 -> 431f50f0", + "42032294 c18e763a 3f78fa40 c238503c 3f24b82b bf49e33d 3f1d6887 40000000 -> 41e59517", + "c247f536 c2468e24 3ff86600 c1babe75 4094dca2 3f800000 00000000 3f9c1195 -> 439f7866", + "c111b46c 4156cacc c126895c c1f50553 4081734d 3f629618 beee4857 3f800000 -> 4332486c", + "4216a35e c232136e c1a5468e 418eee64 4040406f bf358359 3f348634 3fe10064 -> 43e15e9b", + "c05d5f00 c215cb28 41dfdcf4 c21e27c1 402436b6 bf1a3cd8 bf4c51f8 3fcffb6e -> 42c594d2", + "c1c3a030 c1fdddde 41f2c518 42153a68 403dd0c8 3f3452e1 3f35b657 3f800000 -> 4382b69c", + "41d04948 421bb918 c1f26cc3 c2380143 40984b56 3f800000 00000000 3f93d323 -> 43fe97dc", + "c208899e 42344b68 c1693ef0 4081fdf8 401fc755 3f800000 00000000 40000000 -> 430d7c2d", + "c087daf8 c17669d8 c1976a4c c19c8ab3 3fa4e5d4 bf1ed5a2 3f48c47d 3fa61e06 -> 41a4fabd", + "c19013bc c21d802f 4219e6d2 c18919aa 409746b9 be02487e 3f7deb68 3f8f5b13 -> 43909404", + "418b1638 c1d6fe07 4107cbf0 3ff23600 3f842cfd 3e0f7bc0 3f7d7974 3ff1805b -> 425ac726", + "c2020ce8 c1265274 41550de4 41f96f00 4086f6e8 bf160d61 bf4f69d5 40000000 -> 44006332", + "417c8df0 41afd4ac c2090e83 420c3926 404888c0 3f800000 00000000 40000000 -> 439e2725", + "4195cd28 c23eb26a c1312064 42040338 3f0d09cc bf3bb5b2 bf2e126d 3fe9cb72 -> 425bbc84", + "c0415020 c1ae183d 412b54b8 41aa55a8 40972961 3f3331f5 3f36d348 3f800000 -> 43557766", + "c221d3f0 c23509b3 42405d24 c19975c9 402e340b 3e0f72de 3f7d79c4 3feff7d2 -> 43964ac5", + "c1aebe10 3f48a100 c232b6a1 40a32b88 3fedb01a bd682a8d 3f7f96a4 3f800000 -> 422c9e65", + "4199ebd8 c0dc7390 414b4e00 c0bbf300 402778c3 3f70f1bd 3eacfece 3f800000 -> 418a6ad5", + "41d7bb5c c165d81c 40cf7d70 c0e78790 403abb31 3f044ef2 3f5b289a 40000000 -> 42866b82", + "41a859a4 4016de10 41a4e344 c0aff828 403548a3 be44c7ae bf7b3a8b 3fb03ae3 -> 41f46024", + "41b7cbfc 413e039c c1b288f6 bf62e780 3fa0e9f7 3eb1fed9 3f700837 3fe033fa -> 429b09be", + "41ed37b4 c23aa9bb c23b0081 c1190524 4096309d 3f800000 00000000 3f9f842b -> 43efce6b", + "419b5928 c0f863c8 4083c9f0 40c78360 3f121017 3e32ec2c bf7c0fd5 3f9196c9 -> 414e1108", + "41d94ed4 41ab27c4 c20260bd c1d1e7b4 408c3f80 bf702b02 beb142b7 3fc4010e -> 43f9135f", + "c23d7cef c1b12d67 c1f98657 c1822612 3febd393 3f50fa7a bf13dd68 3fd349f1 -> 421e7d9c", + "c1791de4 c19b23c9 4112b7d0 422b434e 407cf4f4 3f7e9767 bdd68b74 3fbb5781 -> 4389b4f0", + "c2193e36 c1e7ada3 c2050a70 4124ed44 406f85d4 3f800000 00000000 3f800000 -> 43142bf3", + "42080218 c22b223e 40bc7da8 c203cbe6 3f8b2afc bed10fa1 3f69afbd 3fadc930 -> 421922e1", + "41726df0 c1c003bd 4233ba5e c165018c 3f8776a0 bec9aed6 bf6b4d4b 3f800000 -> 42049217", + "c222efce 4203f4e4 c1abfa2c 422fd558 408975f6 3f800000 00000000 40000000 -> 432bdb60", + "41ea3ad4 41e41508 3f5707c0 c1baded6 3f36da2a 3f71cb9d bea82db1 3f800000 -> 42290190", + "42303e36 c20eb086 c11ea8f4 c2114ea2 3fe8d339 beaf9880 3f70793c 3fd20e93 -> 42d5df2e", + "41f0b814 c219b90e 41afe234 c21d4c29 406d64fb 3e66e4bd 3f796846 3f800000 -> 41f1f377", + "c1ad9265 414ca6b4 bfa5bda0 c1a64d97 4079eb1a 3f7fbd66 bd389d4d 3f800000 -> 43196db9", + "c143a540 c1775d58 c20122b4 c1d6ad9c 3f5bbfe0 bf7efa6c bdb6cc50 3fb04d5d -> 41d112fb", + "41aca424 c1fd3b3c c1089f38 4196ce48 3fa99673 bf10f5e8 3f5300de 40000000 -> 431b93e4", + "c236f7ed 42046a80 c0241130 c22a15e6 3f5bb68e 3e9cddfc bf73b04e 3fec480e -> 4307e250", + "41d3a9e8 418e3f0c c022fbf0 c190f0fd 408f5ad8 3e866a80 bf77053a 3f800000 -> 434ec062", + "422626aa 42135cae c0b544d8 4210cafa 406fb8b4 bf651957 3ee4785d 3fe13313 -> 43900f90", + "41f77da0 c1d1ad5f c130b9f0 c2201c58 40874837 3dff44da bf7e00ed 3fffa9f1 -> 4344dac5", + "c22f19db c11a44c8 c19df0ae c1a1832e 403f4c53 3f305e7b bf398d98 3fbc5ee3 -> 42dd66af", + "41866588 42018b8c c2402dd9 42048e9c 407a09d4 3f800000 00000000 40000000 -> 43fd5765", + "41c625c0 c1df1259 42419630 c18ef0e8 3f46721c 3f800000 00000000 3ff12cdc -> 420d7e7d", + "42412a84 413cc52c 41ef0cd0 4183e294 408a527e 3f71fc3c 3ea7150f 3f800000 -> 42a43cbe", + "c1f9cea2 c21846c6 c08a4078 413ba0fc 3ff59ae4 bf4bae02 bf1b151d 3ffa34d5 -> 43468aef", + "411c270c 41c71010 c2059b8c c23315f5 3f546b60 3f38501e 3f31aa27 3f8d0ad9 -> 429509a1", + "c115af5c 422ab2bc c20bdf06 c2478fb3 4004fe9c 3e26fc88 3f7c92bd 3f8fc792 -> 435fec8b", + "c1cc6a44 41705518 41fed420 c1dfc45f 3ffd1f26 3f7fed05 bcc526c3 3fda0591 -> 435549ca", + "423adb98 c1ba781f c0d853c0 c2205de1 3f9f3342 3f204edb bf4797ca 3f85ed68 -> 428c49d1", + "422680c2 422c407a 408f0ac0 40efa000 409e6d39 3f5c7560 bf022183 3fc75eb0 -> 4385d05e", + "c2353830 41f38840 c1faaf3c 41d6e814 4024a91b 3f53ff6f bf0f809d 40000000 -> 428debe2", + "41ccc960 c1ad5054 c1445034 c0fe6cd0 3ff19278 bf506bcf 3f14a63d 3fc97fa0 -> 42ea18fa", + "41a6e90c 418dcd60 4198b440 c19a1bec 407b4d74 3f800000 00000000 3f800000 -> 43116875", + "c1a04f1c 415f515c c2088ff2 4187adbc 405e6813 3f800000 00000000 3fb823cb -> 428e88c7", + "41f89884 42472b8a 41e83098 c1b1dc4e 4031e086 3f5ae5b0 bf04bd89 3f800000 -> 43484335", + "c208571b 418cb83c c228cc17 c2112a82 404f1896 3f29eb0f bf3f7a5b 3fcba835 -> 43610786", + "c1afa6b0 c1d99140 41e787e8 423ef652 3fe47057 bed80118 bf681a39 40000000 -> 43a019f4", + "c21f4966 c21dcbd1 c1bfd97f 4221d7f8 3f6d4440 3f800000 00000000 3f82d208 -> 42972251", + "be7be000 c1c66254 c19b120e 421ffaac 3fb46bda bf2f612f 3f3a7d13 40000000 -> 432f5a6a", + "c2299581 c1567f08 41fde2d4 c19ecb48 40673155 3f800000 00000000 3f95cf8d -> 439d24ab", + "c13ee238 4194293c 42343bca c22d890d 4037466a 3f7781c3 be82c99a 40000000 -> 43d52b8d", + "41d2fc94 4102e34c c0ffa380 41952b5c 3f4a12ce bf66bcba 3eddc717 3fbe0389 -> 42274cf2", + "c0e445e8 c20f24e6 be899780 c228ac77 4017e54b beafcdf0 3f706f79 3f8e22a4 -> 41c1bcc8", + "bf2e70c0 41df1794 c231a2b2 41b06bfc 40161ef2 3e64b343 bf798899 3f800000 -> 42cef48c", + "4193ee74 419560d4 c19763a5 423ce970 40868ee4 3f1ad621 3f4bdde7 3fdb6953 -> 4345ea6a", + "c0fa5db0 c1ea70ae bfcda2a0 c2434dd0 3f454cb7 bf082dec bf58c645 3f8624f6 -> 4180e060", + "40da1710 41dc0520 c19e182d c1b8e1ea 3f9ee34b bf36e4fc 3f331fe4 3fc3de64 -> 429593a7", + "c17268b0 41d32a1c c16a40f8 c0cf68f0 408d4fb5 be5a3bd2 bf7a1e65 3feeebad -> 4384f971", + "c0a1ee88 c210bd30 41288cec bfedf340 3f020a16 3f714db3 3eaafb18 3fe08255 -> 41d8aab7", + "c20ea490 4151d83c bfed7e80 41aef7a0 4063a008 bf24050d 3f448ddc 40000000 -> 431a9250", + "420ee606 c10d2b18 c1065f48 400cb770 404b5813 3edc6250 3f671221 3ffda9b9 -> 4318a1a4", + "42357904 419b8780 4242a168 c1829d44 401bc432 bf6cc129 bec2c3ae 3f92d278 -> 42b136b4", + "c0b637f0 4229f3be c2254d84 41da9a94 40979af7 bf0700b3 bf59825c 3f8bc50f -> 4342e7e3", + "c092fbd0 c20cdb54 41876478 4107a440 40371a08 3f4fab7b bf15b278 3fe3b6ee -> 430f7138", + "422f59f0 c1ec1e44 c1d66859 420dc7dc 4045e6b5 3ed67732 bf687578 3f800000 -> 43945fe6", + "418b1ca4 c143fb68 41f55428 c1eedf89 40860f17 be4f6c00 bf7ab16c 3fb41876 -> 42dcb882", + "c136992c 41993670 421dffe6 c2266742 4027610a 3f800000 00000000 3f800000 -> 434f4d1d", + "41e27824 c0d40888 416a1630 c00e0860 400a3eb1 bf7ecc92 bdc62375 3f800000 -> 41f8552e", + "41b2922c c1d473e5 c12ee5a0 c1d2001c 408cd97e 3ef75a98 3f602491 3f9dcc68 -> 431ab6db", + "c1daa2af c0f5f5f8 41d49cb0 40f85b58 4056a751 3e8796b6 3f76dc32 3fc47149 -> 435be0cd", + "c215174e 42456404 c21ad1ae c04acd60 40668e51 3f2d66a7 bf3c546c 3f91c3a1 -> 434b2ea3", + "c2379f5c c144efa4 c238c386 3ed3ce00 3fb8ccf2 bf7f6d46 bd88f7bb 3fa45378 -> 419312ab", + "c2360129 4184b528 420be43c 3ff17960 402b7110 bf2131e6 3f46e09a 3f800000 -> 435b23cb", + "c1a17063 c1c298dd c1eb9eb0 41ef9ee4 4080035b 3f800000 00000000 3fa4f4a8 -> 435e54c7", + "c237cb34 c090b478 c2180f8e c1c41429 403cf60b 3f29773d bf3fe0e4 3f800000 -> 427df89f", + "42296b20 c1625158 40852cf8 bead3b00 4070198f 3f3aa840 bf2f333b 3f800000 -> 43185b84", + "420160f0 4232b67a 416c8288 413fde30 4059367a 3e695352 3f79440d 3fc4cf38 -> 433dd145", + "c1e60a16 40f09310 410bf974 bfc95320 3fd787fa bf7ffaaf 3c50ad30 3fb34a99 -> 42b3cb9f", + "4221732e 420b8104 4208b206 bac68000 40812978 bf7f4cbf bd975eed 3f95a898 -> 43109149", + "4146259c c0c40640 40d3ac00 c22615cb 408a5006 bf7067e7 3eaff754 3f9187a8 -> 431bcf07", + "c1dd2b16 c10e50b4 c1242294 4236b906 3fa346ca bf52649d bf11d854 3ff58cc8 -> 42ef549b", + "bfabeea0 c0c25230 c221cf35 c23c100c 3ffe036c 3f800000 00000000 3fea4a1e -> 4323a735", + "419cab10 c18d3b06 c207a045 c1ed1339 3fa4dc26 3f800000 00000000 3fe14fa9 -> 42f47e80", + "c22250d0 4205d39c c214ef40 41b4a114 409eb4ad 3f5e63fb 3efd9a03 40000000 -> 42715813", + "c22f2796 41d96f00 4232ba26 418d1fb8 3f84ffc7 3e31330c 3f7c234e 3ff8ba8a -> 42ba0c2a", + "c217759a c23768dd 411665d0 c21c74f0 3ff671f3 3f800000 00000000 3ffaa7ca -> 4332aca2", + "4151895c 41cdf06c c2400bee c1d33dab 3ff5680f 3f77b92e 3e812345 3fc87684 -> 43633533", + "407f81f0 c21e28ec bee38e80 c1e26f95 40814d78 bf5304dc bf10f018 3fa7a503 -> 4246b622", + "c1b61186 40b62330 c22676ed 40f35828 409b5bc2 bf6bd912 3ec71d97 3f800000 -> 42b80b74", + "423872ea c1905d4b 41b7b8dc 42422420 403521f2 3f76da40 3e87a4e1 40000000 -> 4348d08d", + "4179eca0 418e2768 42066584 422952dc 4086f7bb 3f5aa02d 3f052fe7 3f800000 -> 430061f3", + "c2359c7f 40faadf8 3f6ae340 c06ec8a0 40923bab bf76a61c 3e891e36 3fbefb94 -> 43a2baf9", + "41d68874 41e6fdc8 41c9e960 42440758 405efff0 3f800000 00000000 3f909203 -> 428cda17", + "c169e380 c1b301a6 c2186129 4163d0d0 408208aa be60f356 bf79bf1d 3f800000 -> 4330be03", + "40c26868 c21c58f5 4120b2d8 c06a5a30 400800fd bf74d7e5 3e958099 40000000 -> 429efcc2", + "c226672c 4228b7d0 c0643e40 c227b7cc 40793355 3ecd0113 bf6a9553 40000000 -> 4433b414", + "c1329d70 c190dddf 41123968 c11c2b30 405fd881 3f800000 00000000 3fa1b017 -> 42bca94f", + "c21ec9a9 c22a158f 41a6eb80 420bddfc 3fd25826 3f800000 00000000 3fe74e34 -> 435c5c38", + "c17a2b70 c20dcaa8 40b6d428 c1c0f90b 407d478a 3f3473f4 3f35957f 3f800000 -> 42bf48ed", + "41c11e6c c1c7ab81 c1711f94 c1bc0ffe 3feb2042 3f74bb33 be963c18 3ff3fa68 -> 43060788", + "c11a57a0 c2126e3a c212c484 422f59ca 4090d354 3e763cf2 3f787d00 40000000 -> 4429ff94", + "41aa06e0 c2138faa 4097f5e8 c1d48a4f 40604e08 3f54107b 3f0f676a 3fc6eb20 -> 42977bd7", + "4227bfa0 c242054f c2463d32 41400e04 40097fa5 bf0797a2 3f592466 3fdb4644 -> 43be097d", + "421454ea c20e658e 4086e318 41f4bfe4 408c55d8 3f7fa1bc 3d5b9cc1 3fa2f4f4 -> 43a9c268", + "417298f8 c1fd2aa3 c0a320d8 c233a504 3f59c92f 3f06e19b 3f5995a6 3ffeebe3 -> 4218c5ff", + "c09a61b8 42338178 41896758 c22a87d6 40934438 be7698b9 3f787750 40000000 -> 444fa07a", + "404cef00 c148538c 41e2cd30 41d61650 3f87bcb0 3f71c78e 3ea84505 3fa55f8c -> 426b36b9", + "42026d5e c2433da1 4222a380 c1b9dfcc 400f1cc4 3f800000 00000000 3fcddeec -> 4280367b", + "41670100 c0a42260 c1bcc09e 421364a2 4096ede7 3db21061 bf7f07d2 40000000 -> 43e3a2bd", + "40b5b390 4236f388 c224ae5f c1f07560 409a2207 be5b039b bf7a137b 3f800000 -> 43d697fb", + "40e4ad20 414f74b8 c221bb0c c22d2feb 3fc100f2 3f578868 3f0a22da 40000000 -> 4356dc28", + "c1d883cd c042bac0 c06f1b30 c1ee17fd 40000a36 3f800000 00000000 40000000 -> 42d7213c", + "40cdc808 c111ba80 c1fcd428 c19009c1 4019f77c 3ecdff89 3f6a5d91 3fa0d46a -> 42ce9c1f", + "41622e30 40d8d680 c22a0ebd c2357daf 40532a92 bf53b8cf bf0fe8bc 40000000 -> 43fc0050", + "4193bcbc 419cf4ec 41cceae0 41868ba8 40780bba bf17a13c bf4e434f 3f800000 -> 41ee073f", + "4233d7be 415e9a28 c05069b0 c1c58e54 3fb5242b 3f800000 00000000 40000000 -> 43130037", + "c1ffae86 42312d84 c1281498 41916ee4 4070f2d8 3e87f443 bf76cf54 40000000 -> 436e2bd1", + "c0caf828 41976d38 410429c4 4237ba2c 3f581272 3f800000 00000000 3f800000 -> 41cf49c0", + "c220039a 416e1498 bf9ad900 41f572d0 3fca13c7 bde96e8e 3f7e54e7 3fdd179a -> 428d7278", + "421aa01c c14f7278 41e37ed4 c214f82e 4014f0fb bf7fcc48 bd22b1e2 40000000 -> 4298247e", + "41905928 42125994 418f541c c1c4ac27 3f3db512 3eea3910 3f63a45e 3f800000 -> 423552da", + "c1d6b650 c22fa654 40823cf8 c208cee8 3fbf4444 bf372b6d 3f32d7db 3fdc5a12 -> 42685b04", + "c21ea349 c20e690d 4219e98c 410c2d14 4097753e 3f800000 00000000 3fc34c81 -> 441684f3", + "420794bc 404a6a00 c15a3ee8 4222d426 3f232a6c bf6bf7f6 3ec68afb 40000000 -> 42963f09", + "c11c4fc4 422b3c7a 40d42d00 418af954 40703dfb bf7ee0d3 bdbf83cf 3fb2b0a8 -> 42f91245", + "c244c1c7 c0ae9148 42201f54 c2128afb 405fb26d 3f2a9ee2 bf3eda30 3f800000 -> 43a52bd3", + "c22b9c5d 41a3b104 c197c2ff c222deb0 40953a5e bebfb5a0 bf6d6087 3ff0acd2 -> 43ea5723", + "c1c72483 c1fc4b00 41fb8aa8 c1ef21ff 403d3d56 3d3fee95 3f7fb803 3fc4db88 -> 43274db0", + "c21e7c78 c227bbc8 420cd268 c13f73b0 3fe00e01 3eb286db bf6feef5 3fa3ba41 -> 430d1ed6", + "c2328b6b c1c2c75e c202aa31 42091558 404fff58 3f70ecad bead1b02 3ffedec6 -> 43483e38", + "c0936308 c19d7289 c0127d90 419470dc 3fd9448e 3f800000 00000000 3f83c35a -> 42820e6a", + "c1b74ac9 41f59e70 421fca6e c2228d4f 4075178e 3f7f763d 3d84b8e0 3fe0a51a -> 43f2aec0", + "c23cb659 4198811c c0ea6d50 c157b264 404a1262 3f0a1893 bf578efe 3fb33134 -> 435df931", + "c115023c c1589f1c c1129e60 40eb4d10 400fbb8d 3f7fb997 bd3dd1e8 40000000 -> 423c1da4", + "400b2690 41f19bc8 c102d398 41fba938 408935a9 3f800000 00000000 3ff84b50 -> 42ac85f0", + "c1d6de8c c215c7c6 c2235243 423801e4 4034c9a2 3eacbd63 3f70fd79 3f800000 -> 436f00af", + "c2172fe0 41caa420 41244090 c2247fc8 406d3f44 befe1ca9 3f5e3eaf 3f836541 -> 439bffcf", + "412585e0 42003362 c1eaaabf c1fecb61 408f2420 bf7ec905 3dc746dc 3f800000 -> 43a83a55", + "41f01568 c190d93e 412c7568 c1d79e75 404895a0 3d1f4d3a bf7fce6b 40000000 -> 429f2342", + "c1616b00 4212d43e c20821db c1aac0e7 40903205 3ec6f1ac 3f6be256 3f966a52 -> 43a2695a", + "422b8518 c1720518 c20225fc 420c6b22 408481e0 3f7adb79 3e4c383e 3fae436f -> 43dfe530", + "c1486fa4 c08c3bf0 c2449328 c1726ae8 400a6000 bed2c21d 3f694e17 3f9e8002 -> 42a5e061", + "42020cbe 41b98870 c0bc45c8 422e37fa 3fd48cee be8c8d55 3f762a47 3f81c17d -> 42914b64", + "413bddd4 c1b46330 41ba5d40 41aa9098 40818cfc 3f077b78 bf5935f9 40000000 -> 438e933e", + "c0a428b8 c20f517b 42339f90 3f7c6e40 3fe73158 3df12d10 3f7e37fe 3fe9e7f8 -> 43224e0c", + "c199d29d c2056099 c243c005 be69fe00 408c9e7f 3cb7d8b5 3f7fef7f 3f8f723d -> 4350611c", + "c20bde70 4217b06e 42281b74 42454d1e 3f68a509 bf1f97e9 bf482a30 3f800000 -> 428d7744", + "41a7a04c c22f2830 40207bb0 4109e39c 3fc1941d bf03845e 3f5ba267 3fd99d0a -> 430cf8d9", + "3e4ad500 41d5f800 3ec57600 405f1980 402bd215 bf6cf054 3ec1ddb9 3fec3b42 -> 42919535", + "4046a3e0 41c5a920 c17b51e8 c2181e8e 4015d280 bf155861 bf4fec4e 3f800000 -> 43195396", + "4198ea7c 4121f510 4205a7c8 c1636b58 40840a48 3f5813b4 3f094890 3f8a5a7b -> 42e8f5c8", + "41b68dc8 c0f5fcd8 405cc180 c226e57f 4071c4a4 3f800000 00000000 3fc4b8fc -> 432ad1e4", + "c20fa4a2 c115f99c 3fb81440 4138bfe8 40116544 3ecf6296 3f6a0f3c 3f800000 -> 42c281bf", + "c1f7bacb c21af560 4100a52c c19fa86e 409bf8bd 3f800000 00000000 3fe704c0 -> 43b1920f", + "41c5a3e4 c1db616d 41a64314 bf9d7f20 40687d7b 3f7ef3ca bdb918a9 3f800000 -> 42c06a7d", + "422911ae 40cd7ba0 41245f90 c0a58210 3f158f0f 3d15a8fc bf7fd43d 3ff96b80 -> 41b2acdc", + "4233ad10 c212b6e7 c1c341fe c05d5380 3feb4eef 3f800000 00000000 40000000 -> 43830d79", + "420085cc 4230b0f4 c24418e1 c1d2d36d 4079c6b0 befbc5d5 3f5ee8d1 3f8020d5 -> 43d1d0d8", + "42372424 c1c9a9b4 404dcd40 c0b0d038 405b5451 bf6c888a 3ec3d61e 3ffd9b9c -> 439f2057", + "c0ba9170 c16e9880 c165839c c20359bc 409946ab 3f6b0972 3ecaea55 3fac61aa -> 42e5b5c6", + "420cf3f0 40bfd218 418eed50 c0a12700 4090baba bf5d874b 3f004d09 3f800000 -> 42ba24aa", + "3f479940 422dfa0c 41a9b348 c20565d5 3f88f7d0 3f800000 00000000 3ff79e05 -> 42b8efcb", + "c1eed817 4226699c 420ed6ae 3ee38b80 402b0946 3f3f14b8 bf2a5d53 3f800000 -> 434ee1f6", + "c1358d3c c232a67a 41671e08 416f7e20 409e5532 3eb94547 3f6ea6df 3ffe176a -> 441f7298", + "c2088772 c1bffb2d 404ab280 c22e70c4 400a139b bf55406e bf0da1e1 3fcae637 -> 42d3235e", + "41bca97c 41ba69b4 c1ffd1ec c193fc8d 40266db2 bf72d2a0 3ea22644 3fc74dba -> 435a61cb", + "c2325e68 3feb6740 c1509ca8 c151cdd0 408f4c29 3f800000 00000000 3fc00dbc -> 435e54a6", + "c233b8ba c1ac2370 3ff7fee0 c17d6228 400f6860 bf5190be bf130823 3f83d950 -> 42d889b9", + "3f12b9c0 c210fb47 4098abf0 c1129614 4079650c bf69c355 3ed0b7f0 3f9ff201 -> 42d9b50e", + "c2184c88 41f3e444 c22b6508 410a92e0 4082d6b6 3dd81b12 bf7e921f 3f800000 -> 42b6b258", + "c1b7072b c1e40c12 c1e392d3 41e7d808 400c4ab2 bf7ecaf7 bdc6a755 3f800000 -> 42fd34e3", + "419f1fd8 c0dc70c0 c238ed13 c1294ae0 4003b370 3f800000 00000000 3fb5961c -> 43412e5e", + "414d9538 4136e764 4235156e 41691c78 407be6e0 bc97c2c1 bf7ff4c1 3fcc7718 -> 430182f1", + "c21e6667 c0fb0508 c0b4ece8 c1c56fa1 407d93bb bf4c6fd0 bf1a1547 3fbd32fd -> 43270815", + "c1e169f9 c18b33d8 422e4082 42156c84 4044927a be51a124 3f7a9409 3f800000 -> 438a98cc", + "c1836df8 411a1f98 4183b3ec 41da7480 3f4299d1 3f7e74c4 bde0954d 3f8728f4 -> 41ebc350", + "421aca04 41439804 c20fedc3 4148d534 4022004c be982aa9 3f746ec3 40000000 -> 43553ddb", + "c2339618 c0942cc0 423e12b6 c0adc220 405e9552 3f800000 00000000 3fba642a -> 43ea045f", + "403870d0 c0a80830 41f48f90 41b30f4c 3f41bb26 3f800000 00000000 40000000 -> 423b56b6", + "c1ba5631 c210962f c207c687 41a40a2c 3f353506 bf2d1e64 bf3c96da 3fda92fe -> 425404e3", + "4218f4f0 41807434 c21c9271 bf7d8540 407cd98d 3f36af04 3f3356ef 3f800000 -> 439c8676", + "c219e678 422c9750 c1e0fd63 c2422d52 404fbf8a be6a50ea bf79352f 40000000 -> 440f42c5", + "40399060 420c36f0 c2382b58 c017cb90 408781f9 beeb6749 bf635661 3fc570b8 -> 43be5581", + "c176f0f0 42269078 c12f94a0 41c8e7dc 3f059596 3f7f89e2 bd75ce7c 3fdf3440 -> 411cfbf7", + "41df7c04 c2224749 c2394013 41c0602c 407b7334 bef71fd3 3f6034c6 40000000 -> 443896a6", + "41a042a4 c22f6797 41623c30 c2210ce8 404ad116 bdca8b58 bf7ebeb6 3ff88d32 -> 41d7a18a", + "3fdc1000 c1b59af3 40bb8a58 40f5cfe0 3f3c7436 be953fc5 3f74e1c9 3f800000 -> 41b494df", + "c153d970 4239b5bc 422cfd5a c159699c 40956f4b bef64eb5 bf606e45 3f82f38c -> 43c0de04", + "421dd80e 41c5b8bc bfe26ea0 41f1a054 407ce680 3f43ce39 bf24e9a4 40000000 -> 43917510", + "421b3e08 c1a7e7e5 41eec038 c18976f0 405a2a61 3f800000 00000000 3f800000 -> 4204d15f", + "bf9e0380 c2312195 41feb6ec 41fca0f8 40715746 3c832697 bf7ff79a 3fcb56c0 -> 43eaaf97", + "41bf232c c155604c 42384bd4 c048de70 4046600d bf637ed9 3eeacab4 40000000 -> 42dd4a6a", + "4217e552 419ecd90 409fc2f8 c2085f8a 4007d3ff 3e17e45b bf7d2b04 3f800000 -> 4306302f", + "c2064058 c13ffd4c c09f5890 c1f61c63 400c799a 3f800000 00000000 3fc0352c -> 42cda31a", + "41dc6d00 c0c347b0 420491f0 41ff54ec 4013bb7c bf3ffabd bf2959f5 3f800000 -> 42b16807", + "c23cc33a 41c7bae4 c20a78be 412a86e8 3ff2cc6b 3efd06e5 3f5e8ddc 3fca820e -> 421bb120", + "41d555c0 c23261db c22c3ca2 410fb588 3fc35e64 bf7ea36c bdd2f2f9 40000000 -> 4357a004", + "c194ab57 40c80550 c23654b1 c1819416 3f1fc4ee bda0f733 bf7f3544 40000000 -> 42097fae" + ] + }, + { + "glsl": "float cultmath_lattice_smooth_step(float, float, float, float)", + "tolerance": "ulp-bounded", + "cases": [ + "40c5238e 40c6bf1a 40c50e44 3bfe6c0c -> 40c5238e", + "4098f6f7 40a039ec 4098ecd3 3b2e761f -> 4098f6f7", + "40960ea4 40b20934 40823fc7 3f39909c -> 40960ea4", + "410e873c 4122b260 410ae28f 3f538fa2 -> 410e873c", + "40e20722 40fe6d61 40e07aa2 3f0d4f03 -> 40e20722", + "4076247a 40936e36 4063df84 3e92701b -> 4076247a", + "40a5a053 40b7a7b7 40a2a437 3ea81bff -> 40a5a053", + "4040ce90 40ad48d9 4038d15a 3f800000 -> 4040ce90", + "409e3e4b 409f852c 409de7a2 3ccec516 -> 409e3e4b", + "40a8d2b2 40b05c4a 40a44745 3e41504c -> 40a8d2b2", + "408125ed 40855604 4059c51f 3f800000 -> 4080e8d9", + "407ee87a 40c842b4 4079bb52 3f3e11d2 -> 407ee87a", + "4082e243 4095462c 4082ddff 3ac57122 -> 4082e243", + "40f0a2a9 4104bf2b 40e91485 3f0b903e -> 40f0a2a9", + "40ddd6a1 40e1c265 40db8d84 3ddacb43 -> 40ddd6a1", + "410836e5 410b6766 4106d43f 3ddb9ab8 -> 410836e5", + "40e5a65c 4104fa0d 40c9b228 3f800000 -> 40e5a65c", + "40bf567d 40bfca3f 40bf45af 3c14e242 -> 40bf567d", + "40576b3c 4070005f 40546e0e 3dbfca5c -> 40576b3c", + "4096a166 40a5e84d 4089f2cd 3edfabfe -> 4096a166", + "41179132 411da29f 41178a11 3b1e1254 -> 41179132", + "410a4648 41291892 4107fda6 3f800000 -> 410a4648", + "41181a6f 4128cb90 4116e90a 3f0f142f -> 41181a6f", + "408c1a50 409cd275 40873dec 3eabab63 -> 408c1a50", + "40842cf0 409fa919 4061eb5b 3f3acdae -> 40842cf0", + "411180c5 411c37d2 410b2e95 3f1a7f90 -> 411180c5", + "3f777fe5 3ff01510 3f777994 3b99168e -> 3f777fe5", + "40ce05a8 40f6089e 40b6089e 3f800000 -> 40ce05a8", + "409aa29d 40b7ec53 409a901a 3c08c454 -> 409aa29d", + "3f83a956 3f844795 3f8351b1 3b75e444 -> 3f83a956", + "403699c9 40374cee 4036494c 3c01d11b -> 403699c9", + "409eaa19 409eaa3a 409e69b0 3c14e758 -> 409e980b", + "40492428 40b0a7c4 4028e1a2 3f7288e8 -> 40492428", + "402b6c29 4050d12a 401d3f70 3ea13623 -> 402b6c29", + "410f0927 4129c7ff 410b32ca 3f6955d7 -> 410f0927", + "4109e1f8 410b34e5 4109cb04 3bc7215f -> 4109e1f8", + "40813b37 40aea868 4073f91b 3f50508c -> 40813b37", + "41018662 411f20c4 40fe0df2 3f800000 -> 41018662", + "407ced65 4097b3d0 406b0862 3f04b9f3 -> 407ced65", + "411095a8 41095702 4106ac7b 3f43df9c -> 4109c3a9", + "3f7dba59 3f9cfe0f 3f7db21a 3bfdf6d3 -> 3f7dba59", + "3fef1587 3ff20833 3fee7a04 3c638ba1 -> 3fef1587", + "3fd8d28f 3ff2d660 3fc1124e 3e446547 -> 3fd8d28f", + "406f1eb2 40aa27ee 406016b8 3f341820 -> 406f1eb2", + "411ea8bc 412e3d8d 411e10af 3f0ec6d2 -> 411ea8bc", + "3efa9e03 3ef809b0 3ef69e40 3ddf51c5 -> 3eeec589", + "405331ac 4095876d 404001b1 3f134f1b -> 405331ac", + "40b88a82 40e8037a 40a9ed62 3f785861 -> 40b88a82", + "40df659f 410d2ffd 40da5ffa 3f800000 -> 40df659f", + "3fe1e762 402c702e 3fde1255 3d5ce99c -> 3fe1e762", + "408f3a98 409f869b 4087fcc0 3ebc4ed9 -> 408f3a98", + "40a1bdb3 40b30b16 40980702 3f70206f -> 40a2efa2", + "3fbad23e 3f7de5f4 3f4ac582 3f800000 -> 3f84cc3f", + "41108627 4123237f 4104a90a 3f6c7044 -> 41108627", + "4110be86 4121cdde 410f68f9 3dbbbea0 -> 4110be86", + "410c7c67 410e6988 410bf2a7 3d8557d7 -> 410c7c67", + "40109f5b 407906fa 40063ad6 3f800000 -> 40109f5b", + "40a11b4b 40dbd4e5 409e4eba 3f182fcb -> 40a11b4b", + "3f8715aa 400c4b6c 3f7a4d27 3f1b7044 -> 3f8715aa", + "4051bdeb 4076de26 40206ef5 3f800000 -> 405459fe", + "4082ecba 40a1e94d 405b2d2c 3f4c3189 -> 4082ecba", + "40c1da6c 40db2367 40b2ed1a 3f800000 -> 40c26444", + "40cd6b22 410328a6 40b40fab 3f800000 -> 40cd6b22", + "3f9417a3 3fb99c91 3f93ea2d 3c00839c -> 3f9417a3", + "412adb42 413bb935 411dc576 3f6f9df5 -> 412adb42", + "41235978 4142bf25 411aacb0 3f4a4d48 -> 41235978", + "4088d3b8 4094a2a2 408486f5 3f018267 -> 40891c9d", + "411bdda5 412560de 4115b0d0 3f112774 -> 411bdda5", + "40253e07 402a94df 40242a9f 3d4d47f8 -> 40253e07", + "40fda622 410aab4b 40f6baf3 3efd9db5 -> 40fda622", + "40a11065 40c35e11 40824618 3f800000 -> 40a11065", + "410d46b7 41154a8e 410d3b0b 3c021362 -> 410d46b7", + "4093278d 40a29431 408da924 3eb1a41b -> 4093278d", + "4062dd79 40620147 4062cf6e 3b5c8b16 -> 40620147", + "3f99abc6 402051ee 3f3f721e 3f800000 -> 3f99abc6", + "3fff7784 3ffff4c3 3fff6456 3b106ce3 -> 3fff7784", + "407cbd85 40a1ef63 4043dec6 3f800000 -> 407cbd85", + "408b8875 40abf777 4062a606 3f6a91d0 -> 408b8875", + "40a7a2e0 40ae53b4 40a1fb11 3e458a28 -> 40a7a2e0", + "40c8b2e8 40dbab83 40c7b76b 3dadb5d8 -> 40c8b2e8", + "3f1a287b 3f5197a2 3eb9120e 3f800000 -> 3f1ea619", + "40ceb97d 40de7055 40c749ae 3eb3fa29 -> 40ceb97d", + "40b058bb 40af4879 40b054af 3b711460 -> 40af4879", + "404e6c36 405a905d 404e631d 3a8facc5 -> 404e6c36", + "40c6b957 40deb2b4 40c4b56a 3da243cd -> 40c6b957", + "3fb12c88 4005dfa7 3fb10ed1 3bd502f0 -> 3fb12c88", + "40a13122 40c68291 4088503f 3f800000 -> 40a13122", + "4107707f 411ee37a 41076623 3f3beab8 -> 4107707f", + "40ddd6b2 40f5510a 40d7517d 3e5dadec -> 40ddd6b2", + "4028308a 408392ab 4006cdac 3f7c21f6 -> 4028308a", + "40c85dba 40dcff0e 40c851e9 3ae460ee -> 40c85dba", + "40a7e690 40bc31e8 40a74bf3 3d3bd8ac -> 40a7e690", + "3fcf27c2 3fecbd19 3fce7182 3bf259dd -> 3fcf27c2", + "40678676 40ae2955 405be7c6 3f800000 -> 40678676", + "3f309621 3f7b276e 3f1bcddf 3e3eb31e -> 3f309621", + "4091ddd2 409200e3 4091d9db 3b1c1fe8 -> 4091ddd2", + "41103c76 411246e2 410e7df6 3df23ae8 -> 41103c76", + "4117c4e8 412dc177 4110d054 3f67891a -> 4117c4e8", + "4027929c 40299219 40273fa2 3bd4c5c1 -> 4027929c", + "409943ed 40c36078 4092c287 3f4105bb -> 409943ed", + "40345ff2 40755452 400cb504 3f66e41c -> 40345ff2", + "407f0c4c 40ab67fa 406c4c64 3f550720 -> 407f0c4c", + "40c07dab 40c11918 40c069e8 3bfdabbf -> 40c07dab", + "408d09ff 409e50a4 408c533c 3e8feb3e -> 408d09ff", + "411b0b06 411adb69 4112ab64 3f4c3df7 -> 411a0210", + "411f8fff 412967c1 411f8baa 3b97586a -> 411f8fff", + "410060ef 4100a426 410052fe 3c225042 -> 410060ef", + "407315fa 4073a652 40730fa2 3b96afdf -> 407315fa", + "40cdef82 40ce0e00 40cdec0d 3ac19e8e -> 40cdef82", + "3e255061 3fa5c88c 3cafac30 3f2309db -> 3e255061", + "40970a93 40de3aac 4087b45a 3f7a5d4d -> 40970a93", + "411d94d1 41299c53 411abe05 3eede4e5 -> 411d94d1", + "40215404 40635a10 401f0d84 3f065d0b -> 40215404", + "3ee2c640 3fbdff1b 3ec5ff4c 3d893467 -> 3ee2c640", + "3ea4e56c 3f260b3c 3e7df6ec 3f5d7253 -> 3eb590b4", + "411ee2f2 412518e7 411ae243 3ebd9a75 -> 411ee2f2", + "40902ea4 40b8ae3f 4071e347 3f800000 -> 40902ea4", + "3fee6290 407bcb04 3fb8b068 3f6bdd78 -> 3fee6290", + "3fbcea8c 403bfb7f 3f6fedfd 3f800000 -> 3fbcea8c", + "41172715 4117351c 411721c3 3b1acb1e -> 41172715", + "410f5ae0 41204b33 410ddb59 3e16f558 -> 410f5ae0", + "3dd3f73c 3f473510 3d4c244b 3ec280ac -> 3dd3f73c", + "402e3b9b 40769446 402c45ef 3f13c66a -> 402e3b9b", + "40eff1e8 4106fc11 40efd4b3 3bb0b6a6 -> 40eff1e8", + "41024e8d 4112550e 40f3940f 3f66ffb0 -> 41024e8d", + "405a4ec7 405c6e7f 405a3d74 3a9ebc02 -> 405a4ec7", + "40bc7211 40d22c76 40ac732e 3f16e51e -> 40bc7211", + "3f840e9f 3f9dbc78 3f70eb5b 3e177614 -> 3f840e9f", + "40124351 3ffdf13a 3fd938e8 3f759bc4 -> 400115b4", + "411098d9 41276038 410db3a1 3f4d64b5 -> 411098d9", + "411266b5 413337ee 410bd60e 3f7d1a62 -> 411266b5", + "4103e3ac 410cba86 41000a49 3ecb03d6 -> 4103e3ac", + "41200baf 4123de4a 411ff45b 3c11cbd8 -> 41200baf", + "4106099a 4106417c 410606d6 3bea9729 -> 4106099a", + "41198930 411a8fcc 411987b5 3b4f59d4 -> 41198930", + "40e22b67 41006093 40d2e604 3f376c86 -> 40e22b67", + "40b01c8b 40b03a21 40b01b90 3af48a62 -> 40b01c8b", + "40a9ed91 40cc814f 409df955 3f3a1fe8 -> 40a9ed91", + "40c53a89 40f00d4b 40b42081 3f6a35f8 -> 40c53a89", + "40bf67fc 40bfec0a 40bf4a12 3c21f7f7 -> 40bf67fc", + "4098b804 40bb2855 407cace7 3f800000 -> 4098b804", + "40a349ac 40a1bcce 409b8cf2 3f1db8b1 -> 40a0b707", + "40c45572 4107ea0f 40c3c9be 3f3b95fb -> 40c45572", + "411e22fa 4127f1ba 41199be3 3ef9986c -> 411e22fa", + "407e3175 40944129 407dddcf 3eaa920f -> 407e3175", + "40e9bf5c 40eb6ef0 40e86cb8 3d408dee -> 40e9bf5c", + "40e0777d 40f33ba0 40e0714f 3b4e5bf8 -> 40e0777d", + "3d9cda7e 3da352d2 3d9b189d 3b03a351 -> 3d9cda7e", + "40986c28 40bd705e 407845de 3f800000 -> 40986c28", + "40865f3b 409a69cb 40839f86 3eb65229 -> 40865f3b", + "41150524 413ec39c 41101b23 3f800000 -> 41150524", + "40c347e1 40f38b0a 40bf01c8 3ebdcbb9 -> 40c347e1", + "408ab4cd 408a4a11 408aae79 3bdf81de -> 408a4a11", + "4008291c 402bb48a 400767b7 3eaf9900 -> 4008291c", + "40bfe0fe 40e90c93 40b2ebf4 3f800000 -> 40bfe0fe", + "4120b5a8 4120b262 4111939b 3f800000 -> 411fb404", + "405d4e9d 4097f74e 40586103 3e8ea463 -> 405d4e9d", + "40a92fde 40deecec 40a4db0b 3f684785 -> 40a92fde", + "410ae763 411929da 4105fd4c 3f800000 -> 410afdec", + "4118fac5 4121f599 4111930e 3f03145b -> 4118fac5", + "410aa44b 41114d12 410a996c 3bebf1f7 -> 410aa44b", + "409ccb96 40d2647e 4094f69a 3f75b791 -> 409ccb96", + "40808027 40bb507c 4076a0f9 3f800000 -> 40808027", + "40541b7c 40a4d380 4049a700 3f800000 -> 40541b7c", + "4056b98e 407ee610 4054ffce 3e9fcd58 -> 4056b98e", + "3fde3570 40037b02 3fd2642a 3e524765 -> 3fde3570", + "4025d50e 407d77f0 40199b3b 3f47b96b -> 4025d50e", + "402d9bf7 404f693a 4010a932 3ef44a1f -> 402d9bf7", + "3daa222a 3da4e03c 3d66b508 3d72590c -> 3d8db733", + "4039e35d 404c9bdf 402e2eba 3e7ae59a -> 4039e35d", + "3f7361f2 3fe9e334 3f1ab6c6 3f1a4d4d -> 3f7361f2", + "40e38d76 40e08c31 40dfdaf2 3e37ebb5 -> 40e08512", + "4078e4d0 409e6630 405bccf2 3f4ea5ff -> 4078e4d0", + "4100cabe 411b4c46 40f61f38 3f800000 -> 4100cabe", + "411e957d 411eae61 411e919c 3b662a72 -> 411e957d", + "4106080b 4121c862 41041899 3f6d7e46 -> 4106080b", + "40e25175 410d68fa 40dc9dd5 3f800000 -> 40e25175", + "40f9971e 41051543 40f7cd70 3f27a5e7 -> 40f9e2fe", + "406eda17 40b2edbe 4067e62a 3f800000 -> 406eda17", + "40ed4507 41069b5d 40e2e293 3f293ec5 -> 40ed4507", + "41004bda 41044e70 40f8bb63 3e7e17c3 -> 41004bda", + "40eed6a2 40e437f2 40e213f6 3edad1bc -> 40e462da", + "3fab77e2 4010ad98 3f944892 3ee6f818 -> 3fab77e2", + "40968bbe 40bde4cc 408c0d1a 3f800000 -> 40968bbe", + "4112b13a 412058be 4112af16 3b54a3b2 -> 4112b13a", + "3fa85e3b 4008f47c 3f953a7c 3e8d9dba -> 3fa85e3b", + "4085a885 408fc316 40824848 3e57ace0 -> 4085a885", + "40801e9c 40b0e42e 4061c85c 3f800000 -> 40801e9c", + "3f8dc4df 407afed6 3f80e79a 3f800000 -> 3f8dc4df", + "4024182a 405a313a 4023f2a5 3b93933a -> 4024182a", + "411f26fe 41227daf 411ad3bf 3f26560c -> 411f5ac5", + "4008d0a1 40610320 40069f5a 3e89388b -> 4008d0a1", + "408a4a2b 408fb056 40803075 3f67e9d0 -> 408a716e", + "40cf9907 40e26a58 40cd6d9a 3e9b3b96 -> 40cf9907", + "3fd02008 403ab220 3f2c62fa 3f800000 -> 3fd02008", + "3e7fd5e2 4009aa32 3e06550c 3f800000 -> 3e7fd5e2", + "4016cf9c 4054ecdf 401662b0 3da076fe -> 4016cf9c", + "4104b578 4105a129 41032201 3dcf5b20 -> 4104b02a", + "40e22d83 40e7f8bd 40dff8b7 3d9b8c73 -> 40e22d83", + "40c77201 40dc5812 40ae0871 3f800000 -> 40c886a4", + "3fc3a086 4041bff0 3fb46e95 3ec552da -> 3fc3a086", + "40b56669 40db5cc7 409cda49 3f800000 -> 40b56669", + "40941a12 40944e36 40940a31 3b828bbb -> 40941a12", + "40d96af3 40dca1e8 40d64ca1 3f0de64b -> 40d90c4e", + "40b990d7 40eb6d94 40ab6d94 3f800000 -> 40b990d7", + "4084faef 408b493a 4084a9e7 3dea1f25 -> 4084faef", + "40a01ddd 40a8c9f1 40a004b8 3bb18cda -> 40a01ddd", + "409ee6c1 40d996f1 409a6111 3f380b79 -> 409ee6c1", + "3f32cf18 3f9823e8 3ef698b4 3ebfd5d5 -> 3f32cf18", + "4103169d 41132ba5 41020912 3ea5aa88 -> 4103169d", + "403f9833 40ac1ddf 4031eb58 3f800000 -> 403f9833", + "40ed33d4 40f5342c 40ed3342 3aa09a76 -> 40ed33d4", + "410323f1 411967ee 40ffee30 3f4b86b3 -> 410323f1", + "409abf42 40bb9b92 407e1b68 3f743d82 -> 409abf42", + "40903aa4 40b30cf8 407bee26 3f2ecec9 -> 40903aa4", + "4041022c 40948799 402f3c46 3f6fa058 -> 4041022c", + "40e36775 4108282b 40e04d04 3f7e42c5 -> 40e36775", + "40da4d33 40de4872 40da1c20 3da06d24 -> 40da4d33", + "40d30664 4100a38a 40c163e3 3f800000 -> 40d30664", + "402d8fcf 402eca7b 401dc025 3f05bea5 -> 402ae57c", + "40ad193a 40d73997 40973997 3f800000 -> 40ad193a", + "3f961d97 4059d26d 3ef3e87d 3f800000 -> 3f961d97", + "40a5ebcd 40dececb 409ececb 3f800000 -> 40a5ebcd", + "4098703f 40c7ae24 40906167 3f5967f5 -> 4098703f", + "406b7e37 406d8cbb 406b77ff 3b80543b -> 406b7e37", + "407e7348 408a3637 4075f4e7 3e64af3d -> 407e7348", + "40aae3c5 40c42753 40a67bc9 3f0a7cf7 -> 40aae3c5", + "3eea003c 3f968d96 3e5afbc2 3ef65c3b -> 3eea003c", + "40e745f7 4102e522 40cb226e 3f7231fa -> 40e745f7", + "40239ed6 404afa8a 400ba868 3ed3e49f -> 40239ed6", + "41097d41 4122e0fa 4102e0fa 3f800000 -> 41097d41", + "410b9a8c 411c2b4a 4105253a 3f383084 -> 410b9a8c", + "3ec8ff98 3feb1004 3ebfac5a 3f0a936d -> 3ec8ff98", + "410e0dd1 4113887c 410da648 3e519a9f -> 410e0dd1", + "40860b7d 40a73fa6 406dd92e 3f414c3c -> 40860b7d", + "40d9f8e2 40da2128 40d9e699 3b6a3ce8 -> 40d9f8e2", + "411df44d 4124a137 4112cd3f 3f800000 -> 411eac03", + "410483d9 4107785e 41046402 3c0c733e -> 410483d9", + "408d9062 40c98c40 4082d51f 3f4391eb -> 408d9062", + "400c768c 402dbfa3 4007374b 3e9db076 -> 400c768c", + "3f7a49a6 3f816408 3f276aa8 3eac7ec6 -> 3f736b12", + "40a4ac2a 40ac0363 40a49658 3bc1d4a6 -> 40a4ac2a", + "411c3e95 4139d619 411a7211 3f800000 -> 411c3e95", + "40a1169f 40a12cd7 40a113ec 3ac755f7 -> 40a1169f", + "41283320 413de8de 411a0bbc 3f7dba50 -> 41283320", + "40fea4ef 41004967 40fe8d5b 3b90d158 -> 40fea4ef", + "40cb8868 40e0446d 40ca1fc9 3d501162 -> 40cb8868", + "407b8d7d 407c2ae1 407b22e4 3bde6c26 -> 407b8d7d", + "3fee6667 3fcec518 3f8ab6c9 3f68e9a8 -> 3fd1b9fa", + "3fe6da2a 401104c1 3fe6c775 3bfb901f -> 3fe6da2a", + "400b331d 40531cdf 4005e9f5 3f1d52c9 -> 400b331d", + "40cba5de 40fd0dd6 40c2f4fa 3f703ed8 -> 40cba5de", + "40eb341a 4107ddd2 40e8ae20 3f1c3610 -> 40eb341a", + "409e3afc 40cdbbab 409aec1d 3f537be6 -> 409e3afc", + "4110c7f0 411e1fa7 4104f60f 3f494cc0 -> 4110c7f0", + "3fc9df1a 403ea8d6 3f7deac5 3f800000 -> 3fc9df1a" + ] } ] } diff --git a/packages/cultmath/unity/org.gamecult.cultmath/Shaders/CultMath.hlsl b/packages/cultmath/unity/org.gamecult.cultmath/Shaders/CultMath.hlsl index ed1d4247..94bec900 100644 --- a/packages/cultmath/unity/org.gamecult.cultmath/Shaders/CultMath.hlsl +++ b/packages/cultmath/unity/org.gamecult.cultmath/Shaders/CultMath.hlsl @@ -688,6 +688,52 @@ float cultmath_gabriel_margin(float3 a, float3 b, float3 other) return (cultmath_distance(other, (a + b) * 0.5) - r) / r; } +// Weighted lattice cells: the four per-cell steps of math.Lattice.cs, statement for statement. A shader function cannot take a +// span (design.md, "Sites"), so weighted_lattice_cells is the consumer's loop over its own body buffer, in two passes: +// float2 q = p / cellSize; int2 c0 = (int2)floor(q); float f1 = 1.0e30, f2 = 1.0e30; int reach = 0; +// for (int k = 0; ; k++) { // ring pass: Chebyshev rings 0, 1, 2, ... around c0, exact exit +// if (k > 1 && 0.5 * (k - 1) >= max(f2, f1 + 2.0 * smoothing)) break; // k never reaches 38 in the accepted range +// for each cell on ring k: d = cultmath_lattice_distance(q, cultmath_lattice_site(cell, time, drift).xy, w, normal, stretch), +// w = cultmath_lattice_weight(site.z, border, boost, falloff), border = the .w of cultmath_power_border_step +// folded over the bodies (owner = the nearest body of the cell centre (cell + 0.5) * cellSize, z = 0); +// if (d < f1) { f2 = f1; f1 = d; } else if (d < f2) f2 = d; store d for the box pass +// reach = k; } +// float m = f1 + smoothing; // box pass: every stored cell, rows dz = -reach..reach, then dx = -reach..reach +// for each (dz, dx): m = cultmath_lattice_smooth_step(m, d, f1, smoothing); // strict < for the winning id (earlier cell wins ties) +// The preconditions the C# function throws for are the caller's in a shader: finite arguments, cellSize > 0, boost in [0, 4], +// falloff > 0, smoothing in (0, 1], stretch in [1, 2], p within 2^23 cells. The normal is normalised as C# does: divide by its +// largest component, then by its length (a zero normal means (1, 0) and needs stretch == 1). The ring bound is 37. +float3 cultmath_lattice_site(float2 cell, float time, float drift) +{ + int3 h = cultmath_pcg3d(int3((int)cell.x, (int)cell.y, 0)); + float2 phase = float2((float)((uint)h.x >> 8) * (1.0 / 16777216.0), (float)((uint)h.y >> 8) * (1.0 / 16777216.0)); + float2 site = cell + 0.5 + 0.5 * float2(sin(drift * time + CULTMATH_TAU * phase.x), sin(drift * time + CULTMATH_TAU * phase.y)); + return float3(site, 0.5 + 0.5 * ((float)((uint)h.z >> 8) * (1.0 / 16777216.0))); +} + +float cultmath_lattice_weight(float base_weight, float border, float boost, float falloff) +{ + float t = border / falloff; + return base_weight * (1.0 + boost * exp(-(t * t))); +} + +float cultmath_lattice_distance(float2 q, float2 site, float weight, float2 normal, float stretch) +{ + float2 v = site - q; + float a = dot(v, normal); + float c = v.x * normal.y - v.y * normal.x; + return weight * length(float2(stretch * a, c)); +} + +float cultmath_lattice_smooth_step(float m, float d, float f1, float smoothing) +{ + if (d >= f1 + 2.0 * smoothing) + return m; + float h = cultmath_smoothstep(0.0, 1.0, 0.5 + 0.5 * (m - d) / smoothing); + float next = m + (d - m) * h - h * (1.0 - h) * smoothing / (1.0 + 3.0 * smoothing); + return min(next, f1 + smoothing); +} + float2 cultmath_segment_closest(float2 point_value, float2 start, float2 end) { float2 segment = end - start; From 7ddb10408ebb3866066cb2a1b76ae9cf84f98824 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Sat, 17 Oct 2026 11:34:05 +0200 Subject: [PATCH 2/2] cultmath tests: lavapipe bounds with the four lattice families, recorded on Yggdrasil (cut lattice-weighted-shaders) Co-Authored-By: Claude Sonnet 5.5 --- .../fixtures/device-bounds-lavapipe.txt | 40 +++++++++++-------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/packages/cultmath/tests/CultMath.Tests/fixtures/device-bounds-lavapipe.txt b/packages/cultmath/tests/CultMath.Tests/fixtures/device-bounds-lavapipe.txt index 7529c2de..b108aa4a 100644 --- a/packages/cultmath/tests/CultMath.Tests/fixtures/device-bounds-lavapipe.txt +++ b/packages/cultmath/tests/CultMath.Tests/fixtures/device-bounds-lavapipe.txt @@ -20,14 +20,14 @@ lavapipe-glsl 15 vec2 cultmath_iv_min(vec2, vec2) ulp-bounded 256 0 0 a324b35cb4 lavapipe-glsl 16 vec2 cultmath_iv_max(vec2, vec2) ulp-bounded 256 0 0 d68412262ca234c1da130fc5217ba6856da3e92e435c28c1fbdbf3692a89e1fa lavapipe-glsl 17 vec2 cultmath_iv_sqr(vec2) ulp-bounded 256 0 0 dbbb0e0df015456393452377d689732428a9a8e24d8e2b407ee9620593b4c46b lavapipe-glsl 18 vec2 cultmath_iv_sqrt(vec2) ulp-bounded 256 0 0 95bd15d1b283713fc632ced350f5da1b89f8f73e6618329773db1b52acd29991 -lavapipe-glsl 19 vec2 cultmath_iv_clamp(vec2, float, float) ulp-bounded 256 0 0 abe9daf24930a5e3a49ec994c4cae3a0c27b9d019d6d93ec1963ec3daad664a0 +lavapipe-glsl 19 vec2 cultmath_iv_clamp(vec2, float, float) ulp-bounded 256 0 0 268d61fd6d122e2b85e211c96daf410fb7e2d8ff83ec2082709f640504c852a7 lavapipe-glsl 20 vec2 cultmath_iv_saturate(vec2) ulp-bounded 256 0 0 0f844ef8c4d9a9f748c80677bbbfc36b5f6e682eb87c2d46e7e20635d5f55c26 lavapipe-glsl 21 vec2 cultmath_iv_smoothstep(float, float, vec2) ulp-bounded 256 0 0 3d5944a4c43feb91d6786924e0f5439c05285d28ff1f500b5582893758dd4ce5 lavapipe-glsl 22 vec2 cultmath_iv_lerp(vec2, vec2, float) ulp-bounded 256 0 0 96b09e90a3fbbfe81379a29a23b676e490bc7dc6bb731450197707e6cf4c573f lavapipe-glsl 23 vec2 cultmath_iv_snoise_ball(vec3, float) ulp-bounded 242 54 0 570eb031260c8f4aab42edc57a5fa1d0da70e8a4e6f0b4bf68208c15506f7cb5 lavapipe-glsl 24 vec2 cultmath_iv_fbm_ball(vec3, float, int, float, float) ulp-bounded 250 56 0 9e7017426314537f84c58dcdd1f85188cbe8f4dd9ababed887f60776cf861ebf lavapipe-glsl 25 vec4 cultmath_iv_frustum_ball(vec2, float, float, float, float) ulp-bounded 198 1.6457063576593662 0 327c306aa4d06aecbb2681d8808c6dbf0567e87b54a6067c68001e36b3e52169 -lavapipe-glsl 26 vec2 cultmath_iv_exp(vec2) ulp-bounded, platform exp 7 7.526057804152758 0 b4af8232dc3dd782cc6d790e928ede0f6ba6dfdffd6c71dd9494fb58973e485c +lavapipe-glsl 26 vec2 cultmath_iv_exp(vec2) ulp-bounded, platform exp 7 7.526057804152758 0 1a46b0fa116f55e5abd70ec9f2a66de0befe8b3577fe472f9eaa98932aae8040 lavapipe-glsl 27 CultPhasor cultmath_phacelle(vec3, vec3, float, float) ulp-bounded, platform exp, sin, cos; across platforms |diff| <= 2^-20 max(|v|, 1); on a device |diff| <= 2^-18 max(|v|, 1) 0 18.5 0 705b4c18027a0838218645e9368c3749ae4b5bf75e0485985725e8e72b73ab88 lavapipe-glsl 28 float cultmath_snoise(vec3) ulp-bounded, on the simplex tie set 127 112 0 6929326e4f27726d7bbdbac3a7823209e2ecfcd301018ef164527c4c1a9f7ae8 lavapipe-glsl 29 vec4 cultmath_snoise_grad(vec3) ulp-bounded, on the simplex tie set 102 546.5 0 6173a812fd4059fa19bce84d34858c6035cdda98aa21a2b210e611cbd58c29d6 @@ -36,7 +36,7 @@ lavapipe-glsl 31 vec3 cultmath_af_symbol(float, float) ulp-bounded 256 0 0 04147 lavapipe-glsl 32 vec3 cultmath_af_from_iv(vec2) ulp-bounded 256 0 0 306fe58a3268199fc8fd845a32d956f349a790422fa5c87d5a0824636cb55424 lavapipe-glsl 33 vec2 cultmath_af_range(vec3) ulp-bounded 256 0 0 6245eeba19473d69d0d8155e20e2e6089a6843140723d23ed5d501064023a44a lavapipe-glsl 34 vec3 cultmath_af_add(vec3, vec3) ulp-bounded 256 0 0 cb1cb3fc69224837342de767525d332687b9d3e17b3de255c28e2f0f65f32640 -lavapipe-glsl 35 vec3 cultmath_af_sub(vec3, vec3) ulp-bounded 256 0 0 a8fad8ea86cf61841430293fdd9840a54008160250114040380c9634c63bb17e +lavapipe-glsl 35 vec3 cultmath_af_sub(vec3, vec3) ulp-bounded 256 0 0 df44c501a8be20dc46a54faac9583da13f4367adc501a33fe14624f10e54b558 lavapipe-glsl 36 vec3 cultmath_af_neg(vec3) ulp-bounded 256 0 0 e485acf8ee21c6d880621cc6216b3b2a78318f56f5864b33c5509be27e22a694 lavapipe-glsl 37 vec3 cultmath_af_scale(vec3, float) ulp-bounded 256 0 0 8b0c8a540fea82fe058efc42ffa38dbd69850e579cefe5fdbc4c164b715ec15d lavapipe-glsl 38 vec3 cultmath_af_add_iv(vec3, vec2) ulp-bounded 256 0 0 620f747e6ba53014c9714a8dbfaa3ff93f281c80938bd035ef64657e3bdc1a16 @@ -50,7 +50,7 @@ lavapipe-glsl 45 vec3 cultmath_af_snoise(vec3, vec3, float) ulp-bounded, reach 1 lavapipe-glsl 46 vec3 cultmath_af_fbm(vec3, vec3, float, int, float, float) ulp-bounded, reach 1e-6 to 1e-3 27 102.5 0 42246db4e19a1da20433517cdc7016dda375ea70dc90d1a777679bfd76fb59e8 lavapipe-glsl 47 float cultmath_cycles_divide(float, float) ulp-bounded 256 0 0 87f143c57806ad52c3295cde67e97f31e39c8572b8c0a4b8c577e6fcd8ecbebf lavapipe-glsl 48 float cultmath_cycles_power(float, float) ulp-bounded, platform pow 136 4.918926113980705 0 0e62db5ea32fdb9fdd3a9b135a914ddadd3231bdee0ff15c709102b26bb89186 -lavapipe-glsl 49 float cultmath_cycles_logarithm(float, float) ulp-bounded, platform log 146 4.94622778071426 0 5b2bf1411512c7e5a3f4b335a16fc3ba00ba0784bb87acb14b7d1b9dd551b2f3 +lavapipe-glsl 49 float cultmath_cycles_logarithm(float, float) ulp-bounded, platform log 147 4.94622778071426 0 5b2bf1411512c7e5a3f4b335a16fc3ba00ba0784bb87acb14b7d1b9dd551b2f3 lavapipe-glsl 50 float cultmath_cycles_sqrt(float) ulp-bounded 256 0 0 6d4beb34e93ae304b3d9d30f203fb6c2ba222affc0efc35bb5441528e9062a9a lavapipe-glsl 51 float cultmath_cycles_inverse_sqrt(float) ulp-bounded 256 0 0 71aadd5bd384b9ca2eb89827de53af810a1350b02177de1987e9405e4a6e9ad8 lavapipe-glsl 52 float cultmath_cycles_modulo(float, float) ulp-bounded 256 0 0 cf055cafcb5b2d4789a0a2d5cfbc8bc79f52df646b60f5e47db3f994680949e9 @@ -96,16 +96,16 @@ lavapipe-glsl 91 vec3 cultmath_cycles_mix_val(float, vec3, vec3) ulp-bounded 256 lavapipe-glsl 92 vec3 cultmath_cycles_mix_color(float, vec3, vec3) ulp-bounded 256 0 0 00067b1567bcd6c07a81fa5002f145dfca22437a3f3df5389b2665334d14909b lavapipe-glsl 93 vec3 cultmath_cycles_mix_soft(float, vec3, vec3) ulp-bounded 157 1.9750388068880254 0 ed7c5508ca0543cc20a5f0c5624e75e3ca2a2d6044d481816eeda2edc50c0592 lavapipe-glsl 94 vec3 cultmath_cycles_mix_linear(float, vec3, vec3) ulp-bounded 256 0 0 672435cc30bcbbb253cce7316ee0712b1a18f06924bc89cea2d3388dd164a15d -lavapipe-glsl 95 float cultmath_cycles_arcsine(float) ulp-bounded, platform asin 154 2734.286809678319 0 f28f3ed0a53ffeebdfa84865d2d3d41590e6b46fc1578d40e1215e2a9e1af585 +lavapipe-glsl 95 float cultmath_cycles_arcsine(float) ulp-bounded, platform asin 155 2734.286809678319 0 f28f3ed0a53ffeebdfa84865d2d3d41590e6b46fc1578d40e1215e2a9e1af585 lavapipe-glsl 96 float cultmath_cycles_arccosine(float) ulp-bounded, platform acos 79 1046.8674409774287 0 22a2c38ab5a232cdbb33cf0c133362581a398f64a4d0d5d6dd89dc5af06bd890 -lavapipe-glsl 97 float cultmath_cycles_arctan2(float, float) ulp-bounded, platform atan 6 25.5 0 2c60447d80186f6dc9726f19c09fa96ec3f66d8f5688968da533d9195ea463c4 +lavapipe-glsl 97 float cultmath_cycles_arctan2(float, float) ulp-bounded, platform atan 7 25.5 0 2c60447d80186f6dc9726f19c09fa96ec3f66d8f5688968da533d9195ea463c4 lavapipe-glsl 98 mat3 cultmath_snoise_hessian(vec3) ulp-bounded 30 1358.4375 0 62bbafb8420ed5aaa0ce11d1470ca98945e690b186c33a1e7cf4d71478396465 lavapipe-glsl 99 mat3 cultmath_snoise_hessian(vec3) ulp-bounded, on the simplex tie set 110 1317.4754224467295 0 0efd9b3a637b46033ed0351f64de274db4d9ce05bb83dd1ce57afb3ceaea26bc lavapipe-glsl 100 float cultmath_integral_clamp_linear(float, float, float, float, float, float) ulp-bounded 256 0 0 84bf9c9a2126b3114a692507cc54f58d313afc33de8a1cac83969cc508433cbe lavapipe-glsl 101 float cultmath_integral_clamp_linear(float, float, float, float, float, float) ulp-bounded, lo above hi and infinite bounds 256 0 0 ff999094d7794aa525e0f9f9a067aa21408a59559aa546cace3b1bb4a8c7f96d lavapipe-glsl 102 float cultmath_integral_clamp_linear(float, float, float, float, float, float) ulp-bounded, zero-length spans and flat infinite clamps 256 0 0 c3cc48f4edcac6801b9223f12d289934916431bdfaea8f68af33a1b833ab9860 lavapipe-glsl 103 SpanNoise cultmath_span_fbm(SpanPath, SpanStage, int, float, float) ulp-bounded 7 1012477.3459086476 0 97c531c3a690e056d95e949e243ae74111d4a93a39fd22c0358a103b3bb14bc1 -lavapipe-glsl 104 SpanNoise cultmath_span_ridged(SpanPath, SpanStage, int, float, float) ulp-bounded 8 948534.9108393334 0 54fd229d69439ff3318690b7802143f8410dc7ece30ad0d56ccc4b68bf39bec2 +lavapipe-glsl 104 SpanNoise cultmath_span_ridged(SpanPath, SpanStage, int, float, float) ulp-bounded 8 948534.9108393334 0 c5d55a1d05403f6a1a7b7946c3a4c9556277f217fc660d338b3894efbb333e43 lavapipe-glsl 105 vec4 cultmath_snoise_grad(vec3) ulp-bounded, coordinate bands 1e-4 to 1e2 116 249.5 0 fff9658a8ec055766c9327ee9b680cf7fb83736c472ae90a11e50d6d2a053fdc lavapipe-glsl 106 vec4 cultmath_snoise_grad(vec3) ulp-bounded, coordinate bands 1e2 to 4e6 70 11866336.625 0 833484714ebcea59d86e0fbc2eaa4ae247c29541703763989e6758547dbf6db8 lavapipe-glsl 107 mat3 cultmath_snoise_hessian(vec3) ulp-bounded, coordinate bands 1e-4 to 1e2 120 980.7417469278579 0 3ea43dabe0091ea8e994c1dfc65c7274ed38b9343d4d1d06f7caa09c806c91df @@ -117,9 +117,13 @@ lavapipe-glsl 112 vec3 cultmath_segment_closest(vec3, vec3, vec3) ulp-bounded 21 lavapipe-glsl 113 vec4 cultmath_power_border_step(vec3, vec4, vec4, vec4) ulp-bounded 214 43 0 fdfdff73434a146489b002af5e80663658b2dd7b86105a7e65bdab755ab54a5e lavapipe-glsl 114 vec4 cultmath_power_score(vec3, vec4) ulp-bounded 207 1.4619722193127032 0 dc1aa639ae1dc44003a0f5d8c7c99b2e3d7f51b158c96b3c3bd7a9f7df6d927e lavapipe-glsl 115 vec4 cultmath_multiplicative_score(vec3, vec4) ulp-bounded 234 1.5529504197086745 0 ee1af26ac82489e8d363e7a6b6b59da7dacfb397d4bc9a723dd68607a69da41a -lavapipe-glsl 116 CultSiteCells cultmath_site_cells_insert(CultSiteCells, vec4, int) ulp-bounded 256 0 0 bfad8b369011cfbf14644fec68ce65620694fcbf3cd3804f54953d55587313fc +lavapipe-glsl 116 CultSiteCells cultmath_site_cells_insert(CultSiteCells, vec4, int) ulp-bounded 256 0 0 b8687b139aaa865e9f28fbc84fe37dd4a1d4873d5ff8e2074922c07f56551576 lavapipe-glsl 117 vec4 cultmath_site_cells_border(CultSiteCells) ulp-bounded 228 1.069496760346883 0 d7b478bef7e6f80902d0b5b255cb4fca30757ff6b9d25dac2030b037a8d342ce lavapipe-glsl 118 float cultmath_gabriel_margin(vec3, vec3, vec3) ulp-bounded 201 2 0 6a80fbef486de496a08b7c8e7f9f65e2cc0f5b9f93abe50c43e84ad88d1ed034 +lavapipe-glsl 119 vec3 cultmath_lattice_site(vec2, float, float) ulp-bounded 256 0 0 84df739c336796638dcf0a99c328a4b8c150c25d80e02248d4b6d023dc13161f +lavapipe-glsl 120 float cultmath_lattice_weight(float, float, float, float) ulp-bounded 231 2.0671110200639147 0 434cdf5603abc2942aa624b9d2e98d5f1231706c86180a80439bc8b72bdd066e +lavapipe-glsl 121 float cultmath_lattice_distance(vec2, vec2, float, vec2, float) ulp-bounded 256 0 0 622d0e1ea0fcf0e2700558dbdaea92b8ce02e44048dbf35944c23b5088c3e40c +lavapipe-glsl 122 float cultmath_lattice_smooth_step(float, float, float, float) ulp-bounded 256 0 0 e6c9aeb52c5e63ebf3c8525dd39b5b88d5f890fd4f23f4894a92232807a3d94e lavapipe-hlsl 0 float cultmath_snoise(vec3) ulp-bounded 94 122.6875 0 5d41c14241a13124f2e1b49f230f5df0c48d0d69fb1be9ef2f33dc1702bf0b0a lavapipe-hlsl 1 float cultmath_snoise(vec2) ulp-bounded 204 1 0 81d9c62726afdccbbe4ffef173b5c92731eb6bf5927b3979d653e50dbd5d4064 lavapipe-hlsl 2 vec4 cultmath_snoise_grad(vec3) ulp-bounded 71 617.5 0 f7e9ed1707cdb015efaba0e0150193309da0d4c125349518f8b7c60a17b25790 @@ -139,14 +143,14 @@ lavapipe-hlsl 15 vec2 cultmath_iv_min(vec2, vec2) ulp-bounded 256 0 0 a324b35cb4 lavapipe-hlsl 16 vec2 cultmath_iv_max(vec2, vec2) ulp-bounded 256 0 0 d68412262ca234c1da130fc5217ba6856da3e92e435c28c1fbdbf3692a89e1fa lavapipe-hlsl 17 vec2 cultmath_iv_sqr(vec2) ulp-bounded 256 0 0 dbbb0e0df015456393452377d689732428a9a8e24d8e2b407ee9620593b4c46b lavapipe-hlsl 18 vec2 cultmath_iv_sqrt(vec2) ulp-bounded 256 0 0 95bd15d1b283713fc632ced350f5da1b89f8f73e6618329773db1b52acd29991 -lavapipe-hlsl 19 vec2 cultmath_iv_clamp(vec2, float, float) ulp-bounded 256 0 0 abe9daf24930a5e3a49ec994c4cae3a0c27b9d019d6d93ec1963ec3daad664a0 +lavapipe-hlsl 19 vec2 cultmath_iv_clamp(vec2, float, float) ulp-bounded 256 0 0 268d61fd6d122e2b85e211c96daf410fb7e2d8ff83ec2082709f640504c852a7 lavapipe-hlsl 20 vec2 cultmath_iv_saturate(vec2) ulp-bounded 256 0 0 0f844ef8c4d9a9f748c80677bbbfc36b5f6e682eb87c2d46e7e20635d5f55c26 lavapipe-hlsl 21 vec2 cultmath_iv_smoothstep(float, float, vec2) ulp-bounded 256 0 0 3d5944a4c43feb91d6786924e0f5439c05285d28ff1f500b5582893758dd4ce5 lavapipe-hlsl 22 vec2 cultmath_iv_lerp(vec2, vec2, float) ulp-bounded 256 0 0 96b09e90a3fbbfe81379a29a23b676e490bc7dc6bb731450197707e6cf4c573f lavapipe-hlsl 23 vec2 cultmath_iv_snoise_ball(vec3, float) ulp-bounded 244 54 0 f36530a4cd8c9fdc1c73e7ddb6782cd11cbf8493e2ee7b0656e818812504267e lavapipe-hlsl 24 vec2 cultmath_iv_fbm_ball(vec3, float, int, float, float) ulp-bounded 252 75 0 a1677ea42ce91a5d2b6f83fa7c44879b7a184ed4631108d7a1c6e710bf26ff02 lavapipe-hlsl 25 vec4 cultmath_iv_frustum_ball(vec2, float, float, float, float) ulp-bounded 198 1.6457063576593662 0 327c306aa4d06aecbb2681d8808c6dbf0567e87b54a6067c68001e36b3e52169 -lavapipe-hlsl 26 vec2 cultmath_iv_exp(vec2) ulp-bounded, platform exp 7 7.526057804152758 0 b4af8232dc3dd782cc6d790e928ede0f6ba6dfdffd6c71dd9494fb58973e485c +lavapipe-hlsl 26 vec2 cultmath_iv_exp(vec2) ulp-bounded, platform exp 7 7.526057804152758 0 1a46b0fa116f55e5abd70ec9f2a66de0befe8b3577fe472f9eaa98932aae8040 lavapipe-hlsl 27 CultPhasor cultmath_phacelle(vec3, vec3, float, float) ulp-bounded, platform exp, sin, cos; across platforms |diff| <= 2^-20 max(|v|, 1); on a device |diff| <= 2^-18 max(|v|, 1) 0 18.5 0 705b4c18027a0838218645e9368c3749ae4b5bf75e0485985725e8e72b73ab88 lavapipe-hlsl 28 float cultmath_snoise(vec3) ulp-bounded, on the simplex tie set 144 99 0 be76512b18eb678194dad0c4726c0aef9ba34012b60b79d24c2df27989707145 lavapipe-hlsl 29 vec4 cultmath_snoise_grad(vec3) ulp-bounded, on the simplex tie set 111 546.5 0 124d4be07cbb66edab644e649c081cb7c8be5d99b6c1d84fec5d7ef65c76ed0f @@ -155,7 +159,7 @@ lavapipe-hlsl 31 vec3 cultmath_af_symbol(float, float) ulp-bounded 256 0 0 04147 lavapipe-hlsl 32 vec3 cultmath_af_from_iv(vec2) ulp-bounded 256 0 0 306fe58a3268199fc8fd845a32d956f349a790422fa5c87d5a0824636cb55424 lavapipe-hlsl 33 vec2 cultmath_af_range(vec3) ulp-bounded 256 0 0 6245eeba19473d69d0d8155e20e2e6089a6843140723d23ed5d501064023a44a lavapipe-hlsl 34 vec3 cultmath_af_add(vec3, vec3) ulp-bounded 256 0 0 cb1cb3fc69224837342de767525d332687b9d3e17b3de255c28e2f0f65f32640 -lavapipe-hlsl 35 vec3 cultmath_af_sub(vec3, vec3) ulp-bounded 256 0 0 a8fad8ea86cf61841430293fdd9840a54008160250114040380c9634c63bb17e +lavapipe-hlsl 35 vec3 cultmath_af_sub(vec3, vec3) ulp-bounded 256 0 0 df44c501a8be20dc46a54faac9583da13f4367adc501a33fe14624f10e54b558 lavapipe-hlsl 36 vec3 cultmath_af_neg(vec3) ulp-bounded 256 0 0 e485acf8ee21c6d880621cc6216b3b2a78318f56f5864b33c5509be27e22a694 lavapipe-hlsl 37 vec3 cultmath_af_scale(vec3, float) ulp-bounded 256 0 0 8b0c8a540fea82fe058efc42ffa38dbd69850e579cefe5fdbc4c164b715ec15d lavapipe-hlsl 38 vec3 cultmath_af_add_iv(vec3, vec2) ulp-bounded 256 0 0 620f747e6ba53014c9714a8dbfaa3ff93f281c80938bd035ef64657e3bdc1a16 @@ -169,7 +173,7 @@ lavapipe-hlsl 45 vec3 cultmath_af_snoise(vec3, vec3, float) ulp-bounded, reach 1 lavapipe-hlsl 46 vec3 cultmath_af_fbm(vec3, vec3, float, int, float, float) ulp-bounded, reach 1e-6 to 1e-3 24 122.75 0 7f941b1f0c76d9f2121027a555ae7f2a741cc164402f0df75237198ac97f850b lavapipe-hlsl 47 float cultmath_cycles_divide(float, float) ulp-bounded 256 0 0 87f143c57806ad52c3295cde67e97f31e39c8572b8c0a4b8c577e6fcd8ecbebf lavapipe-hlsl 48 float cultmath_cycles_power(float, float) ulp-bounded, platform pow 136 4.918926113980705 0 0e62db5ea32fdb9fdd3a9b135a914ddadd3231bdee0ff15c709102b26bb89186 -lavapipe-hlsl 49 float cultmath_cycles_logarithm(float, float) ulp-bounded, platform log 146 4.94622778071426 0 5b2bf1411512c7e5a3f4b335a16fc3ba00ba0784bb87acb14b7d1b9dd551b2f3 +lavapipe-hlsl 49 float cultmath_cycles_logarithm(float, float) ulp-bounded, platform log 147 4.94622778071426 0 5b2bf1411512c7e5a3f4b335a16fc3ba00ba0784bb87acb14b7d1b9dd551b2f3 lavapipe-hlsl 50 float cultmath_cycles_sqrt(float) ulp-bounded 256 0 0 6d4beb34e93ae304b3d9d30f203fb6c2ba222affc0efc35bb5441528e9062a9a lavapipe-hlsl 51 float cultmath_cycles_inverse_sqrt(float) ulp-bounded 256 0 0 71aadd5bd384b9ca2eb89827de53af810a1350b02177de1987e9405e4a6e9ad8 lavapipe-hlsl 52 float cultmath_cycles_modulo(float, float) ulp-bounded 256 0 0 cf055cafcb5b2d4789a0a2d5cfbc8bc79f52df646b60f5e47db3f994680949e9 @@ -215,16 +219,16 @@ lavapipe-hlsl 91 vec3 cultmath_cycles_mix_val(float, vec3, vec3) ulp-bounded 256 lavapipe-hlsl 92 vec3 cultmath_cycles_mix_color(float, vec3, vec3) ulp-bounded 256 0 0 00067b1567bcd6c07a81fa5002f145dfca22437a3f3df5389b2665334d14909b lavapipe-hlsl 93 vec3 cultmath_cycles_mix_soft(float, vec3, vec3) ulp-bounded 157 1.9750388068880254 0 ed7c5508ca0543cc20a5f0c5624e75e3ca2a2d6044d481816eeda2edc50c0592 lavapipe-hlsl 94 vec3 cultmath_cycles_mix_linear(float, vec3, vec3) ulp-bounded 256 0 0 672435cc30bcbbb253cce7316ee0712b1a18f06924bc89cea2d3388dd164a15d -lavapipe-hlsl 95 float cultmath_cycles_arcsine(float) ulp-bounded, platform asin 154 2734.286809678319 0 f28f3ed0a53ffeebdfa84865d2d3d41590e6b46fc1578d40e1215e2a9e1af585 +lavapipe-hlsl 95 float cultmath_cycles_arcsine(float) ulp-bounded, platform asin 155 2734.286809678319 0 f28f3ed0a53ffeebdfa84865d2d3d41590e6b46fc1578d40e1215e2a9e1af585 lavapipe-hlsl 96 float cultmath_cycles_arccosine(float) ulp-bounded, platform acos 79 1046.8674409774287 0 22a2c38ab5a232cdbb33cf0c133362581a398f64a4d0d5d6dd89dc5af06bd890 -lavapipe-hlsl 97 float cultmath_cycles_arctan2(float, float) ulp-bounded, platform atan 6 25.5 0 2c60447d80186f6dc9726f19c09fa96ec3f66d8f5688968da533d9195ea463c4 +lavapipe-hlsl 97 float cultmath_cycles_arctan2(float, float) ulp-bounded, platform atan 7 25.5 0 2c60447d80186f6dc9726f19c09fa96ec3f66d8f5688968da533d9195ea463c4 lavapipe-hlsl 98 mat3 cultmath_snoise_hessian(vec3) ulp-bounded 33 2377.8799856935966 0 a64853839f394cc7c367ba5e107caa8bb396f07cf202263aa917095dd1c939f7 lavapipe-hlsl 99 mat3 cultmath_snoise_hessian(vec3) ulp-bounded, on the simplex tie set 132 1317.4754224467295 0 9066a49e50731881583ffca16c949171bb61578a1dfd497c54dafe773ab49488 lavapipe-hlsl 100 float cultmath_integral_clamp_linear(float, float, float, float, float, float) ulp-bounded 256 0 0 84bf9c9a2126b3114a692507cc54f58d313afc33de8a1cac83969cc508433cbe lavapipe-hlsl 101 float cultmath_integral_clamp_linear(float, float, float, float, float, float) ulp-bounded, lo above hi and infinite bounds 256 0 0 ff999094d7794aa525e0f9f9a067aa21408a59559aa546cace3b1bb4a8c7f96d lavapipe-hlsl 102 float cultmath_integral_clamp_linear(float, float, float, float, float, float) ulp-bounded, zero-length spans and flat infinite clamps 256 0 0 c3cc48f4edcac6801b9223f12d289934916431bdfaea8f68af33a1b833ab9860 lavapipe-hlsl 103 SpanNoise cultmath_span_fbm(SpanPath, SpanStage, int, float, float) ulp-bounded 3 1024946.5723514018 0 f6395b9f2609d914894c35b442719be3cc3e11d07c5f0bae5a8719651e60cd4e -lavapipe-hlsl 104 SpanNoise cultmath_span_ridged(SpanPath, SpanStage, int, float, float) ulp-bounded 7 948534.9108393334 0 2adfdc4e6c81ee0bc7bb7869c55207f5033b4176104bc36dce1528ae0a5fe39b +lavapipe-hlsl 104 SpanNoise cultmath_span_ridged(SpanPath, SpanStage, int, float, float) ulp-bounded 7 948534.9108393334 0 bfda3536007373bdbef75a5c7bb63a7192f1c90b082984588f23e5b4eb767867 lavapipe-hlsl 105 vec4 cultmath_snoise_grad(vec3) ulp-bounded, coordinate bands 1e-4 to 1e2 119 423.1430718408491 0 a94c38d1baa651a6faa510920cbe9d1f9528c0adb863ba6e35d835588ad00a58 lavapipe-hlsl 106 vec4 cultmath_snoise_grad(vec3) ulp-bounded, coordinate bands 1e2 to 4e6 73 13116827.1875 0 9ad0fd577b26aa717534c0693df97ee41bcded0768f442739b98f505e4a2a430 lavapipe-hlsl 107 mat3 cultmath_snoise_hessian(vec3) ulp-bounded, coordinate bands 1e-4 to 1e2 122 980.7417469278579 0 0977fa6f446e4f916a9b938ce24ea32df6aa912dc991c182014d309dc0efb1cb @@ -236,6 +240,10 @@ lavapipe-hlsl 112 vec3 cultmath_segment_closest(vec3, vec3, vec3) ulp-bounded 21 lavapipe-hlsl 113 vec4 cultmath_power_border_step(vec3, vec4, vec4, vec4) ulp-bounded 214 43 0 fdfdff73434a146489b002af5e80663658b2dd7b86105a7e65bdab755ab54a5e lavapipe-hlsl 114 vec4 cultmath_power_score(vec3, vec4) ulp-bounded 207 1.4619722193127032 0 dc1aa639ae1dc44003a0f5d8c7c99b2e3d7f51b158c96b3c3bd7a9f7df6d927e lavapipe-hlsl 115 vec4 cultmath_multiplicative_score(vec3, vec4) ulp-bounded 234 1.5529504197086745 0 ee1af26ac82489e8d363e7a6b6b59da7dacfb397d4bc9a723dd68607a69da41a -lavapipe-hlsl 116 CultSiteCells cultmath_site_cells_insert(CultSiteCells, vec4, int) ulp-bounded 256 0 0 bfad8b369011cfbf14644fec68ce65620694fcbf3cd3804f54953d55587313fc +lavapipe-hlsl 116 CultSiteCells cultmath_site_cells_insert(CultSiteCells, vec4, int) ulp-bounded 256 0 0 b8687b139aaa865e9f28fbc84fe37dd4a1d4873d5ff8e2074922c07f56551576 lavapipe-hlsl 117 vec4 cultmath_site_cells_border(CultSiteCells) ulp-bounded 228 1.069496760346883 0 d7b478bef7e6f80902d0b5b255cb4fca30757ff6b9d25dac2030b037a8d342ce lavapipe-hlsl 118 float cultmath_gabriel_margin(vec3, vec3, vec3) ulp-bounded 201 2 0 6a80fbef486de496a08b7c8e7f9f65e2cc0f5b9f93abe50c43e84ad88d1ed034 +lavapipe-hlsl 119 vec3 cultmath_lattice_site(vec2, float, float) ulp-bounded 256 0 0 84df739c336796638dcf0a99c328a4b8c150c25d80e02248d4b6d023dc13161f +lavapipe-hlsl 120 float cultmath_lattice_weight(float, float, float, float) ulp-bounded 231 2.0671110200639147 0 434cdf5603abc2942aa624b9d2e98d5f1231706c86180a80439bc8b72bdd066e +lavapipe-hlsl 121 float cultmath_lattice_distance(vec2, vec2, float, vec2, float) ulp-bounded 256 0 0 622d0e1ea0fcf0e2700558dbdaea92b8ce02e44048dbf35944c23b5088c3e40c +lavapipe-hlsl 122 float cultmath_lattice_smooth_step(float, float, float, float) ulp-bounded 256 0 0 e6c9aeb52c5e63ebf3c8525dd39b5b88d5f890fd4f23f4894a92232807a3d94e