Average Error: 18.4 → 1.1
Time: 16.2s
Precision: 64
\[\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)}\]
\[-\frac{\frac{t1}{t1 + u} \cdot v}{t1 + u}\]
\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)}
-\frac{\frac{t1}{t1 + u} \cdot v}{t1 + u}
double f(double u, double v, double t1) {
        double r23208 = t1;
        double r23209 = -r23208;
        double r23210 = v;
        double r23211 = r23209 * r23210;
        double r23212 = u;
        double r23213 = r23208 + r23212;
        double r23214 = r23213 * r23213;
        double r23215 = r23211 / r23214;
        return r23215;
}

double f(double u, double v, double t1) {
        double r23216 = t1;
        double r23217 = u;
        double r23218 = r23216 + r23217;
        double r23219 = r23216 / r23218;
        double r23220 = v;
        double r23221 = r23219 * r23220;
        double r23222 = r23221 / r23218;
        double r23223 = -r23222;
        return r23223;
}

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 18.4

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

    \[\leadsto \color{blue}{\frac{t1}{\left(u + t1\right) \cdot \left(t1 + u\right)} \cdot \left(-v\right)}\]
  3. Using strategy rm
  4. Applied pow116.1

    \[\leadsto \frac{t1}{\left(u + t1\right) \cdot \left(t1 + u\right)} \cdot \color{blue}{{\left(-v\right)}^{1}}\]
  5. Applied pow116.1

    \[\leadsto \color{blue}{{\left(\frac{t1}{\left(u + t1\right) \cdot \left(t1 + u\right)}\right)}^{1}} \cdot {\left(-v\right)}^{1}\]
  6. Applied pow-prod-down16.1

    \[\leadsto \color{blue}{{\left(\frac{t1}{\left(u + t1\right) \cdot \left(t1 + u\right)} \cdot \left(-v\right)\right)}^{1}}\]
  7. Simplified1.1

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

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

Reproduce

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