Average Error: 33.2 → 1.2
Time: 6.6s
Precision: 64
\[\frac{x \cdot x}{y \cdot y} + \frac{z \cdot z}{t \cdot t}\]
\[\left(\left(\sqrt[3]{\sqrt{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x}{y} \cdot \frac{x}{y}\right)}} \cdot \sqrt[3]{\sqrt{\sqrt{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x}{y} \cdot \frac{x}{y}\right)}} \cdot \sqrt{\sqrt{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x}{y} \cdot \frac{x}{y}\right)}}}\right) \cdot \sqrt[3]{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x}{y} \cdot \frac{x}{y}\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x}{y} \cdot \frac{x}{y}\right)}\]
\frac{x \cdot x}{y \cdot y} + \frac{z \cdot z}{t \cdot t}
\left(\left(\sqrt[3]{\sqrt{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x}{y} \cdot \frac{x}{y}\right)}} \cdot \sqrt[3]{\sqrt{\sqrt{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x}{y} \cdot \frac{x}{y}\right)}} \cdot \sqrt{\sqrt{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x}{y} \cdot \frac{x}{y}\right)}}}\right) \cdot \sqrt[3]{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x}{y} \cdot \frac{x}{y}\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x}{y} \cdot \frac{x}{y}\right)}
double f(double x, double y, double z, double t) {
        double r922624 = x;
        double r922625 = r922624 * r922624;
        double r922626 = y;
        double r922627 = r922626 * r922626;
        double r922628 = r922625 / r922627;
        double r922629 = z;
        double r922630 = r922629 * r922629;
        double r922631 = t;
        double r922632 = r922631 * r922631;
        double r922633 = r922630 / r922632;
        double r922634 = r922628 + r922633;
        return r922634;
}

double f(double x, double y, double z, double t) {
        double r922635 = z;
        double r922636 = t;
        double r922637 = r922635 / r922636;
        double r922638 = x;
        double r922639 = y;
        double r922640 = r922638 / r922639;
        double r922641 = r922640 * r922640;
        double r922642 = fma(r922637, r922637, r922641);
        double r922643 = sqrt(r922642);
        double r922644 = cbrt(r922643);
        double r922645 = sqrt(r922643);
        double r922646 = r922645 * r922645;
        double r922647 = cbrt(r922646);
        double r922648 = r922644 * r922647;
        double r922649 = cbrt(r922642);
        double r922650 = r922648 * r922649;
        double r922651 = r922650 * r922649;
        return r922651;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Target

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

Derivation

  1. Initial program 33.2

    \[\frac{x \cdot x}{y \cdot y} + \frac{z \cdot z}{t \cdot t}\]
  2. Simplified18.7

    \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x \cdot x}{y \cdot y}\right)}\]
  3. Using strategy rm
  4. Applied times-frac0.4

    \[\leadsto \mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \color{blue}{\frac{x}{y} \cdot \frac{x}{y}}\right)\]
  5. Using strategy rm
  6. Applied add-cube-cbrt1.2

    \[\leadsto \color{blue}{\left(\sqrt[3]{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x}{y} \cdot \frac{x}{y}\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x}{y} \cdot \frac{x}{y}\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x}{y} \cdot \frac{x}{y}\right)}}\]
  7. Using strategy rm
  8. Applied add-sqr-sqrt1.2

    \[\leadsto \left(\sqrt[3]{\color{blue}{\sqrt{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x}{y} \cdot \frac{x}{y}\right)} \cdot \sqrt{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x}{y} \cdot \frac{x}{y}\right)}}} \cdot \sqrt[3]{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x}{y} \cdot \frac{x}{y}\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x}{y} \cdot \frac{x}{y}\right)}\]
  9. Applied cbrt-prod1.2

    \[\leadsto \left(\color{blue}{\left(\sqrt[3]{\sqrt{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x}{y} \cdot \frac{x}{y}\right)}} \cdot \sqrt[3]{\sqrt{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x}{y} \cdot \frac{x}{y}\right)}}\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x}{y} \cdot \frac{x}{y}\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x}{y} \cdot \frac{x}{y}\right)}\]
  10. Using strategy rm
  11. Applied add-sqr-sqrt1.2

    \[\leadsto \left(\left(\sqrt[3]{\sqrt{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x}{y} \cdot \frac{x}{y}\right)}} \cdot \sqrt[3]{\sqrt{\color{blue}{\sqrt{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x}{y} \cdot \frac{x}{y}\right)} \cdot \sqrt{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x}{y} \cdot \frac{x}{y}\right)}}}}\right) \cdot \sqrt[3]{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x}{y} \cdot \frac{x}{y}\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x}{y} \cdot \frac{x}{y}\right)}\]
  12. Applied sqrt-prod1.2

    \[\leadsto \left(\left(\sqrt[3]{\sqrt{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x}{y} \cdot \frac{x}{y}\right)}} \cdot \sqrt[3]{\color{blue}{\sqrt{\sqrt{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x}{y} \cdot \frac{x}{y}\right)}} \cdot \sqrt{\sqrt{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x}{y} \cdot \frac{x}{y}\right)}}}}\right) \cdot \sqrt[3]{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x}{y} \cdot \frac{x}{y}\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x}{y} \cdot \frac{x}{y}\right)}\]
  13. Final simplification1.2

    \[\leadsto \left(\left(\sqrt[3]{\sqrt{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x}{y} \cdot \frac{x}{y}\right)}} \cdot \sqrt[3]{\sqrt{\sqrt{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x}{y} \cdot \frac{x}{y}\right)}} \cdot \sqrt{\sqrt{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x}{y} \cdot \frac{x}{y}\right)}}}\right) \cdot \sqrt[3]{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x}{y} \cdot \frac{x}{y}\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(\frac{z}{t}, \frac{z}{t}, \frac{x}{y} \cdot \frac{x}{y}\right)}\]

Reproduce

herbie shell --seed 2020034 +o rules:numerics
(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))))