residual_unconverged
std.linalg.residual_unconverged · Level L1Whether x still misses A·x = b, with A given as its off-diagonal part R and diagonal d: ‖b − R·x − d⊙x‖² above 10⁻²⁰·‖b‖² (a relative residual of 10⁻¹⁰), as 1 or 0. The condition jacobi_solve loops on.
[ ‖b − R·x − d⊙x‖² > 10⁻²⁰·‖b‖² ]
Signature
residual_unconverged(x: f64[k], R: f64[k, k], b: f64[k], d: f64[k]) → f64[]
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.
- Equal to the reference
float(sum((b - (R @ x + d * x))**2) > 1e-20 * sum(b**2))in exact rational arithmetic, on all 40 test cases. - All 40 float64 results are exact: the error is zero.
- Interpreter and NumPy backend return bit-identical results.
Accuracy in detail
- correctly rounded (the float64 nearest the exact value)
- 100%
- bit-equal to the NumPy formula in float64
- 100%
- largest error, in units in the last place
- 0
Identity
sha256:a23db14fdf78f6161052c75e5e90a4870d4f7b8be478d78dd2150b9f428f245aThe semantic hash of the graph. It changes when the program changes, and never when only its documentation does.