Average Error: 31.9 → 0.6
Time: 27.5s
Precision: 64
\[\frac{x \cdot x}{y \cdot y} + \frac{z \cdot z}{t \cdot t}\]
\[\frac{1}{\frac{t}{z} \cdot \frac{t}{z}} + \frac{1}{\frac{y}{x} \cdot \frac{y}{x}}\]
\frac{x \cdot x}{y \cdot y} + \frac{z \cdot z}{t \cdot t}
\frac{1}{\frac{t}{z} \cdot \frac{t}{z}} + \frac{1}{\frac{y}{x} \cdot \frac{y}{x}}
double f(double x, double y, double z, double t) {
        double r45112861 = x;
        double r45112862 = r45112861 * r45112861;
        double r45112863 = y;
        double r45112864 = r45112863 * r45112863;
        double r45112865 = r45112862 / r45112864;
        double r45112866 = z;
        double r45112867 = r45112866 * r45112866;
        double r45112868 = t;
        double r45112869 = r45112868 * r45112868;
        double r45112870 = r45112867 / r45112869;
        double r45112871 = r45112865 + r45112870;
        return r45112871;
}

double f(double x, double y, double z, double t) {
        double r45112872 = 1.0;
        double r45112873 = t;
        double r45112874 = z;
        double r45112875 = r45112873 / r45112874;
        double r45112876 = r45112875 * r45112875;
        double r45112877 = r45112872 / r45112876;
        double r45112878 = y;
        double r45112879 = x;
        double r45112880 = r45112878 / r45112879;
        double r45112881 = r45112880 * r45112880;
        double r45112882 = r45112872 / r45112881;
        double r45112883 = r45112877 + r45112882;
        return r45112883;
}

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

Original31.9
Target0.4
Herbie0.6
\[{\left(\frac{x}{y}\right)}^{2} + {\left(\frac{z}{t}\right)}^{2}\]

Derivation

  1. Initial program 31.9

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

    \[\leadsto \color{blue}{\frac{x}{y} \cdot \frac{x}{y} + \frac{z}{t} \cdot \frac{z}{t}}\]
  3. Using strategy rm
  4. Applied clear-num0.4

    \[\leadsto \frac{x}{y} \cdot \color{blue}{\frac{1}{\frac{y}{x}}} + \frac{z}{t} \cdot \frac{z}{t}\]
  5. Applied clear-num0.5

    \[\leadsto \color{blue}{\frac{1}{\frac{y}{x}}} \cdot \frac{1}{\frac{y}{x}} + \frac{z}{t} \cdot \frac{z}{t}\]
  6. Applied frac-times0.5

    \[\leadsto \color{blue}{\frac{1 \cdot 1}{\frac{y}{x} \cdot \frac{y}{x}}} + \frac{z}{t} \cdot \frac{z}{t}\]
  7. Simplified0.5

    \[\leadsto \frac{\color{blue}{1}}{\frac{y}{x} \cdot \frac{y}{x}} + \frac{z}{t} \cdot \frac{z}{t}\]
  8. Using strategy rm
  9. Applied clear-num0.5

    \[\leadsto \frac{1}{\frac{y}{x} \cdot \frac{y}{x}} + \frac{z}{t} \cdot \color{blue}{\frac{1}{\frac{t}{z}}}\]
  10. Applied clear-num0.6

    \[\leadsto \frac{1}{\frac{y}{x} \cdot \frac{y}{x}} + \color{blue}{\frac{1}{\frac{t}{z}}} \cdot \frac{1}{\frac{t}{z}}\]
  11. Applied frac-times0.6

    \[\leadsto \frac{1}{\frac{y}{x} \cdot \frac{y}{x}} + \color{blue}{\frac{1 \cdot 1}{\frac{t}{z} \cdot \frac{t}{z}}}\]
  12. Simplified0.6

    \[\leadsto \frac{1}{\frac{y}{x} \cdot \frac{y}{x}} + \frac{\color{blue}{1}}{\frac{t}{z} \cdot \frac{t}{z}}\]
  13. Final simplification0.6

    \[\leadsto \frac{1}{\frac{t}{z} \cdot \frac{t}{z}} + \frac{1}{\frac{y}{x} \cdot \frac{y}{x}}\]

Reproduce

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

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

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