qr_r
std.linalg.qr_r · Level L4The triangular factor R of A = Q·R, upper triangular with a positive diagonal.
Signature
qr_r(A: f64[n+k, n]) → f64[n, n]
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.qr(A)[1], signs fixedto 80 digits (100-digit arithmetic), on all 40 test cases. - All 894 float64 results inside the running error bound; the closest uses 3% of it.
- Interpreter and NumPy backend return bit-identical results.
- correctly rounded (the float64 nearest the exact value)
- 61%
- bit-equal to the NumPy formula in float64
- 100%
- largest error, in units in the last place
- 58
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
R's diagonal is made positive, which makes the factorization unique. The reference is Householder QR; the exact check reaches the same factors through the Cholesky factor of AᵀA, so two different algorithms have to agree.
Identity
sha256:8a1abc51e5e24eb3b01bb072c59087ed8e015ac0cf116006a38f072dfe16093aThe semantic hash of the graph. It changes when the program changes, and never when only its documentation does.
Control handle
- Symbol
- Ω:std.linalg.qr_r · Ω:qr_r
- Pins
sha256:4bb1871a6839764c2ea671c726c262280008bd127b2622c80531110b609b8dbbthis graph alone- Evidence
sha256:e3a40582bc7206e72b3f15c209bfd61c39e8f37a15253310897ec08660df74cbthe 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.