Average Error: 33.9 → 0.9
Time: 22.4s
Precision: 64
\[\frac{x \cdot x}{y \cdot y} + \frac{z \cdot z}{t \cdot t}\]
\[\frac{z}{t} \cdot \frac{z}{t} + \frac{\sqrt[3]{x}}{\sqrt[3]{y}} \cdot \left(\frac{\sqrt[3]{x}}{\frac{\sqrt[3]{y}}{\frac{x}{y}}} \cdot \frac{\sqrt[3]{x}}{\sqrt[3]{y}}\right)\]
\frac{x \cdot x}{y \cdot y} + \frac{z \cdot z}{t \cdot t}
\frac{z}{t} \cdot \frac{z}{t} + \frac{\sqrt[3]{x}}{\sqrt[3]{y}} \cdot \left(\frac{\sqrt[3]{x}}{\frac{\sqrt[3]{y}}{\frac{x}{y}}} \cdot \frac{\sqrt[3]{x}}{\sqrt[3]{y}}\right)
double f(double x, double y, double z, double t) {
        double r435772 = x;
        double r435773 = r435772 * r435772;
        double r435774 = y;
        double r435775 = r435774 * r435774;
        double r435776 = r435773 / r435775;
        double r435777 = z;
        double r435778 = r435777 * r435777;
        double r435779 = t;
        double r435780 = r435779 * r435779;
        double r435781 = r435778 / r435780;
        double r435782 = r435776 + r435781;
        return r435782;
}

double f(double x, double y, double z, double t) {
        double r435783 = z;
        double r435784 = t;
        double r435785 = r435783 / r435784;
        double r435786 = r435785 * r435785;
        double r435787 = x;
        double r435788 = cbrt(r435787);
        double r435789 = y;
        double r435790 = cbrt(r435789);
        double r435791 = r435788 / r435790;
        double r435792 = r435787 / r435789;
        double r435793 = r435790 / r435792;
        double r435794 = r435788 / r435793;
        double r435795 = r435794 * r435791;
        double r435796 = r435791 * r435795;
        double r435797 = r435786 + r435796;
        return r435797;
}

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.9
Target0.4
Herbie0.9
\[{\left(\frac{x}{y}\right)}^{2} + {\left(\frac{z}{t}\right)}^{2}\]

Derivation

  1. Initial program 33.9

    \[\frac{x \cdot x}{y \cdot y} + \frac{z \cdot z}{t \cdot t}\]
  2. Simplified13.1

    \[\leadsto \color{blue}{\mathsf{fma}\left(x, \frac{x}{y \cdot y}, \frac{\frac{z}{t}}{\frac{t}{z}}\right)}\]
  3. Taylor expanded around 0 33.9

    \[\leadsto \color{blue}{\frac{{x}^{2}}{{y}^{2}} + \frac{{z}^{2}}{{t}^{2}}}\]
  4. Simplified0.4

    \[\leadsto \color{blue}{\frac{x}{y} \cdot \frac{x}{y} + \frac{z}{t} \cdot \frac{z}{t}}\]
  5. Using strategy rm
  6. Applied add-cube-cbrt0.8

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

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

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

    \[\leadsto \color{blue}{\left(\frac{x}{y} \cdot \frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{\sqrt[3]{y} \cdot \sqrt[3]{y}}\right) \cdot \frac{\sqrt[3]{x}}{\sqrt[3]{y}}} + \frac{z}{t} \cdot \frac{z}{t}\]
  10. Simplified0.9

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

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

Reproduce

herbie shell --seed 2019174 +o rules:numerics
(FPCore (x y z t)
  :name "Graphics.Rasterific.Svg.PathConverter:arcToSegments from rasterific-svg-0.2.3.1"

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

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