Average Error: 0.4 → 0.3
Time: 50.1s
Precision: 64
\[\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(-5, \left(v \cdot v\right), 1\right)}{\pi}}{t \cdot \left(1 - v \cdot v\right)}}{\sqrt{\mathsf{fma}\left(-6, \left(v \cdot v\right), 2\right)}}\]
\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(-5, \left(v \cdot v\right), 1\right)}{\pi}}{t \cdot \left(1 - v \cdot v\right)}}{\sqrt{\mathsf{fma}\left(-6, \left(v \cdot v\right), 2\right)}}
double f(double v, double t) {
        double r5104307 = 1.0;
        double r5104308 = 5.0;
        double r5104309 = v;
        double r5104310 = r5104309 * r5104309;
        double r5104311 = r5104308 * r5104310;
        double r5104312 = r5104307 - r5104311;
        double r5104313 = atan2(1.0, 0.0);
        double r5104314 = t;
        double r5104315 = r5104313 * r5104314;
        double r5104316 = 2.0;
        double r5104317 = 3.0;
        double r5104318 = r5104317 * r5104310;
        double r5104319 = r5104307 - r5104318;
        double r5104320 = r5104316 * r5104319;
        double r5104321 = sqrt(r5104320);
        double r5104322 = r5104315 * r5104321;
        double r5104323 = r5104307 - r5104310;
        double r5104324 = r5104322 * r5104323;
        double r5104325 = r5104312 / r5104324;
        return r5104325;
}

double f(double v, double t) {
        double r5104326 = -5.0;
        double r5104327 = v;
        double r5104328 = r5104327 * r5104327;
        double r5104329 = 1.0;
        double r5104330 = fma(r5104326, r5104328, r5104329);
        double r5104331 = atan2(1.0, 0.0);
        double r5104332 = r5104330 / r5104331;
        double r5104333 = t;
        double r5104334 = r5104329 - r5104328;
        double r5104335 = r5104333 * r5104334;
        double r5104336 = r5104332 / r5104335;
        double r5104337 = -6.0;
        double r5104338 = 2.0;
        double r5104339 = fma(r5104337, r5104328, r5104338);
        double r5104340 = sqrt(r5104339);
        double r5104341 = r5104336 / r5104340;
        return r5104341;
}

Error

Bits error versus v

Bits error versus t

Derivation

  1. Initial program 0.4

    \[\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)}\]
  2. Simplified0.3

    \[\leadsto \color{blue}{\frac{\frac{\frac{\mathsf{fma}\left(-5, \left(v \cdot v\right), 1\right)}{\pi}}{t \cdot \left(1 - v \cdot v\right)}}{\sqrt{\mathsf{fma}\left(-6, \left(v \cdot v\right), 2\right)}}}\]
  3. Final simplification0.3

    \[\leadsto \frac{\frac{\frac{\mathsf{fma}\left(-5, \left(v \cdot v\right), 1\right)}{\pi}}{t \cdot \left(1 - v \cdot v\right)}}{\sqrt{\mathsf{fma}\left(-6, \left(v \cdot v\right), 2\right)}}\]

Reproduce

herbie shell --seed 2019130 +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)))))