const fn reciprocal_precision<F: Float>() -> u16
Expand description
u_n
for different precisions (with N-1 half-width iterations).
W0 is the precision of C u_0 = (3/4 - 1/sqrt(2) + 2^-W0) * 2^HW
Estimated with bc:
define half1(un) { return 2.0 * (un + un^2) / 2.0^hw + 1.0; }
define half2(un) { return 2.0 * un / 2.0^hw + 2.0; }
define full1(un) { return 4.0 * (un + 3.01) / 2.0^hw + 2.0 * (un + 3.01)^2 + 4.0; }
define full2(un) { return 4.0 * (un + 3.01) / 2.0^hw + 8.0; }
| f32 (0 + 3) | f32 (2 + 1) | f64 (3 + 1) | f128 (4 + 1)
u_0 | < 184224974 | < 2812.1 | < 184224974 | < 791240234244348797
u_1 | < 15804007 | < 242.7 | < 15804007 | < 67877681371350440
u_2 | < 116308 | < 2.81 | < 116308 | < 499533100252317
u_3 | < 7.31 | | < 7.31 | < 27054456580
u_4 | | | | < 80.4
Final (U_N) | same as u_3 | < 72 | < 218 | < 13920
Add 2 to U_N
due to final decrement.