Skip to content

Commit f547869

Browse files
ADR 0002: add runamica15 ext-infomax excerpt
1 parent dc6c7fe commit f547869

1 file changed

Lines changed: 11 additions & 1 deletion

File tree

.context/decisions/0002-adaptive-pdf-families.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,17 @@ single-component families 1/4 require `n_mix=1`. The ground-truth `amica15.f90`/
5252
## Receipts
5353

5454
- `pyAMICA/amica15.f90` select-cases at :1277 (likelihood) / :1449 (score); `dorho=.false.`
55-
at :3682; `do_choose_pdfs` at :594. `runamica15.m` documents `kurt_*` as "for ext. infomax".
55+
at :3682; `do_choose_pdfs` at :594; the `m2sum`/`m4sum` moment buffers are allocated/zeroed
56+
(:590-591) but never accumulated, confirming the dynamic switch is dead code in the binary.
57+
- The extended-Infomax intent comes from the upstream AMICA MATLAB wrapper `runamica15.m`
58+
(sccn/amica), which documents the schedule parameters verbatim (not copied into this repo):
59+
```
60+
% kurt_start for ext. infomax, iter to start kurtosis calc, def=3
61+
% num_kurt for ext. infomax, number of kurtosis calc, def=5
62+
% kurt_int for ext. infomax, iteration interval between calc, def=1
63+
```
64+
and defaults `pdftype=0; kurt_start=3; num_kurt=5; kurt_int=1;`. The super/sub-Gaussian
65+
scores `y +/- tanh(y)` (amica15 codes 1/4) are the classic extended-Infomax nonlinearities.
5666
- `pyAMICA/torch_impl/amica_torch_ng.py`: `_log_pdf_and_deriv`, `_score`, `_choose_pdfs`.
5767
- `pyAMICA/tests/torch_tests/test_ng_pdf_families.py` (formula parity + real-data + opt-in
5868
binary integration behind `AMICA_RUN_FORTRAN=1`).

0 commit comments

Comments
 (0)