Average Error: 10.9 → 2.8
Time: 6.3s
Precision: 64
\[x + \frac{y \cdot \left(z - t\right)}{z - a}\]
\[\left(x + \frac{z}{\frac{z - a}{y}}\right) - \frac{t}{\frac{z - a}{y}}\]
x + \frac{y \cdot \left(z - t\right)}{z - a}
\left(x + \frac{z}{\frac{z - a}{y}}\right) - \frac{t}{\frac{z - a}{y}}
double f(double x, double y, double z, double t, double a) {
        double r353195 = x;
        double r353196 = y;
        double r353197 = z;
        double r353198 = t;
        double r353199 = r353197 - r353198;
        double r353200 = r353196 * r353199;
        double r353201 = a;
        double r353202 = r353197 - r353201;
        double r353203 = r353200 / r353202;
        double r353204 = r353195 + r353203;
        return r353204;
}

double f(double x, double y, double z, double t, double a) {
        double r353205 = x;
        double r353206 = z;
        double r353207 = a;
        double r353208 = r353206 - r353207;
        double r353209 = y;
        double r353210 = r353208 / r353209;
        double r353211 = r353206 / r353210;
        double r353212 = r353205 + r353211;
        double r353213 = t;
        double r353214 = r353213 / r353210;
        double r353215 = r353212 - r353214;
        return r353215;
}

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

Derivation

  1. Initial program 10.9

    \[x + \frac{y \cdot \left(z - t\right)}{z - a}\]
  2. Using strategy rm
  3. Applied *-un-lft-identity10.9

    \[\leadsto x + \frac{y \cdot \left(z - t\right)}{\color{blue}{1 \cdot \left(z - a\right)}}\]
  4. Applied times-frac1.4

    \[\leadsto x + \color{blue}{\frac{y}{1} \cdot \frac{z - t}{z - a}}\]
  5. Simplified1.4

    \[\leadsto x + \color{blue}{y} \cdot \frac{z - t}{z - a}\]
  6. Using strategy rm
  7. Applied add-cube-cbrt1.9

    \[\leadsto x + y \cdot \frac{z - t}{\color{blue}{\left(\sqrt[3]{z - a} \cdot \sqrt[3]{z - a}\right) \cdot \sqrt[3]{z - a}}}\]
  8. Applied add-cube-cbrt1.8

    \[\leadsto x + y \cdot \frac{\color{blue}{\left(\sqrt[3]{z - t} \cdot \sqrt[3]{z - t}\right) \cdot \sqrt[3]{z - t}}}{\left(\sqrt[3]{z - a} \cdot \sqrt[3]{z - a}\right) \cdot \sqrt[3]{z - a}}\]
  9. Applied times-frac1.8

    \[\leadsto x + y \cdot \color{blue}{\left(\frac{\sqrt[3]{z - t} \cdot \sqrt[3]{z - t}}{\sqrt[3]{z - a} \cdot \sqrt[3]{z - a}} \cdot \frac{\sqrt[3]{z - t}}{\sqrt[3]{z - a}}\right)}\]
  10. Applied associate-*r*0.6

    \[\leadsto x + \color{blue}{\left(y \cdot \frac{\sqrt[3]{z - t} \cdot \sqrt[3]{z - t}}{\sqrt[3]{z - a} \cdot \sqrt[3]{z - a}}\right) \cdot \frac{\sqrt[3]{z - t}}{\sqrt[3]{z - a}}}\]
  11. Final simplification2.8

    \[\leadsto \left(x + \frac{z}{\frac{z - a}{y}}\right) - \frac{t}{\frac{z - a}{y}}\]

Reproduce

herbie shell --seed 1978988140 
(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))))