Average Error: 10.9 → 1.2
Time: 11.9s
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 r404008 = x;
        double r404009 = y;
        double r404010 = z;
        double r404011 = t;
        double r404012 = r404010 - r404011;
        double r404013 = r404009 * r404012;
        double r404014 = a;
        double r404015 = r404014 - r404011;
        double r404016 = r404013 / r404015;
        double r404017 = r404008 + r404016;
        return r404017;
}

double f(double x, double y, double z, double t, double a) {
        double r404018 = x;
        double r404019 = y;
        double r404020 = a;
        double r404021 = t;
        double r404022 = r404020 - r404021;
        double r404023 = z;
        double r404024 = r404023 - r404021;
        double r404025 = r404022 / r404024;
        double r404026 = r404019 / r404025;
        double r404027 = r404018 + r404026;
        return r404027;
}

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.9
Target1.2
Herbie1.2
\[x + \frac{y}{\frac{a - t}{z - t}}\]

Derivation

  1. Initial program 10.9

    \[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 2019303 
(FPCore (x y z t a)
  :name "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisTicks from plot-0.2.3.4, B"
  :precision binary64

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

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