Average Error: 18.1 → 0.5
Time: 20.6s
Precision: 64
\[\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)}\]
\[\begin{array}{l} \mathbf{if}\;u \le -3.377507021608042 \cdot 10^{-46}:\\ \;\;\;\;\frac{\frac{-t1}{\frac{t1 + u}{v}}}{t1 + u}\\ \mathbf{elif}\;u \le 1.80210471963447 \cdot 10^{-68}:\\ \;\;\;\;\left(-\frac{\frac{t1}{t1 + u}}{t1 + u}\right) \cdot v\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{-t1}{\frac{t1 + u}{v}}}{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 -3.377507021608042 \cdot 10^{-46}:\\
\;\;\;\;\frac{\frac{-t1}{\frac{t1 + u}{v}}}{t1 + u}\\

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

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

\end{array}
double f(double u, double v, double t1) {
        double r1412267 = t1;
        double r1412268 = -r1412267;
        double r1412269 = v;
        double r1412270 = r1412268 * r1412269;
        double r1412271 = u;
        double r1412272 = r1412267 + r1412271;
        double r1412273 = r1412272 * r1412272;
        double r1412274 = r1412270 / r1412273;
        return r1412274;
}

double f(double u, double v, double t1) {
        double r1412275 = u;
        double r1412276 = -3.377507021608042e-46;
        bool r1412277 = r1412275 <= r1412276;
        double r1412278 = t1;
        double r1412279 = -r1412278;
        double r1412280 = r1412278 + r1412275;
        double r1412281 = v;
        double r1412282 = r1412280 / r1412281;
        double r1412283 = r1412279 / r1412282;
        double r1412284 = r1412283 / r1412280;
        double r1412285 = 1.80210471963447e-68;
        bool r1412286 = r1412275 <= r1412285;
        double r1412287 = r1412278 / r1412280;
        double r1412288 = r1412287 / r1412280;
        double r1412289 = -r1412288;
        double r1412290 = r1412289 * r1412281;
        double r1412291 = r1412286 ? r1412290 : r1412284;
        double r1412292 = r1412277 ? r1412284 : r1412291;
        return r1412292;
}

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 < -3.377507021608042e-46 or 1.80210471963447e-68 < u

    1. Initial program 14.3

      \[\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 clear-num1.6

      \[\leadsto \frac{-t1}{t1 + u} \cdot \color{blue}{\frac{1}{\frac{t1 + u}{v}}}\]
    6. Using strategy rm
    7. Applied associate-*l/0.7

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

      \[\leadsto \frac{\color{blue}{\frac{-t1}{\frac{t1 + u}{v}}}}{t1 + u}\]

    if -3.377507021608042e-46 < u < 1.80210471963447e-68

    1. Initial program 23.9

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

      \[\leadsto \color{blue}{\frac{-t1}{t1 + u} \cdot \frac{v}{t1 + u}}\]
    4. Using strategy rm
    5. Applied clear-num2.3

      \[\leadsto \frac{-t1}{t1 + u} \cdot \color{blue}{\frac{1}{\frac{t1 + u}{v}}}\]
    6. Using strategy rm
    7. Applied associate-/r/2.1

      \[\leadsto \frac{-t1}{t1 + u} \cdot \color{blue}{\left(\frac{1}{t1 + u} \cdot v\right)}\]
    8. Applied associate-*r*0.3

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;u \le -3.377507021608042 \cdot 10^{-46}:\\ \;\;\;\;\frac{\frac{-t1}{\frac{t1 + u}{v}}}{t1 + u}\\ \mathbf{elif}\;u \le 1.80210471963447 \cdot 10^{-68}:\\ \;\;\;\;\left(-\frac{\frac{t1}{t1 + u}}{t1 + u}\right) \cdot v\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{-t1}{\frac{t1 + u}{v}}}{t1 + u}\\ \end{array}\]

Reproduce

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