Average Error: 0.5 → 0.4
Time: 1.2m
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, v \cdot v, 1\right)}{t}}{\pi \cdot \left(1 - v \cdot v\right)}}{\sqrt{2 - \left(v \cdot v\right) \cdot 6}}\]
\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, v \cdot v, 1\right)}{t}}{\pi \cdot \left(1 - v \cdot v\right)}}{\sqrt{2 - \left(v \cdot v\right) \cdot 6}}
double f(double v, double t) {
        double r9486885 = 1.0;
        double r9486886 = 5.0;
        double r9486887 = v;
        double r9486888 = r9486887 * r9486887;
        double r9486889 = r9486886 * r9486888;
        double r9486890 = r9486885 - r9486889;
        double r9486891 = atan2(1.0, 0.0);
        double r9486892 = t;
        double r9486893 = r9486891 * r9486892;
        double r9486894 = 2.0;
        double r9486895 = 3.0;
        double r9486896 = r9486895 * r9486888;
        double r9486897 = r9486885 - r9486896;
        double r9486898 = r9486894 * r9486897;
        double r9486899 = sqrt(r9486898);
        double r9486900 = r9486893 * r9486899;
        double r9486901 = r9486885 - r9486888;
        double r9486902 = r9486900 * r9486901;
        double r9486903 = r9486890 / r9486902;
        return r9486903;
}

double f(double v, double t) {
        double r9486904 = -5.0;
        double r9486905 = v;
        double r9486906 = r9486905 * r9486905;
        double r9486907 = 1.0;
        double r9486908 = fma(r9486904, r9486906, r9486907);
        double r9486909 = t;
        double r9486910 = r9486908 / r9486909;
        double r9486911 = atan2(1.0, 0.0);
        double r9486912 = r9486907 - r9486906;
        double r9486913 = r9486911 * r9486912;
        double r9486914 = r9486910 / r9486913;
        double r9486915 = 2.0;
        double r9486916 = 6.0;
        double r9486917 = r9486906 * r9486916;
        double r9486918 = r9486915 - r9486917;
        double r9486919 = sqrt(r9486918);
        double r9486920 = r9486914 / r9486919;
        return r9486920;
}

Error

Bits error versus v

Bits error versus t

Derivation

  1. Initial program 0.5

    \[\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.4

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

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

Reproduce

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