Average Error: 0.5 → 0.4
Time: 1.8m
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{1}{t}}{\pi}}{\sqrt{(-6 \cdot \left(v \cdot v\right) + 2)_*}} \cdot \frac{1 - 5 \cdot \left(v \cdot v\right)}{1 - v \cdot v}\]
\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{1}{t}}{\pi}}{\sqrt{(-6 \cdot \left(v \cdot v\right) + 2)_*}} \cdot \frac{1 - 5 \cdot \left(v \cdot v\right)}{1 - v \cdot v}
double f(double v, double t) {
        double r49023016 = 1.0;
        double r49023017 = 5.0;
        double r49023018 = v;
        double r49023019 = r49023018 * r49023018;
        double r49023020 = r49023017 * r49023019;
        double r49023021 = r49023016 - r49023020;
        double r49023022 = atan2(1.0, 0.0);
        double r49023023 = t;
        double r49023024 = r49023022 * r49023023;
        double r49023025 = 2.0;
        double r49023026 = 3.0;
        double r49023027 = r49023026 * r49023019;
        double r49023028 = r49023016 - r49023027;
        double r49023029 = r49023025 * r49023028;
        double r49023030 = sqrt(r49023029);
        double r49023031 = r49023024 * r49023030;
        double r49023032 = r49023016 - r49023019;
        double r49023033 = r49023031 * r49023032;
        double r49023034 = r49023021 / r49023033;
        return r49023034;
}

double f(double v, double t) {
        double r49023035 = 1.0;
        double r49023036 = t;
        double r49023037 = r49023035 / r49023036;
        double r49023038 = atan2(1.0, 0.0);
        double r49023039 = r49023037 / r49023038;
        double r49023040 = -6.0;
        double r49023041 = v;
        double r49023042 = r49023041 * r49023041;
        double r49023043 = 2.0;
        double r49023044 = fma(r49023040, r49023042, r49023043);
        double r49023045 = sqrt(r49023044);
        double r49023046 = r49023039 / r49023045;
        double r49023047 = 5.0;
        double r49023048 = r49023047 * r49023042;
        double r49023049 = r49023035 - r49023048;
        double r49023050 = r49023035 - r49023042;
        double r49023051 = r49023049 / r49023050;
        double r49023052 = r49023046 * r49023051;
        return r49023052;
}

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. Using strategy rm
  3. Applied *-un-lft-identity0.5

    \[\leadsto \frac{\color{blue}{1 \cdot \left(1 - 5 \cdot \left(v \cdot v\right)\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)}\]
  4. Applied times-frac0.5

    \[\leadsto \color{blue}{\frac{1}{\left(\pi \cdot t\right) \cdot \sqrt{2 \cdot \left(1 - 3 \cdot \left(v \cdot v\right)\right)}} \cdot \frac{1 - 5 \cdot \left(v \cdot v\right)}{1 - v \cdot v}}\]
  5. Simplified0.4

    \[\leadsto \color{blue}{\frac{\frac{\frac{1}{t}}{\pi}}{\sqrt{(-6 \cdot \left(v \cdot v\right) + 2)_*}}} \cdot \frac{1 - 5 \cdot \left(v \cdot v\right)}{1 - v \cdot v}\]
  6. Final simplification0.4

    \[\leadsto \frac{\frac{\frac{1}{t}}{\pi}}{\sqrt{(-6 \cdot \left(v \cdot v\right) + 2)_*}} \cdot \frac{1 - 5 \cdot \left(v \cdot v\right)}{1 - v \cdot v}\]

Reproduce

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