24mm10: EXP kernel full formula (table-reduced exp + double Cody-Waite sincos, no internal scale); fwd/inv normalizations pinned (s_i=s_f=1); rejected swap/nyq/window-family; q paradox formulated with 3 resolution paths
This commit is contained in:
@@ -4102,3 +4102,62 @@ scr@628 → pack(re=scr,im=0) 2049 пар
|
||||
3. Детекторный каскад lvl_raw→scr (шаги 9–17) не тронут; нужны ACC@7c8
|
||||
(+ WINfreq@658 для контроля окна) — обновить rendersnap2 SLOTS.
|
||||
|
||||
## ============ 24mm10: ЯДРО EXP ДЕКОДИРОВАНО ПОЛНОСТЬЮ; МАСШТАБЫ ОПОВ ЗАФИКСИРОВАНЫ; ПАРАДОКС q ============
|
||||
|
||||
### EXP 1803831c0 — полная формула (скалярный путь = векторная математика)
|
||||
Вход: пары (re,im) плоско; выход in-place. Это ТОЧНАЯ комплексная экспонента:
|
||||
```
|
||||
e^re: t = fma(re, C1, MAGIC), C1=184.665 (=128·log2e!), MAGIC=12582912
|
||||
k = t−MAGIC (округление до целого); таблица T @0x1820fcd80,
|
||||
запись 8 байт (hi/lo extended double), индекс (t&MASK)<<3
|
||||
r_hi = re − k·h, h=0.00541687 (=ln2/128, f32)
|
||||
r = r_hi + k·1.65777e-06 ; Коди–Уэйт вторая компонента
|
||||
p = r + 0.5·r²
|
||||
e^re = T[k].lo + T[k].hi·p (+знаковые фиксы, guard 87.33654=maxarg−2ln2)
|
||||
e^(i·im): |im|→q=round(|im|·(1/π)) через тот же MAGIC; приведение в DOUBLE:
|
||||
rπ = |im| − q·π_hi − q·π_lo (двухкомпонентный π); фолд π/2;
|
||||
минимакс sin/cos в double {2.60578e-06, −1.98096e-4, 3.166e-05,
|
||||
−0.01604}; знаки по квадранту (vmovmskps)
|
||||
out = (e^re·cos(im'), e^re·sin(im')) — БЕЗ КАКОГО-ЛИБО МАСШТАБА ВНУТРИ.
|
||||
```
|
||||
Следствие: аргумент экспоненты в цепи = ровно то, что даёт fwd-RFFT.
|
||||
|
||||
### Нормировки опов (пин по дизасму воркеров)
|
||||
- FWD(1a0c0): сборка X[Nyq]=A0−B0 БЕЗ ×0.5 ⇒ ядро сырое (gain 1 = numpy.rfft);
|
||||
план-масштаб guard `[obj+8]`: у нас [+8]=0 ⇒ ffe0 НЕ вызывается. ИТОГ s_f=1.
|
||||
- INV(4ca80): голова X0/XN бабочка без 0.5, план-масштаб guard `[obj+0xc]`=1
|
||||
⇒ ffe0 ×2^-12 по всему буферу ПОСЛЕ ядра. Ядро сырое (raw IDFT, gain N)
|
||||
⇒ после ffe0: s_i = 1 (ровно numpy.irfft). ИТОГ s_i=1.
|
||||
- Содержимое WINfreq@658 подтверждено по старым дампам (firbufs.npz):
|
||||
периодический Hann(4096), w[1]=5.8827e-07, w[1024]=0.5, w[2047]=0.9999994.
|
||||
|
||||
### Отвергнуто (численно, на ультрачистых кадрах)
|
||||
- Своп направлений (fwd,inv,fwd,inv): rms 82 дБ — исключено.
|
||||
- «Найквост не экспоненцируется»: rms 60 дБ — исключено (EXP накрывает все
|
||||
2049 флоатов включая слот Nyquist.re).
|
||||
- Окно hann^p (p=0.5..4) при q=1: s_F∈[0.81..0.97], не достигает 0.76.
|
||||
- Перестановка («unordered» layout) для кадров класса post-stage: сортировка
|
||||
модулей не совпадает ни с одной стадией (relres 0.28..0.98) — кадры
|
||||
полиморфны, forensics снапшотов исчерпана.
|
||||
|
||||
### ПАРАДОКС q (главный остаток)
|
||||
Все масштабы зафиксированы ⇒ модель обязана быть точной при q=1, однако:
|
||||
q=1 → rms 0.022 дБ; q=0.8 → 0.0065 дБ (медиана, 60 кадров).
|
||||
Более того: наблюдаемый закон cur=trk^γ держится с rms~1e-4 на РАЗНЫХ
|
||||
контентах, а наш сэндвич даёт контент-зависимый наклон s_F (0.82..1.34).
|
||||
⇒ реальный тракт ведёт себя как ПОТОЧЕЧНАЯ степень (диагональный оператор
|
||||
в частотном домене), наш rfft∘fold∘irfft — нет. Гипотеза: ops A–D суть
|
||||
комплексные FFT размера 2048 (не real-4096!) либо содержат zreorder-слой,
|
||||
и срединный линейный оператор L=rfft∘fold∘irfft в действительности близок
|
||||
к диагональному в частотном базисе (например, при интерпретации буфера
|
||||
как 2048 комплексных отсчётов fold-паттерн становится почти тривиальным).
|
||||
|
||||
### Пути закрытия (следующий раунд)
|
||||
1. Статический декод ядер-близнецов (~3.1k строк AVX каждый) — определить
|
||||
размер/тип преобразования и формат укладки окончательно.
|
||||
2. Live: burst-захват rendersnap2 (обновлён, +ACC/WINfreq) с плотным
|
||||
семплированием состояния FIR внутри рендера; сравнить стадии.
|
||||
3. Windows/x64dbg-MCP (если доступен хост): брейкпоинт на 52b644..52b893,
|
||||
дамп FIR после каждого из 6 шагов для одного кадра — закрывает всё.
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user