Affine gate: delete the detail term (saturated at [-0.5, 0.5]); design.md (c) rows re-measured [gate-detail-term-dead]
The affine gate's best-case detail ball decided no probe on the gate test's slices and one of the deep well's 8074 oracle-empty cells (11 of 11096 in c-band); skipping it saves the probes: (c) affine 3.57x -> 3.62x and 3.46x -> 3.54x, c-band 3.95x -> 3.96x and 3.54x -> 3.60x. The interval gate keeps its detail ball. Saturating it there (measured, then reverted) takes row (b), inside the fog, from a cull fraction of 0.663 to 0.585 and a cost ratio of 1.16x to 0.98x, so the term is live; the finding's premise holds for the affine gate only. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
2a1f9df19a
commit
51a4034c66
2 changed files with 17 additions and 9 deletions
|
|
@ -572,7 +572,10 @@ term is identically 0 and no `snoise` is evaluated. Where the envelope already
|
|||
proves the slice empty with the noise at its full range, the ball is not
|
||||
evaluated either. A probe is worth attempting only when the best result any
|
||||
centre value could give would prove the slice, and a ball with `L r >= 2` is
|
||||
`[-1, 1]` whatever `snoise(c)` is, so it costs nothing. CultMath owns none of the
|
||||
`[-1, 1]` whatever `snoise(c)` is, so it costs nothing. The affine test gate takes the detail octave at its full range:
|
||||
skipping its best-case ball loses 1 of the deep well's 8074 oracle-empty cells (11 of 11096 in (c-band)) and none of the
|
||||
gate test's slices, and saves the probes. The interval gate keeps its detail ball, which decides in row (b): saturating it there takes the fog field's
|
||||
cull fraction from 0.663 to 0.585 and its cost ratio from 1.16x to 0.98x. CultMath owns none of the
|
||||
envelope: the interval files have no envelope function, and each consumer composes
|
||||
its own. `NoiseBoundTests.EnvelopeBoundEnclosesDensity` checks that composition,
|
||||
the one the site and Aetheria use, over 2,000 seeded slices x 64 warped points
|
||||
|
|
@ -631,19 +634,19 @@ printed. The flow is not counted. At `N = 8`, in Aetheria's units on its
|
|||
`y = F - h(xz) / 2`, so it looks across the bowl from inside it. Both rows run
|
||||
on the same seeds. With no warp, the centred interval takes 3.20x (oracle
|
||||
ceiling 5.24x, efficiency 0.611, cull fraction 0.988, probe overhead 0.940)
|
||||
and the affine bound 3.57x (efficiency 0.682, cull 0.993, overhead 0.905). With
|
||||
and the affine bound 3.62x (efficiency 0.691, cull 0.993, overhead 0.922). With
|
||||
the warp `D = 60`: 3.12x (ceiling 5.31x, efficiency 0.588, cull 0.987, overhead
|
||||
0.929) against 3.46x (efficiency 0.651, cull 0.993, overhead 0.880), so affine
|
||||
is 1.12x and 1.11x cheaper. The range mask (the oracle cells plus every cell
|
||||
0.929) against 3.54x (efficiency 0.666, cull 0.993, overhead 0.904), so affine
|
||||
is 1.13x cheaper at both. The range mask (the oracle cells plus every cell
|
||||
where any of 5 x 5 slopes x 9 depths has density above zero) gives a range
|
||||
ceiling of 0.859 (0.848 with the warp), the cost a bound that proves exactly
|
||||
the range-empty cells would reach against the oracle's; the efficiencies
|
||||
against it are 0.794 and 0.712 (warp 0), 0.768 and 0.694 (warp `D`).
|
||||
against it are 0.805 and 0.712 (warp 0), 0.785 and 0.694 (warp `D`).
|
||||
- (c-band) The shallow wells, four mass-derived wells in the zone bowl with
|
||||
the camera gazing across, whose geometry is band-dominated, printed only.
|
||||
Centred interval 3.01x (efficiency 0.414, cull 0.960, overhead 0.958), affine
|
||||
3.95x (0.544, 0.980, 0.901); with the warp 2.75x (0.383, 0.954, 0.944) against
|
||||
3.54x (0.494, 0.976, 0.865).
|
||||
3.96x (0.545, 0.979, 0.923); with the warp 2.75x (0.383, 0.954, 0.944) against
|
||||
3.60x (0.503, 0.975, 0.893).
|
||||
- (d) r1's uniform slab, which has no envelope: 1.38x with the warp 0.05, and
|
||||
1.67x with no warp.
|
||||
- (e) The void at the shipped point (ruling `operator-shipped-void`): `Rh = 198`,
|
||||
|
|
@ -699,7 +702,7 @@ The contracts, at `N = 8`, the lower of warp 0 and `D`:
|
|||
converged march's by at most twice the fixed-step march's error; and it takes
|
||||
at most half the reference's steps per pixel.
|
||||
|
||||
This run meets every contract: (a) 16384x, (c) affine 3.57x and 3.46x against
|
||||
This run meets every contract: (a) 16384x, (c) affine 3.62x and 3.54x against
|
||||
the centred interval's 3.20x and 3.12x, with a cull fraction of 0.987 at the
|
||||
lowest, (e) 2.69x fewer steps and a depth error 1.42x the fixed-step march's.
|
||||
The fields, the grids, the 0.2 envelope weight and the 2.0 gradient weight are
|
||||
|
|
|
|||
|
|
@ -1796,6 +1796,11 @@ public sealed class NoiseBoundTests
|
|||
return low ? new float2(-1.0f, min(-1.0f + e, 1.0f)) : new float2(max(1.0f - e, -1.0f), 1.0f);
|
||||
}
|
||||
|
||||
// The affine gate takes the detail octave at its full range: its best-case ball never decided a probe
|
||||
// on the gate test's slices or the deep wells, and a gate that skips it proves the same slices with
|
||||
// fewer probes. (The interval gate keeps its detail ball: inside the fog, row (b), it decides.)
|
||||
private static readonly float2 DetailRange = new(-0.5f, 0.5f);
|
||||
|
||||
private static float2 Clip(float2 range) => new(max(range.x, -1.0f), min(range.y, 1.0f));
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -1818,7 +1823,7 @@ public sealed class NoiseBoundTests
|
|||
foreach (var low in new[] { true, false })
|
||||
{
|
||||
var coverage = Noise.CoverageBound(BestForm(slice.Coverage0.Reach, low), BestForm(slice.Coverage1.Reach, low), tile.Time);
|
||||
provable |= Compose(s, fade, iv_add(coverage, iv_scale(BestForm(slice.Detail.Reach, low), 0.5f))).y <= 0.0f;
|
||||
provable |= Compose(s, fade, iv_add(coverage, DetailRange)).y <= 0.0f;
|
||||
}
|
||||
|
||||
if (!provable)
|
||||
|
|
|
|||
Loading…
Reference in a new issue