x - \frac{\left(y \cdot 2\right) \cdot z}{\left(z \cdot 2\right) \cdot z - y \cdot t}x - \frac{y \cdot 2}{2 \cdot z - \frac{t}{\sqrt[3]{z} \cdot \sqrt[3]{z}} \cdot \frac{y}{\sqrt[3]{z}}}double f(double x, double y, double z, double t) {
double r495129 = x;
double r495130 = y;
double r495131 = 2.0;
double r495132 = r495130 * r495131;
double r495133 = z;
double r495134 = r495132 * r495133;
double r495135 = r495133 * r495131;
double r495136 = r495135 * r495133;
double r495137 = t;
double r495138 = r495130 * r495137;
double r495139 = r495136 - r495138;
double r495140 = r495134 / r495139;
double r495141 = r495129 - r495140;
return r495141;
}
double f(double x, double y, double z, double t) {
double r495142 = x;
double r495143 = y;
double r495144 = 2.0;
double r495145 = r495143 * r495144;
double r495146 = z;
double r495147 = r495144 * r495146;
double r495148 = t;
double r495149 = cbrt(r495146);
double r495150 = r495149 * r495149;
double r495151 = r495148 / r495150;
double r495152 = r495143 / r495149;
double r495153 = r495151 * r495152;
double r495154 = r495147 - r495153;
double r495155 = r495145 / r495154;
double r495156 = r495142 - r495155;
return r495156;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 11.6 |
|---|---|
| Target | 0.1 |
| Herbie | 1.8 |
Initial program 11.6
rmApplied associate-/l*6.6
Taylor expanded around 0 3.1
rmApplied add-cube-cbrt3.2
Applied times-frac1.8
Final simplification1.8
herbie shell --seed 2020065 +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)))))