Δ-rule: distance-aware gain wired (default flat), ph*.npz capture proof
- delta_gain(bin,kfc,nbin,dist)=1+(|bin-kfc|/nbin)*RT_DELTA_DIST, default 0=identity
- delta_mark stores per-bin gain (was 0/1), applied as dm*vlaw_delta
- Calibration from rendersnap2 capture: dual@2000 g≈1.6, but default kept 0
until multi-case validation (BLOCKMAP:285 confirmed: chain runs in render)
- Guard: corpus --compare d=+0.000, vlaw_check PASS
- Captured datasets in /tmp/opencode/{rendersnap2_dual,snap_t1k_b1f_1000,...}
This commit is contained in:
@@ -249,7 +249,9 @@ static void process_band_structural(
|
|||||||
double kfc = static_cast<double>(band.fc) / (sample_rate / 2.0) * (nbin - 1);
|
double kfc = static_cast<double>(band.fc) / (sample_rate / 2.0) * (nbin - 1);
|
||||||
static thread_local std::vector<float> delta_mark;
|
static thread_local std::vector<float> delta_mark;
|
||||||
delta_mark.assign(nbin, 0.0f);
|
delta_mark.assign(nbin, 0.0f);
|
||||||
// Δ distance factor: template-local gain, env-tunable RT_DELTA_DIST (0=flat 6.92)
|
// Δ distance factor: template-local gain, env-tunable RT_DELTA_DIST
|
||||||
|
// Calibrated from ph*.npz (dual_b1q_0.5): factor≈3.0, but default OFF
|
||||||
|
// (flat delta) until multi-case validation completes
|
||||||
static const double delta_dist = getenv("RT_DELTA_DIST") ? atof(getenv("RT_DELTA_DIST")) : 0.0;
|
static const double delta_dist = getenv("RT_DELTA_DIST") ? atof(getenv("RT_DELTA_DIST")) : 0.0;
|
||||||
for (size_t k2 = 1; k2 + 1 < nbin; k2++) {
|
for (size_t k2 = 1; k2 + 1 < nbin; k2++) {
|
||||||
if (raw_level[k2] <= 0.25) continue;
|
if (raw_level[k2] <= 0.25) continue;
|
||||||
|
|||||||
Reference in New Issue
Block a user