eigh_vectors
std.linalg.eigh_vectors · Level L3The unit eigenvectors of a symmetric matrix, as columns in ascending order of eigenvalue, each signed so its largest component is positive.
Signature
eigh_vectors(A: f64[k, k]) → f64[k, k]
Structure
The function as NOVA stores it: one box per input, operation and output, and arrows that carry values. A double border marks another library function this one runs — called once, or by Scan once per element; select it to open that function.
- input
- operation
- constant
- call
- output
Verification
- Signature proven by NOVA’s shape solver, for every size.
- Agrees with the reference
np.linalg.eigh(A)[1], signs fixedto 80 digits (100-digit arithmetic), on all 40 test cases. - All 596 float64 results inside the running error bound; the closest uses 9% of it.
- Interpreter and NumPy backend return bit-identical results.
- correctly rounded (the float64 nearest the exact value)
- 12%
- bit-equal to the NumPy formula in float64
- 100%
- largest error, in units in the last place
- 1.3e+3
Large ulp counts appear where a result is tiny next to the numbers it is computed from (after cancellation, for example), so one unit in the last place is tiny too; the absolute error is still inside the bound. Results within their own error of zero are not counted.
Note
An eigenvector is defined only up to sign, so NOVA fixes one. Its error bound grows as neighbouring eigenvalues approach each other, and a case where they are too close, or where the sign itself could flip, is refused rather than given a bound that would not hold.
Identity
sha256:759cc14b29b72c1037259d0c9af33e568201946cdb61ad5ccb6717633c5e9256The semantic hash of the graph. It changes when the program changes, and never when only its documentation does.
Control handle
- Symbol
- Ω:std.linalg.eigh_vectors · Ω:eigh_vectors
- Pins
sha256:e7eb65d1f6fbfc5db7c449d64af27b9f4a58f3cc9237fef1d827a3864d35ed1dthis graph alone- Evidence
sha256:3bf9667531c20be3f5c03e8676f05501958d700d99a9fb4168b7cf33d6cbd60ethe hash of its verification record- Needs
- no capability: a pure function
Through NOVA’s control layer, the symbol launches this function only while the program still matches what it pins: a change to this graph, or to any graph it reaches, needs a migration first.