Average Error: 11.6 → 0.1
Time: 12.7s
Precision: 64
\[x - \frac{\left(y \cdot 2\right) \cdot z}{\left(z \cdot 2\right) \cdot z - y \cdot t}\]
\[x - \frac{2}{\frac{z \cdot 2}{y} - \frac{t}{z}}\]
x - \frac{\left(y \cdot 2\right) \cdot z}{\left(z \cdot 2\right) \cdot z - y \cdot t}
x - \frac{2}{\frac{z \cdot 2}{y} - \frac{t}{z}}
double f(double x, double y, double z, double t) {
        double r649411 = x;
        double r649412 = y;
        double r649413 = 2.0;
        double r649414 = r649412 * r649413;
        double r649415 = z;
        double r649416 = r649414 * r649415;
        double r649417 = r649415 * r649413;
        double r649418 = r649417 * r649415;
        double r649419 = t;
        double r649420 = r649412 * r649419;
        double r649421 = r649418 - r649420;
        double r649422 = r649416 / r649421;
        double r649423 = r649411 - r649422;
        return r649423;
}

double f(double x, double y, double z, double t) {
        double r649424 = x;
        double r649425 = 2.0;
        double r649426 = z;
        double r649427 = r649426 * r649425;
        double r649428 = y;
        double r649429 = r649427 / r649428;
        double r649430 = t;
        double r649431 = r649430 / r649426;
        double r649432 = r649429 - r649431;
        double r649433 = r649425 / r649432;
        double r649434 = r649424 - r649433;
        return r649434;
}

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

Original11.6
Target0.1
Herbie0.1
\[x - \frac{1}{\frac{z}{y} - \frac{\frac{t}{2}}{z}}\]

Derivation

  1. Initial program 11.6

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

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

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

Reproduce

herbie shell --seed 2020043 +o rules:numerics
(FPCore (x y z t)
  :name "Numeric.AD.Rank1.Halley:findZero from ad-4.2.4"
  :precision binary64

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

  (- x (/ (* (* y 2) z) (- (* (* z 2) z) (* y t)))))