Average Error: 10.8 → 1.4
Time: 4.6s
Precision: 64
\[x + \frac{y \cdot \left(z - t\right)}{z - a}\]
\[x + \frac{y}{\frac{z - a}{z - t}}\]
x + \frac{y \cdot \left(z - t\right)}{z - a}
x + \frac{y}{\frac{z - a}{z - t}}
double f(double x, double y, double z, double t, double a) {
        double r584845 = x;
        double r584846 = y;
        double r584847 = z;
        double r584848 = t;
        double r584849 = r584847 - r584848;
        double r584850 = r584846 * r584849;
        double r584851 = a;
        double r584852 = r584847 - r584851;
        double r584853 = r584850 / r584852;
        double r584854 = r584845 + r584853;
        return r584854;
}

double f(double x, double y, double z, double t, double a) {
        double r584855 = x;
        double r584856 = y;
        double r584857 = z;
        double r584858 = a;
        double r584859 = r584857 - r584858;
        double r584860 = t;
        double r584861 = r584857 - r584860;
        double r584862 = r584859 / r584861;
        double r584863 = r584856 / r584862;
        double r584864 = r584855 + r584863;
        return r584864;
}

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

Derivation

  1. Initial program 10.8

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

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

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

Reproduce

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

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

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