nx_matrix_eig_gate.nx
buildroot/runtime/nx_matrix_eig_gate.nx
about
nx_matrix_eig_gate.nx -- AM1: DOES THE SYMMETRIC EIGENSOLVER ACTUALLY SOLVE, AND CAN IT REFUSE?
The done-rule was pre-declared on /compare/appliedmath before a line of the solver was written:
"reconstructing the matrix from its factors returns the original within the declared bound, the
eigenvalues of a known symmetric matrix match their exact values, and a singular matrix is reported
singular rather than inverted"
so these teeth are the rule being met rather than a rule written to fit what the code happens to do.
EVERY TOOTH IS AN INVARIANT OF THE EIGENPROBLEM, NOT A STORED ANSWER. Trace equals the sum of the
eigenvalues; a diagonal matrix has its own diagonal as its spectrum; eigenvectors of a symmetric matrix
are orthonormal; and the residual max|AV - VL| is the bound the reference libraries publish. A stored
golden vector would record that the author agreed with the code on one afternoon; these hold for any
correct implementation and fail for any wrong one.
license_tier: ORIGINAL expect_exit: 0
dependencies 3 imports · 0 importers
imports: syscalls.nxnx_matrix.nxnx_gate_verdict.nx
imported by: nobody (leaf or entry point)
call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown
structs
| none |
consts
| 20 | const EG_Q: i64 = 16384 |
| 24 | const EG_TOL: i64 = 64 |
| 27 | const EG_RESID_MAX: i64 = 96 |
functions
| 29 | func eg_abs(v: i64) -> i64 { if v < 0 { return 0 - v } return v } called by 1: main |
| 31 | func main() -> i64 |