\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 \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{\sqrt{1}}{\sqrt[3]{3}} \cdot \cos^{-1} \left(\frac{3 \cdot x}{\left(z \cdot 2\right) \cdot \left(y \cdot 27\right)} \cdot \sqrt{t}\right)\right)\right)double f(double x, double y, double z, double t) {
double r813205 = 1.0;
double r813206 = 3.0;
double r813207 = r813205 / r813206;
double r813208 = x;
double r813209 = y;
double r813210 = 27.0;
double r813211 = r813209 * r813210;
double r813212 = r813208 / r813211;
double r813213 = r813206 * r813212;
double r813214 = z;
double r813215 = 2.0;
double r813216 = r813214 * r813215;
double r813217 = r813213 / r813216;
double r813218 = t;
double r813219 = sqrt(r813218);
double r813220 = r813217 * r813219;
double r813221 = acos(r813220);
double r813222 = r813207 * r813221;
return r813222;
}
double f(double x, double y, double z, double t) {
double r813223 = 1.0;
double r813224 = sqrt(r813223);
double r813225 = 3.0;
double r813226 = cbrt(r813225);
double r813227 = r813226 * r813226;
double r813228 = r813224 / r813227;
double r813229 = r813224 / r813226;
double r813230 = x;
double r813231 = r813225 * r813230;
double r813232 = z;
double r813233 = 2.0;
double r813234 = r813232 * r813233;
double r813235 = y;
double r813236 = 27.0;
double r813237 = r813235 * r813236;
double r813238 = r813234 * r813237;
double r813239 = r813231 / r813238;
double r813240 = t;
double r813241 = sqrt(r813240);
double r813242 = r813239 * r813241;
double r813243 = acos(r813242);
double r813244 = r813229 * r813243;
double r813245 = log1p(r813244);
double r813246 = expm1(r813245);
double r813247 = r813228 * r813246;
return r813247;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.3 |
|---|---|
| Target | 1.2 |
| Herbie | 0.3 |
Initial program 1.3
rmApplied add-cube-cbrt1.3
Applied add-sqr-sqrt1.3
Applied times-frac0.4
Applied associate-*l*0.3
rmApplied associate-*r/0.4
Applied associate-/l/0.3
rmApplied expm1-log1p-u0.3
Final simplification0.3
herbie shell --seed 2020047 +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)))))