x \cdot \log \left(\frac{x}{y}\right) - zx \cdot \left(\log \left(\frac{\sqrt[3]{x}}{\sqrt[3]{y}}\right) + \log \left(\frac{\sqrt[3]{x}}{\sqrt[3]{\sqrt[3]{y}} \cdot \left(\sqrt[3]{\sqrt[3]{y}} \cdot \sqrt[3]{\sqrt[3]{y}}\right)}\right) \cdot 2\right) - zdouble f(double x, double y, double z) {
double r449155 = x;
double r449156 = y;
double r449157 = r449155 / r449156;
double r449158 = log(r449157);
double r449159 = r449155 * r449158;
double r449160 = z;
double r449161 = r449159 - r449160;
return r449161;
}
double f(double x, double y, double z) {
double r449162 = x;
double r449163 = cbrt(r449162);
double r449164 = y;
double r449165 = cbrt(r449164);
double r449166 = r449163 / r449165;
double r449167 = log(r449166);
double r449168 = cbrt(r449165);
double r449169 = r449168 * r449168;
double r449170 = r449168 * r449169;
double r449171 = r449163 / r449170;
double r449172 = log(r449171);
double r449173 = 2.0;
double r449174 = r449172 * r449173;
double r449175 = r449167 + r449174;
double r449176 = r449162 * r449175;
double r449177 = z;
double r449178 = r449176 - r449177;
return r449178;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 15.3 |
|---|---|
| Target | 7.8 |
| Herbie | 0.2 |
Initial program 15.3
Simplified15.3
rmApplied add-cube-cbrt15.3
Applied add-cube-cbrt15.3
Applied times-frac15.3
Applied log-prod3.6
Simplified0.2
rmApplied add-cube-cbrt0.2
Final simplification0.2
herbie shell --seed 2019179
(FPCore (x y z)
:name "Numeric.SpecFunctions.Extra:bd0 from math-functions-0.1.5.2"
:herbie-target
(if (< y 7.595077799083773e-308) (- (* x (log (/ x y))) z) (- (* x (- (log x) (log y))) z))
(- (* x (log (/ x y))) z))