Average Error: 29.2 → 0.2
Time: 14.2s
Precision: 64
\[\frac{\left(x \cdot x + y \cdot y\right) - z \cdot z}{y \cdot 2}\]
\[\frac{y - \frac{z - x}{y} \cdot \left(x + z\right)}{2}\]
\frac{\left(x \cdot x + y \cdot y\right) - z \cdot z}{y \cdot 2}
\frac{y - \frac{z - x}{y} \cdot \left(x + z\right)}{2}
double f(double x, double y, double z) {
        double r537452 = x;
        double r537453 = r537452 * r537452;
        double r537454 = y;
        double r537455 = r537454 * r537454;
        double r537456 = r537453 + r537455;
        double r537457 = z;
        double r537458 = r537457 * r537457;
        double r537459 = r537456 - r537458;
        double r537460 = 2.0;
        double r537461 = r537454 * r537460;
        double r537462 = r537459 / r537461;
        return r537462;
}

double f(double x, double y, double z) {
        double r537463 = y;
        double r537464 = z;
        double r537465 = x;
        double r537466 = r537464 - r537465;
        double r537467 = r537466 / r537463;
        double r537468 = r537465 + r537464;
        double r537469 = r537467 * r537468;
        double r537470 = r537463 - r537469;
        double r537471 = 2.0;
        double r537472 = r537470 / r537471;
        return r537472;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original29.2
Target0.2
Herbie0.2
\[y \cdot 0.5 - \left(\frac{0.5}{y} \cdot \left(z + x\right)\right) \cdot \left(z - x\right)\]

Derivation

  1. Initial program 29.2

    \[\frac{\left(x \cdot x + y \cdot y\right) - z \cdot z}{y \cdot 2}\]
  2. Simplified0.2

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

    \[\leadsto \frac{y - \frac{z - x}{\frac{y}{\color{blue}{1 \cdot \left(z + x\right)}}}}{2}\]
  5. Applied *-un-lft-identity0.2

    \[\leadsto \frac{y - \frac{z - x}{\frac{\color{blue}{1 \cdot y}}{1 \cdot \left(z + x\right)}}}{2}\]
  6. Applied times-frac0.2

    \[\leadsto \frac{y - \frac{z - x}{\color{blue}{\frac{1}{1} \cdot \frac{y}{z + x}}}}{2}\]
  7. Applied *-un-lft-identity0.2

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

    \[\leadsto \frac{y - \color{blue}{\frac{1}{\frac{1}{1}} \cdot \frac{z - x}{\frac{y}{z + x}}}}{2}\]
  9. Simplified0.2

    \[\leadsto \frac{y - \color{blue}{1} \cdot \frac{z - x}{\frac{y}{z + x}}}{2}\]
  10. Simplified0.2

    \[\leadsto \frac{y - 1 \cdot \color{blue}{\left(\frac{z - x}{y} \cdot \left(x + z\right)\right)}}{2}\]
  11. Final simplification0.2

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

Reproduce

herbie shell --seed 2019195 
(FPCore (x y z)
  :name "Diagrams.TwoD.Apollonian:initialConfig from diagrams-contrib-1.3.0.5, A"

  :herbie-target
  (- (* y 0.5) (* (* (/ 0.5 y) (+ z x)) (- z x)))

  (/ (- (+ (* x x) (* y y)) (* z z)) (* y 2.0)))