\frac{x \cdot \frac{\sin y}{y}}{z}\left(x \cdot \frac{\sqrt[3]{\frac{\sin y}{y}} \cdot \sqrt[3]{\frac{\sin y}{y}}}{\sqrt[3]{z} \cdot \sqrt[3]{z}}\right) \cdot \frac{\sqrt[3]{\frac{\sin y}{y}}}{\sqrt[3]{z}}double f(double x, double y, double z) {
double r437198 = x;
double r437199 = y;
double r437200 = sin(r437199);
double r437201 = r437200 / r437199;
double r437202 = r437198 * r437201;
double r437203 = z;
double r437204 = r437202 / r437203;
return r437204;
}
double f(double x, double y, double z) {
double r437205 = x;
double r437206 = y;
double r437207 = sin(r437206);
double r437208 = r437207 / r437206;
double r437209 = cbrt(r437208);
double r437210 = r437209 * r437209;
double r437211 = z;
double r437212 = cbrt(r437211);
double r437213 = r437212 * r437212;
double r437214 = r437210 / r437213;
double r437215 = r437205 * r437214;
double r437216 = r437209 / r437212;
double r437217 = r437215 * r437216;
return r437217;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 2.6 |
|---|---|
| Target | 0.3 |
| Herbie | 1.5 |
Initial program 2.6
rmApplied *-un-lft-identity2.6
Applied times-frac2.8
Simplified2.8
rmApplied add-cube-cbrt3.6
Applied add-cube-cbrt3.6
Applied times-frac3.7
Applied associate-*r*1.5
Final simplification1.5
herbie shell --seed 2020024
(FPCore (x y z)
:name "Linear.Quaternion:$ctanh from linear-1.19.1.3"
:precision binary64
:herbie-target
(if (< z -4.2173720203427147e-29) (/ (* x (/ 1 (/ y (sin y)))) z) (if (< z 4.446702369113811e+64) (/ x (* z (/ y (sin y)))) (/ (* x (/ 1 (/ y (sin y)))) z)))
(/ (* x (/ (sin y) y)) z))