Average Error: 17.5 → 1.5
Time: 28.4s
Precision: 64
\[\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)}\]
\[\frac{t1}{t1 + u} \cdot \left(\frac{-1}{t1 + u} \cdot v\right)\]
\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)}
\frac{t1}{t1 + u} \cdot \left(\frac{-1}{t1 + u} \cdot v\right)
double f(double u, double v, double t1) {
        double r842326 = t1;
        double r842327 = -r842326;
        double r842328 = v;
        double r842329 = r842327 * r842328;
        double r842330 = u;
        double r842331 = r842326 + r842330;
        double r842332 = r842331 * r842331;
        double r842333 = r842329 / r842332;
        return r842333;
}

double f(double u, double v, double t1) {
        double r842334 = t1;
        double r842335 = u;
        double r842336 = r842334 + r842335;
        double r842337 = r842334 / r842336;
        double r842338 = -1.0;
        double r842339 = r842338 / r842336;
        double r842340 = v;
        double r842341 = r842339 * r842340;
        double r842342 = r842337 * r842341;
        return r842342;
}

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. Initial program 17.5

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

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

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

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

Reproduce

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