Average Error: 33.9 → 0.5
Time: 17.7s
Precision: 64
\[\frac{x \cdot x}{y \cdot y} + \frac{z \cdot z}{t \cdot t}\]
\[\frac{z}{t} \cdot \frac{z}{t} + \frac{1}{\frac{y}{x} \cdot \left(y \cdot \frac{1}{x}\right)}\]
\frac{x \cdot x}{y \cdot y} + \frac{z \cdot z}{t \cdot t}
\frac{z}{t} \cdot \frac{z}{t} + \frac{1}{\frac{y}{x} \cdot \left(y \cdot \frac{1}{x}\right)}
double f(double x, double y, double z, double t) {
        double r778016 = x;
        double r778017 = r778016 * r778016;
        double r778018 = y;
        double r778019 = r778018 * r778018;
        double r778020 = r778017 / r778019;
        double r778021 = z;
        double r778022 = r778021 * r778021;
        double r778023 = t;
        double r778024 = r778023 * r778023;
        double r778025 = r778022 / r778024;
        double r778026 = r778020 + r778025;
        return r778026;
}

double f(double x, double y, double z, double t) {
        double r778027 = z;
        double r778028 = t;
        double r778029 = r778027 / r778028;
        double r778030 = r778029 * r778029;
        double r778031 = 1.0;
        double r778032 = y;
        double r778033 = x;
        double r778034 = r778032 / r778033;
        double r778035 = r778031 / r778033;
        double r778036 = r778032 * r778035;
        double r778037 = r778034 * r778036;
        double r778038 = r778031 / r778037;
        double r778039 = r778030 + r778038;
        return r778039;
}

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.5
\[{\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.2

    \[\leadsto \color{blue}{\frac{x}{\frac{y \cdot y}{x}} + \frac{z}{t} \cdot \frac{z}{t}}\]
  3. Using strategy rm
  4. Applied *-un-lft-identity13.2

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

    \[\leadsto \frac{x}{\color{blue}{\frac{y}{1} \cdot \frac{y}{x}}} + \frac{z}{t} \cdot \frac{z}{t}\]
  6. Applied associate-/r*0.4

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

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

    \[\leadsto \color{blue}{\frac{1}{\frac{\frac{y}{x}}{\frac{x}{y}}}} + \frac{z}{t} \cdot \frac{z}{t}\]
  10. Using strategy rm
  11. Applied div-inv0.5

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

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

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

Reproduce

herbie shell --seed 2019174 
(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))))