midrank
std.stats.midrank · Level L1Midranks, 1 for the smallest value, with tied values sharing the average of the ranks they span. Each value's midrank is the number of values below it plus (the number equal to it + 1)/2, counted by exact comparisons of every pair.
Signature
midrank(x: f64[n]) → f64[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.
- Equal to the reference
sort, then give each run of equal values the average of its ranksin exact rational arithmetic, on all 40 test cases. - All 168 float64 results are exact: the error is zero.
- Interpreter and NumPy backend return bit-identical results.
- 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:3c7f8532fa2522266f2b271fb454cedb041b54a0eafbf7c85e5f9cb645a55d70The semantic hash of the graph. It changes when the program changes, and never when only its documentation does.
Control handle
- Symbol
- Ω:std.stats.midrank · Ω:midrank
- Pins
sha256:9ebf20c6ffcaacdc06749d21624dccae7a6fb7888852002b5e5baee4c9119347this graph alone- Evidence
sha256:fcf09164aa31b9bccbc3ac2e28fd59e844c9d354e1bc93131ad803377aad6575the 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.