Average Error: 11.7 → 0.1
Time: 13.2s
Precision: 64
\[x - \frac{\left(y \cdot 2.0\right) \cdot z}{\left(z \cdot 2.0\right) \cdot z - y \cdot t}\]
\[x - 2.0 \cdot \frac{1}{2.0 \cdot \frac{z}{y} - \frac{t}{z}}\]
x - \frac{\left(y \cdot 2.0\right) \cdot z}{\left(z \cdot 2.0\right) \cdot z - y \cdot t}
x - 2.0 \cdot \frac{1}{2.0 \cdot \frac{z}{y} - \frac{t}{z}}
double f(double x, double y, double z, double t) {
        double r25210136 = x;
        double r25210137 = y;
        double r25210138 = 2.0;
        double r25210139 = r25210137 * r25210138;
        double r25210140 = z;
        double r25210141 = r25210139 * r25210140;
        double r25210142 = r25210140 * r25210138;
        double r25210143 = r25210142 * r25210140;
        double r25210144 = t;
        double r25210145 = r25210137 * r25210144;
        double r25210146 = r25210143 - r25210145;
        double r25210147 = r25210141 / r25210146;
        double r25210148 = r25210136 - r25210147;
        return r25210148;
}

double f(double x, double y, double z, double t) {
        double r25210149 = x;
        double r25210150 = 2.0;
        double r25210151 = 1.0;
        double r25210152 = z;
        double r25210153 = y;
        double r25210154 = r25210152 / r25210153;
        double r25210155 = r25210150 * r25210154;
        double r25210156 = t;
        double r25210157 = r25210156 / r25210152;
        double r25210158 = r25210155 - r25210157;
        double r25210159 = r25210151 / r25210158;
        double r25210160 = r25210150 * r25210159;
        double r25210161 = r25210149 - r25210160;
        return r25210161;
}

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.7
Target0.1
Herbie0.1
\[x - \frac{1}{\frac{z}{y} - \frac{\frac{t}{2.0}}{z}}\]

Derivation

  1. Initial program 11.7

    \[x - \frac{\left(y \cdot 2.0\right) \cdot z}{\left(z \cdot 2.0\right) \cdot z - y \cdot t}\]
  2. Simplified3.0

    \[\leadsto \color{blue}{x - \frac{y}{2.0 \cdot z - \frac{y \cdot t}{z}} \cdot 2.0}\]
  3. Using strategy rm
  4. Applied associate-/l*1.1

    \[\leadsto x - \frac{y}{2.0 \cdot z - \color{blue}{\frac{y}{\frac{z}{t}}}} \cdot 2.0\]
  5. Using strategy rm
  6. Applied clear-num1.2

    \[\leadsto x - \color{blue}{\frac{1}{\frac{2.0 \cdot z - \frac{y}{\frac{z}{t}}}{y}}} \cdot 2.0\]
  7. Taylor expanded around 0 0.1

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

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

Reproduce

herbie shell --seed 2019165 
(FPCore (x y z t)
  :name "Numeric.AD.Rank1.Halley:findZero from ad-4.2.4"

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

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