Average Error: 18.1 → 0.4
Time: 44.1s
Precision: 64
\[\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)}\]
\[\begin{array}{l} \mathbf{if}\;u \le -1.6542974870370844 \cdot 10^{+86}:\\ \;\;\;\;\frac{-t1 \cdot \frac{v}{t1 + u}}{t1 + u}\\ \mathbf{elif}\;u \le 2.572520919019641 \cdot 10^{-34}:\\ \;\;\;\;\frac{-v}{\frac{t1 + u}{t1} \cdot \left(t1 + u\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{-t1 \cdot \frac{v}{t1 + u}}{t1 + u}\\ \end{array}\]
\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)}
\begin{array}{l}
\mathbf{if}\;u \le -1.6542974870370844 \cdot 10^{+86}:\\
\;\;\;\;\frac{-t1 \cdot \frac{v}{t1 + u}}{t1 + u}\\

\mathbf{elif}\;u \le 2.572520919019641 \cdot 10^{-34}:\\
\;\;\;\;\frac{-v}{\frac{t1 + u}{t1} \cdot \left(t1 + u\right)}\\

\mathbf{else}:\\
\;\;\;\;\frac{-t1 \cdot \frac{v}{t1 + u}}{t1 + u}\\

\end{array}
double f(double u, double v, double t1) {
        double r2631349 = t1;
        double r2631350 = -r2631349;
        double r2631351 = v;
        double r2631352 = r2631350 * r2631351;
        double r2631353 = u;
        double r2631354 = r2631349 + r2631353;
        double r2631355 = r2631354 * r2631354;
        double r2631356 = r2631352 / r2631355;
        return r2631356;
}

double f(double u, double v, double t1) {
        double r2631357 = u;
        double r2631358 = -1.6542974870370844e+86;
        bool r2631359 = r2631357 <= r2631358;
        double r2631360 = t1;
        double r2631361 = v;
        double r2631362 = r2631360 + r2631357;
        double r2631363 = r2631361 / r2631362;
        double r2631364 = r2631360 * r2631363;
        double r2631365 = -r2631364;
        double r2631366 = r2631365 / r2631362;
        double r2631367 = 2.572520919019641e-34;
        bool r2631368 = r2631357 <= r2631367;
        double r2631369 = -r2631361;
        double r2631370 = r2631362 / r2631360;
        double r2631371 = r2631370 * r2631362;
        double r2631372 = r2631369 / r2631371;
        double r2631373 = r2631368 ? r2631372 : r2631366;
        double r2631374 = r2631359 ? r2631366 : r2631373;
        return r2631374;
}

Error

Bits error versus u

Bits error versus v

Bits error versus t1

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if u < -1.6542974870370844e+86 or 2.572520919019641e-34 < u

    1. Initial program 14.4

      \[\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)}\]
    2. Using strategy rm
    3. Applied times-frac1.3

      \[\leadsto \color{blue}{\frac{-t1}{t1 + u} \cdot \frac{v}{t1 + u}}\]
    4. Using strategy rm
    5. Applied associate-*l/0.2

      \[\leadsto \color{blue}{\frac{\left(-t1\right) \cdot \frac{v}{t1 + u}}{t1 + u}}\]

    if -1.6542974870370844e+86 < u < 2.572520919019641e-34

    1. Initial program 21.4

      \[\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)}\]
    2. Using strategy rm
    3. Applied times-frac1.3

      \[\leadsto \color{blue}{\frac{-t1}{t1 + u} \cdot \frac{v}{t1 + u}}\]
    4. Using strategy rm
    5. Applied neg-mul-11.3

      \[\leadsto \frac{\color{blue}{-1 \cdot t1}}{t1 + u} \cdot \frac{v}{t1 + u}\]
    6. Applied associate-/l*1.4

      \[\leadsto \color{blue}{\frac{-1}{\frac{t1 + u}{t1}}} \cdot \frac{v}{t1 + u}\]
    7. Using strategy rm
    8. Applied frac-times0.6

      \[\leadsto \color{blue}{\frac{-1 \cdot v}{\frac{t1 + u}{t1} \cdot \left(t1 + u\right)}}\]
    9. Simplified0.6

      \[\leadsto \frac{\color{blue}{-v}}{\frac{t1 + u}{t1} \cdot \left(t1 + u\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification0.4

    \[\leadsto \begin{array}{l} \mathbf{if}\;u \le -1.6542974870370844 \cdot 10^{+86}:\\ \;\;\;\;\frac{-t1 \cdot \frac{v}{t1 + u}}{t1 + u}\\ \mathbf{elif}\;u \le 2.572520919019641 \cdot 10^{-34}:\\ \;\;\;\;\frac{-v}{\frac{t1 + u}{t1} \cdot \left(t1 + u\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{-t1 \cdot \frac{v}{t1 + u}}{t1 + u}\\ \end{array}\]

Reproduce

herbie shell --seed 2019119 
(FPCore (u v t1)
  :name "Rosa's DopplerBench"
  (/ (* (- t1) v) (* (+ t1 u) (+ t1 u))))