chain_9_19: accVec iteration update, fmt cleanup

This commit is contained in:
2026-08-30 23:23:31 +03:00
parent 281f4079c2
commit d80137c31d
+4 -4
View File
@@ -266,21 +266,21 @@ void chain_9_19(float* bands, float* tmp6f8, float* accVec,
// 9c: DIVIDE dst=678i A=bands B=6f8 1803a06a0 vpermps (BLOCKMAP:580) // 9c: DIVIDE dst=678i A=bands B=6f8 1803a06a0 vpermps (BLOCKMAP:580)
for (size_t i = 0; i < nbin; i++) { for (size_t i = 0; i < nbin; i++) {
float a = bands[i] != 0 ? bands[i] : 1e-30f; float a = bands[i] != 0 ? bands[i] : 1e-30f;
float b = tmp6f8[i] + 0.8f; // 9b proxy float b = tmp6f8[i] + 0.8f;
bands[i] = divide_1803a06a0(a, b); bands[i] = divide_1803a06a0(a, b);
} }
// 10: vec6f8 = bands - ACC_i dc40 tbl@5407c8 (BLOCKMAP:596) // 10: vec6f8 = bands - ACC_i dc40 tbl@5407c8 (BLOCKMAP:596)
for (size_t i = 0; i < nbin; i++) tmp6f8[i] = bands[i] - accVec[i]; for (size_t i = 0; i < nbin; i++) tmp6f8[i] = bands[i] - accVec[i];
// 11: FMA ATT/REL upper/lower 1fa0/1940→3c40 (BLOCKMAP:400) re/im/coef 12B // 11: FMA ATT/REL upper/lower 1fa0/1940→3c40 (BLOCKMAP:400) re/im/coef 12B
// True triples: upper half (0..nbin/2) uses ATT, lower uses REL. When scalar proxy
// we keep split to avoid double-counting.
for (size_t i = 0; i < nbin; i++) { for (size_t i = 0; i < nbin; i++) {
if (i < nbin/2) tmp6f8[i] += att[i] * accVec[i]; if (i < nbin/2) tmp6f8[i] += att[i] * accVec[i];
else tmp6f8[i] += rel[i] * accVec[i]; else tmp6f8[i] += rel[i] * accVec[i];
} }
// Update accVec for steady-state iteration (ACC persists across frames)
for (size_t i = 0; i < nbin; i++) accVec[i] = tmp6f8[i];
// 14: EXP#1 180296c80 expf + +=(-1) th2270 (24mm2 order fix) // 14: EXP#1 180296c80 expf + +=(-1) th2270 (24mm2 order fix)
for (size_t i = 0; i < nbin; i++) bands[i] = expf_180296c80(bands[i]) - 1.0f; for (size_t i = 0; i < nbin; i++) bands[i] = expf_180296c80(bands[i]) - 1.0f;
// 15: array-mul track* th2000 // 15: array-mul track* th2000 (track not in struct; unity proxy)
// 16: *=kWarp 52ae8f + LOG#2 140980 logf 52aefd (BLOCKMAP:638) // 16: *=kWarp 52ae8f + LOG#2 140980 logf 52aefd (BLOCKMAP:638)
for (size_t i = 0; i < nbin; i++) bands[i] *= warp[i]; for (size_t i = 0; i < nbin; i++) bands[i] *= warp[i];
for (size_t i = 0; i < nbin; i++) bands[i] = std::log(std::max(bands[i], 1e-30f)); for (size_t i = 0; i < nbin; i++) bands[i] = std::log(std::max(bands[i], 1e-30f));