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
+6 -6
View File
@@ -257,8 +257,8 @@ static inline void fir_min_phase_52b3cd_internal(float* scr, size_t nbin) {
// per-frame band ACC_i vectors for step 10 (dc40).
void chain_9_19(float* bands, float* tmp6f8, float* accVec,
const float* warp, const float* att, const float* rel,
size_t nbin) {
const float* warp, const float* att, const float* rel,
size_t nbin) {
// pre: LOG#1 140980 logf on [678i] 52a63a (BLOCKMAP:629) — before 9a
for (size_t i = 0; i < nbin; i++) bands[i] = std::log(std::max(bands[i], 1e-30f));
// 9a: vec698 *= (1 - param87c) → zero при дефолтах (param=1.0)
@@ -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)
for (size_t i = 0; i < nbin; i++) {
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);
}
// 10: vec6f8 = bands - ACC_i dc40 tbl@5407c8 (BLOCKMAP:596)
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
// 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++) {
if (i < nbin/2) tmp6f8[i] += att[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)
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)
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));