\frac{x \cdot \left(y - z\right)}{t - z}\left(x \cdot \frac{\sqrt[3]{y - z} \cdot \sqrt[3]{y - z}}{\sqrt[3]{t - z} \cdot \sqrt[3]{t - z}}\right) \cdot \frac{\sqrt[3]{\sqrt[3]{y - z} \cdot \sqrt[3]{y - z}} \cdot \sqrt[3]{\sqrt[3]{y - z}}}{\sqrt[3]{t - z}}double f(double x, double y, double z, double t) {
double r439092 = x;
double r439093 = y;
double r439094 = z;
double r439095 = r439093 - r439094;
double r439096 = r439092 * r439095;
double r439097 = t;
double r439098 = r439097 - r439094;
double r439099 = r439096 / r439098;
return r439099;
}
double f(double x, double y, double z, double t) {
double r439100 = x;
double r439101 = y;
double r439102 = z;
double r439103 = r439101 - r439102;
double r439104 = cbrt(r439103);
double r439105 = r439104 * r439104;
double r439106 = t;
double r439107 = r439106 - r439102;
double r439108 = cbrt(r439107);
double r439109 = r439108 * r439108;
double r439110 = r439105 / r439109;
double r439111 = r439100 * r439110;
double r439112 = cbrt(r439105);
double r439113 = cbrt(r439104);
double r439114 = r439112 * r439113;
double r439115 = r439114 / r439108;
double r439116 = r439111 * r439115;
return r439116;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 11.6 |
|---|---|
| Target | 2.2 |
| Herbie | 1.4 |
Initial program 11.6
rmApplied *-un-lft-identity11.6
Applied times-frac2.2
Simplified2.2
rmApplied add-cube-cbrt3.2
Applied add-cube-cbrt2.9
Applied times-frac2.9
Applied associate-*r*1.1
rmApplied add-cube-cbrt1.2
Applied cbrt-prod1.4
Final simplification1.4
herbie shell --seed 2019208
(FPCore (x y z t)
:name "Graphics.Rendering.Chart.Plot.AreaSpots:renderAreaSpots4D from Chart-1.5.3"
:precision binary64
:herbie-target
(/ x (/ (- t z) (- y z)))
(/ (* x (- y z)) (- t z)))