Average Error: 33.8 → 0.5
Time: 6.4s
Precision: 64
\[\frac{x \cdot x}{y \cdot y} + \frac{z \cdot z}{t \cdot t}\]
\[\frac{x}{y} \cdot \frac{x}{y} + \sqrt{\left|\frac{z}{t}\right|} \cdot \left(\sqrt{\left|\frac{z}{t}\right|} \cdot \left|\frac{z}{t}\right|\right)\]
\frac{x \cdot x}{y \cdot y} + \frac{z \cdot z}{t \cdot t}
\frac{x}{y} \cdot \frac{x}{y} + \sqrt{\left|\frac{z}{t}\right|} \cdot \left(\sqrt{\left|\frac{z}{t}\right|} \cdot \left|\frac{z}{t}\right|\right)
double f(double x, double y, double z, double t) {
        double r378686 = x;
        double r378687 = r378686 * r378686;
        double r378688 = y;
        double r378689 = r378688 * r378688;
        double r378690 = r378687 / r378689;
        double r378691 = z;
        double r378692 = r378691 * r378691;
        double r378693 = t;
        double r378694 = r378693 * r378693;
        double r378695 = r378692 / r378694;
        double r378696 = r378690 + r378695;
        return r378696;
}

double f(double x, double y, double z, double t) {
        double r378697 = x;
        double r378698 = y;
        double r378699 = r378697 / r378698;
        double r378700 = r378699 * r378699;
        double r378701 = z;
        double r378702 = t;
        double r378703 = r378701 / r378702;
        double r378704 = fabs(r378703);
        double r378705 = sqrt(r378704);
        double r378706 = r378705 * r378704;
        double r378707 = r378705 * r378706;
        double r378708 = r378700 + r378707;
        return r378708;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original33.8
Target0.4
Herbie0.5
\[{\left(\frac{x}{y}\right)}^{2} + {\left(\frac{z}{t}\right)}^{2}\]

Derivation

  1. Initial program 33.8

    \[\frac{x \cdot x}{y \cdot y} + \frac{z \cdot z}{t \cdot t}\]
  2. Using strategy rm
  3. Applied times-frac18.9

    \[\leadsto \color{blue}{\frac{x}{y} \cdot \frac{x}{y}} + \frac{z \cdot z}{t \cdot t}\]
  4. Using strategy rm
  5. Applied add-sqr-sqrt18.9

    \[\leadsto \frac{x}{y} \cdot \frac{x}{y} + \color{blue}{\sqrt{\frac{z \cdot z}{t \cdot t}} \cdot \sqrt{\frac{z \cdot z}{t \cdot t}}}\]
  6. Simplified18.9

    \[\leadsto \frac{x}{y} \cdot \frac{x}{y} + \color{blue}{\left|\frac{z}{t}\right|} \cdot \sqrt{\frac{z \cdot z}{t \cdot t}}\]
  7. Simplified0.4

    \[\leadsto \frac{x}{y} \cdot \frac{x}{y} + \left|\frac{z}{t}\right| \cdot \color{blue}{\left|\frac{z}{t}\right|}\]
  8. Using strategy rm
  9. Applied add-sqr-sqrt0.5

    \[\leadsto \frac{x}{y} \cdot \frac{x}{y} + \color{blue}{\left(\sqrt{\left|\frac{z}{t}\right|} \cdot \sqrt{\left|\frac{z}{t}\right|}\right)} \cdot \left|\frac{z}{t}\right|\]
  10. Applied associate-*l*0.5

    \[\leadsto \frac{x}{y} \cdot \frac{x}{y} + \color{blue}{\sqrt{\left|\frac{z}{t}\right|} \cdot \left(\sqrt{\left|\frac{z}{t}\right|} \cdot \left|\frac{z}{t}\right|\right)}\]
  11. Simplified0.6

    \[\leadsto \frac{x}{y} \cdot \frac{x}{y} + \sqrt{\left|\frac{z}{t}\right|} \cdot \color{blue}{{\left(\sqrt{\left|\frac{z}{t}\right|}\right)}^{3}}\]
  12. Using strategy rm
  13. Applied cube-mult0.6

    \[\leadsto \frac{x}{y} \cdot \frac{x}{y} + \sqrt{\left|\frac{z}{t}\right|} \cdot \color{blue}{\left(\sqrt{\left|\frac{z}{t}\right|} \cdot \left(\sqrt{\left|\frac{z}{t}\right|} \cdot \sqrt{\left|\frac{z}{t}\right|}\right)\right)}\]
  14. Simplified0.5

    \[\leadsto \frac{x}{y} \cdot \frac{x}{y} + \sqrt{\left|\frac{z}{t}\right|} \cdot \left(\sqrt{\left|\frac{z}{t}\right|} \cdot \color{blue}{\left|\frac{z}{t}\right|}\right)\]
  15. Final simplification0.5

    \[\leadsto \frac{x}{y} \cdot \frac{x}{y} + \sqrt{\left|\frac{z}{t}\right|} \cdot \left(\sqrt{\left|\frac{z}{t}\right|} \cdot \left|\frac{z}{t}\right|\right)\]

Reproduce

herbie shell --seed 2019304 
(FPCore (x y z t)
  :name "Graphics.Rasterific.Svg.PathConverter:arcToSegments from rasterific-svg-0.2.3.1"
  :precision binary64

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

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