Average Error: 28.5 → 0.1
Time: 15.3s
Precision: 64
\[\frac{\left(x \cdot x + y \cdot y\right) - z \cdot z}{y \cdot 2}\]
\[\frac{y - \frac{z - x}{\frac{y}{z + x}}}{2}\]
\frac{\left(x \cdot x + y \cdot y\right) - z \cdot z}{y \cdot 2}
\frac{y - \frac{z - x}{\frac{y}{z + x}}}{2}
double f(double x, double y, double z) {
        double r538549 = x;
        double r538550 = r538549 * r538549;
        double r538551 = y;
        double r538552 = r538551 * r538551;
        double r538553 = r538550 + r538552;
        double r538554 = z;
        double r538555 = r538554 * r538554;
        double r538556 = r538553 - r538555;
        double r538557 = 2.0;
        double r538558 = r538551 * r538557;
        double r538559 = r538556 / r538558;
        return r538559;
}

double f(double x, double y, double z) {
        double r538560 = y;
        double r538561 = z;
        double r538562 = x;
        double r538563 = r538561 - r538562;
        double r538564 = r538561 + r538562;
        double r538565 = r538560 / r538564;
        double r538566 = r538563 / r538565;
        double r538567 = r538560 - r538566;
        double r538568 = 2.0;
        double r538569 = r538567 / r538568;
        return r538569;
}

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

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

Derivation

  1. Initial program 28.5

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

    \[\leadsto \color{blue}{\frac{y - \frac{z - x}{\frac{y}{z + x}}}{2}}\]
  3. Final simplification0.1

    \[\leadsto \frac{y - \frac{z - x}{\frac{y}{z + x}}}{2}\]

Reproduce

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