\frac{1 - 5 \cdot \left(v \cdot v\right)}{\left(\left(\pi \cdot t\right) \cdot \sqrt{2 \cdot \left(1 - 3 \cdot \left(v \cdot v\right)\right)}\right) \cdot \left(1 - v \cdot v\right)}\frac{\frac{\frac{\mathsf{fma}\left(v \cdot v, -5, 1\right)}{\pi}}{t}}{\mathsf{fma}\left(\sqrt{\mathsf{fma}\left(6, v \cdot \left(-v\right), 2\right)}, v \cdot \left(-v\right), \sqrt{\mathsf{fma}\left(6, v \cdot \left(-v\right), 2\right)}\right)}double f(double v, double t) {
double r8014216 = 1.0;
double r8014217 = 5.0;
double r8014218 = v;
double r8014219 = r8014218 * r8014218;
double r8014220 = r8014217 * r8014219;
double r8014221 = r8014216 - r8014220;
double r8014222 = atan2(1.0, 0.0);
double r8014223 = t;
double r8014224 = r8014222 * r8014223;
double r8014225 = 2.0;
double r8014226 = 3.0;
double r8014227 = r8014226 * r8014219;
double r8014228 = r8014216 - r8014227;
double r8014229 = r8014225 * r8014228;
double r8014230 = sqrt(r8014229);
double r8014231 = r8014224 * r8014230;
double r8014232 = r8014216 - r8014219;
double r8014233 = r8014231 * r8014232;
double r8014234 = r8014221 / r8014233;
return r8014234;
}
double f(double v, double t) {
double r8014235 = v;
double r8014236 = r8014235 * r8014235;
double r8014237 = -5.0;
double r8014238 = 1.0;
double r8014239 = fma(r8014236, r8014237, r8014238);
double r8014240 = atan2(1.0, 0.0);
double r8014241 = r8014239 / r8014240;
double r8014242 = t;
double r8014243 = r8014241 / r8014242;
double r8014244 = 6.0;
double r8014245 = -r8014235;
double r8014246 = r8014235 * r8014245;
double r8014247 = 2.0;
double r8014248 = fma(r8014244, r8014246, r8014247);
double r8014249 = sqrt(r8014248);
double r8014250 = fma(r8014249, r8014246, r8014249);
double r8014251 = r8014243 / r8014250;
return r8014251;
}



Bits error versus v



Bits error versus t
Initial program 0.5
Simplified0.3
Final simplification0.3
herbie shell --seed 2019162 +o rules:numerics
(FPCore (v t)
:name "Falkner and Boettcher, Equation (20:1,3)"
(/ (- 1 (* 5 (* v v))) (* (* (* PI t) (sqrt (* 2 (- 1 (* 3 (* v v)))))) (- 1 (* v v)))))