\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot t}{3}\right) - \frac{a}{b \cdot 3}\begin{array}{l}
\mathbf{if}\;\cos \left(y - \frac{z \cdot t}{3}\right) \le 0.9999999999999932276395497865451034158468:\\
\;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \left(\sqrt[3]{{\left(\log \left(e^{\cos \left(\frac{t \cdot z}{{\left(\sqrt{3}\right)}^{2}}\right)}\right) \cdot \cos \left(1 \cdot y\right) - \sin \left(1 \cdot y\right) \cdot \sin \left(-\frac{t \cdot z}{{\left(\sqrt{3}\right)}^{2}}\right)\right)}^{3}} \cdot \cos \left(\mathsf{fma}\left(-\frac{t}{\sqrt{3}}, \frac{z}{\sqrt{3}}, \frac{t}{\sqrt{3}} \cdot \frac{z}{\sqrt{3}}\right)\right) - \sin \left(\mathsf{fma}\left(1, y, -\frac{t}{\sqrt{3}} \cdot \frac{z}{\sqrt{3}}\right)\right) \cdot \sin \left(\mathsf{fma}\left(-\frac{t}{\sqrt{3}}, \frac{z}{\sqrt{3}}, \frac{t}{\sqrt{3}} \cdot \frac{z}{\sqrt{3}}\right)\right)\right) - \frac{a}{b \cdot 3}\\
\mathbf{else}:\\
\;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \left(1 - \frac{1}{2} \cdot {y}^{2}\right) - \frac{a}{b \cdot 3}\\
\end{array}double f(double x, double y, double z, double t, double a, double b) {
double r688158 = 2.0;
double r688159 = x;
double r688160 = sqrt(r688159);
double r688161 = r688158 * r688160;
double r688162 = y;
double r688163 = z;
double r688164 = t;
double r688165 = r688163 * r688164;
double r688166 = 3.0;
double r688167 = r688165 / r688166;
double r688168 = r688162 - r688167;
double r688169 = cos(r688168);
double r688170 = r688161 * r688169;
double r688171 = a;
double r688172 = b;
double r688173 = r688172 * r688166;
double r688174 = r688171 / r688173;
double r688175 = r688170 - r688174;
return r688175;
}
double f(double x, double y, double z, double t, double a, double b) {
double r688176 = y;
double r688177 = z;
double r688178 = t;
double r688179 = r688177 * r688178;
double r688180 = 3.0;
double r688181 = r688179 / r688180;
double r688182 = r688176 - r688181;
double r688183 = cos(r688182);
double r688184 = 0.9999999999999932;
bool r688185 = r688183 <= r688184;
double r688186 = 2.0;
double r688187 = x;
double r688188 = sqrt(r688187);
double r688189 = r688186 * r688188;
double r688190 = r688178 * r688177;
double r688191 = sqrt(r688180);
double r688192 = 2.0;
double r688193 = pow(r688191, r688192);
double r688194 = r688190 / r688193;
double r688195 = cos(r688194);
double r688196 = exp(r688195);
double r688197 = log(r688196);
double r688198 = 1.0;
double r688199 = r688198 * r688176;
double r688200 = cos(r688199);
double r688201 = r688197 * r688200;
double r688202 = sin(r688199);
double r688203 = -r688194;
double r688204 = sin(r688203);
double r688205 = r688202 * r688204;
double r688206 = r688201 - r688205;
double r688207 = 3.0;
double r688208 = pow(r688206, r688207);
double r688209 = cbrt(r688208);
double r688210 = r688178 / r688191;
double r688211 = -r688210;
double r688212 = r688177 / r688191;
double r688213 = r688210 * r688212;
double r688214 = fma(r688211, r688212, r688213);
double r688215 = cos(r688214);
double r688216 = r688209 * r688215;
double r688217 = -r688213;
double r688218 = fma(r688198, r688176, r688217);
double r688219 = sin(r688218);
double r688220 = sin(r688214);
double r688221 = r688219 * r688220;
double r688222 = r688216 - r688221;
double r688223 = r688189 * r688222;
double r688224 = a;
double r688225 = b;
double r688226 = r688225 * r688180;
double r688227 = r688224 / r688226;
double r688228 = r688223 - r688227;
double r688229 = 0.5;
double r688230 = pow(r688176, r688192);
double r688231 = r688229 * r688230;
double r688232 = r688198 - r688231;
double r688233 = r688189 * r688232;
double r688234 = r688233 - r688227;
double r688235 = r688185 ? r688228 : r688234;
return r688235;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a




Bits error versus b
| Original | 21.1 |
|---|---|
| Target | 19.1 |
| Herbie | 18.4 |
if (cos (- y (/ (* z t) 3.0))) < 0.9999999999999932Initial program 20.3
rmApplied add-sqr-sqrt20.5
Applied times-frac20.4
Applied add-sqr-sqrt45.3
Applied prod-diff45.3
Applied cos-sum45.2
Simplified42.0
Simplified20.3
rmApplied add-cbrt-cube20.4
Simplified20.4
rmApplied fma-udef20.4
Applied cos-sum19.8
Simplified19.8
rmApplied add-log-exp19.8
if 0.9999999999999932 < (cos (- y (/ (* z t) 3.0))) Initial program 22.5
Taylor expanded around 0 15.8
Final simplification18.4
herbie shell --seed 2020001 +o rules:numerics
(FPCore (x y z t a b)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1, K"
:precision binary64
:herbie-target
(if (< z -1.379333748723514e+129) (- (* (* 2 (sqrt x)) (cos (- (/ 1 y) (/ (/ 0.3333333333333333 z) t)))) (/ (/ a 3) b)) (if (< z 3.516290613555987e+106) (- (* (* (sqrt x) 2) (cos (- y (* (/ t 3) z)))) (/ (/ a 3) b)) (- (* (cos (- y (/ (/ 0.3333333333333333 z) t))) (* 2 (sqrt x))) (/ (/ a b) 3))))
(- (* (* 2 (sqrt x)) (cos (- y (/ (* z t) 3)))) (/ a (* b 3))))