24mm13: cascade helpers decoded (prefix-sum + x0.5 + pairwise-average = hierarchical smoothing); op-A 16140 body TBD; recurrence ready for numpy closure
This commit is contained in:
@@ -4287,3 +4287,42 @@ mapped-фильтр, строгая валидация ctx по trk==exp(scr)).
|
|||||||
Грабли: адреса-константы в патчах скрипта молча не применялись при чужом
|
Грабли: адреса-константы в патчах скрипта молча не применялись при чужом
|
||||||
отступе — проверять installed-list; DC40=0x1800dc40 (не 0x18000dc40);
|
отступе — проверять installed-list; DC40=0x1800dc40 (не 0x18000dc40);
|
||||||
DIV/DC40/EXPVAR/FN могут быть вне маппинга процесса (пропускать).
|
DIV/DC40/EXPVAR/FN могут быть вне маппинга процесса (пропускать).
|
||||||
|
|
||||||
|
## ============ 24mm13: ХЕЛПЕРЫ КАСКАДА 529c60 ДЕКОДИРОВАНЫ (статика) ============
|
||||||
|
|
||||||
|
Резолв ILT-цепочек (movsxd rax,[1826159a0]=4; lea r10,tbl; jmp [r10+rax*8]):
|
||||||
|
```
|
||||||
|
5355d0.f → 18e0(ILT) → 0x1800032c0 → call 0x180016140(a,b,n2) [векторная,
|
||||||
|
5-й арг из стека — MXCSR-сохраняющая, тело не дочитано]
|
||||||
|
530080.f → 2090(ILT) → 0x180010e40: b[i] += a[i] IN-PLACE (vaddss;
|
||||||
|
a=rcx, b=rdx, store в rdx!)
|
||||||
|
20f0.f → 0x180011580: dst[i] = a[i] + b[i] (vaddss, dst=r8)
|
||||||
|
1850.d → 0x1800025e0: то же в double
|
||||||
|
1a00.f → 0x180004720: dst[i] = xmm1 · src[i]; skip при xmm1∈{0,1}
|
||||||
|
52d920 : dst[i] *= xmm1 (in-place, skip при 1/0 — как ffe0)
|
||||||
|
```
|
||||||
|
Грабли раунда: адреса теряли ноль при ручном наборе (0x180018e0 vs
|
||||||
|
0x1800018e0) И интермиттент пустые чтения soothe_mem.bin (лечится ретраем).
|
||||||
|
|
||||||
|
### Рекуррентия каскада на полосу (порядок вызовов из 529c60):
|
||||||
|
```
|
||||||
|
A: 16140(bands_curve@678, T_old, n2) ; до цикла, семантика ???
|
||||||
|
цикл по [ctx+0x1b0]:
|
||||||
|
a: bands[1+j] += bands[j] ; j=0..n2-2 (префикс!)
|
||||||
|
b: bands[j] *= 0.5 ; j=0..n2-2
|
||||||
|
c: vec6f8[j] = bands[1+j] + bands[j] ; (20f0, dst=r8=6f8)
|
||||||
|
d: bands[1+j] = 0.5 · vec6f8[j] ; (1a00, xmm1=0.5f/d)
|
||||||
|
→ результат пишется в track-буфер полосы (ctx+0x380 таблица)
|
||||||
|
```
|
||||||
|
Замечание: префикс-аккумуляция (a) + деление пополам (b) + попарное
|
||||||
|
усреднение (c,d) — это вычисление ПОЛУСУММ смежных бинов = построение
|
||||||
|
иерархического сглаживания (wavelet/Haar-класс!) поверх спектра.
|
||||||
|
Tin на захватах ≈ trk^5.5 в нотчах — согласуется с накоплением за много
|
||||||
|
кадров такого экспоненциального смешения.
|
||||||
|
|
||||||
|
### Следующий шаг (финал Этапа B)
|
||||||
|
1. Дочитать 0x180016140 (оп A до цикла — вероятно T_new = α·T_old + β·bands).
|
||||||
|
2. Собрать рекуррентию в numpy, прогнать по 400 живым кадрам
|
||||||
|
(winetrace_casc/chain_samples.pkl: scr→Tin покадрово), подобрать
|
||||||
|
единственные константы из асма (не фитом!), проверить выход == Tin.
|
||||||
|
3. γ=1.760561 затем выводится из замкнутой рекуррентии аналитически.
|
||||||
|
|||||||
Reference in New Issue
Block a user