Average Error: 10.7 → 1.2
Time: 23.2s
Precision: 64
\[x + \frac{y \cdot \left(z - t\right)}{a - t}\]
\[x + \frac{y}{\frac{a - t}{z - t}}\]
x + \frac{y \cdot \left(z - t\right)}{a - t}
x + \frac{y}{\frac{a - t}{z - t}}
double f(double x, double y, double z, double t, double a) {
        double r29536856 = x;
        double r29536857 = y;
        double r29536858 = z;
        double r29536859 = t;
        double r29536860 = r29536858 - r29536859;
        double r29536861 = r29536857 * r29536860;
        double r29536862 = a;
        double r29536863 = r29536862 - r29536859;
        double r29536864 = r29536861 / r29536863;
        double r29536865 = r29536856 + r29536864;
        return r29536865;
}

double f(double x, double y, double z, double t, double a) {
        double r29536866 = x;
        double r29536867 = y;
        double r29536868 = a;
        double r29536869 = t;
        double r29536870 = r29536868 - r29536869;
        double r29536871 = z;
        double r29536872 = r29536871 - r29536869;
        double r29536873 = r29536870 / r29536872;
        double r29536874 = r29536867 / r29536873;
        double r29536875 = r29536866 + r29536874;
        return r29536875;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Bits error versus a

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original10.7
Target1.2
Herbie1.2
\[x + \frac{y}{\frac{a - t}{z - t}}\]

Derivation

  1. Initial program 10.7

    \[x + \frac{y \cdot \left(z - t\right)}{a - t}\]
  2. Using strategy rm
  3. Applied associate-/l*1.2

    \[\leadsto x + \color{blue}{\frac{y}{\frac{a - t}{z - t}}}\]
  4. Final simplification1.2

    \[\leadsto x + \frac{y}{\frac{a - t}{z - t}}\]

Reproduce

herbie shell --seed 2019171 
(FPCore (x y z t a)
  :name "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisTicks from plot-0.2.3.4, B"

  :herbie-target
  (+ x (/ y (/ (- a t) (- z t))))

  (+ x (/ (* y (- z t)) (- a t))))