Average Error: 34.2 → 1.2
Time: 23.6s
Precision: 64
\[\frac{x \cdot x}{y \cdot y} + \frac{z \cdot z}{t \cdot t}\]
\[\left(\left(\sqrt{\sqrt[3]{\mathsf{fma}\left(\frac{x}{y}, \frac{x}{y}, \frac{\frac{z}{t}}{\frac{t}{z}}\right)}} \cdot \sqrt{\sqrt[3]{\mathsf{fma}\left(\frac{x}{y}, \frac{x}{y}, \frac{\frac{z}{t}}{\frac{t}{z}}\right)}}\right) \cdot \sqrt[3]{\mathsf{fma}\left(\frac{x}{y}, \frac{x}{y}, \frac{\frac{z}{t}}{\frac{t}{z}}\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(\frac{x}{y}, \frac{x}{y}, \frac{\frac{z}{t}}{\frac{t}{z}}\right)}\]
\frac{x \cdot x}{y \cdot y} + \frac{z \cdot z}{t \cdot t}
\left(\left(\sqrt{\sqrt[3]{\mathsf{fma}\left(\frac{x}{y}, \frac{x}{y}, \frac{\frac{z}{t}}{\frac{t}{z}}\right)}} \cdot \sqrt{\sqrt[3]{\mathsf{fma}\left(\frac{x}{y}, \frac{x}{y}, \frac{\frac{z}{t}}{\frac{t}{z}}\right)}}\right) \cdot \sqrt[3]{\mathsf{fma}\left(\frac{x}{y}, \frac{x}{y}, \frac{\frac{z}{t}}{\frac{t}{z}}\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(\frac{x}{y}, \frac{x}{y}, \frac{\frac{z}{t}}{\frac{t}{z}}\right)}
double f(double x, double y, double z, double t) {
        double r406355 = x;
        double r406356 = r406355 * r406355;
        double r406357 = y;
        double r406358 = r406357 * r406357;
        double r406359 = r406356 / r406358;
        double r406360 = z;
        double r406361 = r406360 * r406360;
        double r406362 = t;
        double r406363 = r406362 * r406362;
        double r406364 = r406361 / r406363;
        double r406365 = r406359 + r406364;
        return r406365;
}

double f(double x, double y, double z, double t) {
        double r406366 = x;
        double r406367 = y;
        double r406368 = r406366 / r406367;
        double r406369 = z;
        double r406370 = t;
        double r406371 = r406369 / r406370;
        double r406372 = r406370 / r406369;
        double r406373 = r406371 / r406372;
        double r406374 = fma(r406368, r406368, r406373);
        double r406375 = cbrt(r406374);
        double r406376 = sqrt(r406375);
        double r406377 = r406376 * r406376;
        double r406378 = r406377 * r406375;
        double r406379 = r406378 * r406375;
        return r406379;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Target

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

Derivation

  1. Initial program 34.2

    \[\frac{x \cdot x}{y \cdot y} + \frac{z \cdot z}{t \cdot t}\]
  2. Simplified19.4

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

    \[\leadsto \mathsf{fma}\left(\frac{x}{y}, \frac{x}{y}, \color{blue}{\frac{z}{\frac{t \cdot t}{z}}}\right)\]
  5. Simplified3.9

    \[\leadsto \mathsf{fma}\left(\frac{x}{y}, \frac{x}{y}, \frac{z}{\color{blue}{t \cdot \frac{t}{z}}}\right)\]
  6. Using strategy rm
  7. Applied associate-/r*0.4

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

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

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

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

Reproduce

herbie shell --seed 2019303 +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))))