chain_9_19: accVec iteration update, fmt cleanup
This commit is contained in:
+4
-4
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user