\frac{1}{3} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\frac{\sqrt{1}}{\sqrt[3]{3} \cdot \sqrt[3]{3}} \cdot \left(\frac{\sqrt{1}}{\sqrt[3]{3}} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\right)double f(double x, double y, double z, double t) {
double r758175 = 1.0;
double r758176 = 3.0;
double r758177 = r758175 / r758176;
double r758178 = x;
double r758179 = y;
double r758180 = 27.0;
double r758181 = r758179 * r758180;
double r758182 = r758178 / r758181;
double r758183 = r758176 * r758182;
double r758184 = z;
double r758185 = 2.0;
double r758186 = r758184 * r758185;
double r758187 = r758183 / r758186;
double r758188 = t;
double r758189 = sqrt(r758188);
double r758190 = r758187 * r758189;
double r758191 = acos(r758190);
double r758192 = r758177 * r758191;
return r758192;
}
double f(double x, double y, double z, double t) {
double r758193 = 1.0;
double r758194 = sqrt(r758193);
double r758195 = 3.0;
double r758196 = cbrt(r758195);
double r758197 = r758196 * r758196;
double r758198 = r758194 / r758197;
double r758199 = r758194 / r758196;
double r758200 = x;
double r758201 = y;
double r758202 = 27.0;
double r758203 = r758201 * r758202;
double r758204 = r758200 / r758203;
double r758205 = r758195 * r758204;
double r758206 = z;
double r758207 = 2.0;
double r758208 = r758206 * r758207;
double r758209 = r758205 / r758208;
double r758210 = t;
double r758211 = sqrt(r758210);
double r758212 = r758209 * r758211;
double r758213 = acos(r758212);
double r758214 = r758199 * r758213;
double r758215 = r758198 * r758214;
return r758215;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.2 |
|---|---|
| Target | 1.2 |
| Herbie | 0.3 |
Initial program 1.2
rmApplied add-cube-cbrt1.2
Applied add-sqr-sqrt1.2
Applied times-frac0.3
Applied associate-*l*0.3
Final simplification0.3
herbie shell --seed 2020045 +o rules:numerics
(FPCore (x y z t)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1, D"
:precision binary64
:herbie-target
(/ (acos (* (/ (/ x 27) (* y z)) (/ (sqrt t) (/ 2 3)))) 3)
(* (/ 1 3) (acos (* (/ (* 3 (/ x (* y 27))) (* z 2)) (sqrt t)))))