\left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k
\begin{array}{l}
\mathbf{if}\;t \le -3.8492526108756578 \cdot 10^{-88}:\\
\;\;\;\;\mathsf{fma}\left(t, \left(\left(x \cdot 18\right) \cdot y\right) \cdot z - a \cdot 4, b \cdot c - \mathsf{fma}\left(x, 4 \cdot i, j \cdot \left(27 \cdot k\right)\right)\right)\\
\mathbf{elif}\;t \le 2.5769923735091747 \cdot 10^{-63}:\\
\;\;\;\;\mathsf{fma}\left(t, 0 - a \cdot 4, b \cdot c - \mathsf{fma}\left(x, 4 \cdot i, \left(j \cdot 27\right) \cdot k\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(t, x \cdot \left(\left(18 \cdot y\right) \cdot z\right) - a \cdot 4, b \cdot c - \mathsf{fma}\left(x, 4 \cdot i, \left(j \cdot 27\right) \cdot k\right)\right)\\
\end{array}double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double r228233 = x;
double r228234 = 18.0;
double r228235 = r228233 * r228234;
double r228236 = y;
double r228237 = r228235 * r228236;
double r228238 = z;
double r228239 = r228237 * r228238;
double r228240 = t;
double r228241 = r228239 * r228240;
double r228242 = a;
double r228243 = 4.0;
double r228244 = r228242 * r228243;
double r228245 = r228244 * r228240;
double r228246 = r228241 - r228245;
double r228247 = b;
double r228248 = c;
double r228249 = r228247 * r228248;
double r228250 = r228246 + r228249;
double r228251 = r228233 * r228243;
double r228252 = i;
double r228253 = r228251 * r228252;
double r228254 = r228250 - r228253;
double r228255 = j;
double r228256 = 27.0;
double r228257 = r228255 * r228256;
double r228258 = k;
double r228259 = r228257 * r228258;
double r228260 = r228254 - r228259;
return r228260;
}
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double r228261 = t;
double r228262 = -3.849252610875658e-88;
bool r228263 = r228261 <= r228262;
double r228264 = x;
double r228265 = 18.0;
double r228266 = r228264 * r228265;
double r228267 = y;
double r228268 = r228266 * r228267;
double r228269 = z;
double r228270 = r228268 * r228269;
double r228271 = a;
double r228272 = 4.0;
double r228273 = r228271 * r228272;
double r228274 = r228270 - r228273;
double r228275 = b;
double r228276 = c;
double r228277 = r228275 * r228276;
double r228278 = i;
double r228279 = r228272 * r228278;
double r228280 = j;
double r228281 = 27.0;
double r228282 = k;
double r228283 = r228281 * r228282;
double r228284 = r228280 * r228283;
double r228285 = fma(r228264, r228279, r228284);
double r228286 = r228277 - r228285;
double r228287 = fma(r228261, r228274, r228286);
double r228288 = 2.5769923735091747e-63;
bool r228289 = r228261 <= r228288;
double r228290 = 0.0;
double r228291 = r228290 - r228273;
double r228292 = r228280 * r228281;
double r228293 = r228292 * r228282;
double r228294 = fma(r228264, r228279, r228293);
double r228295 = r228277 - r228294;
double r228296 = fma(r228261, r228291, r228295);
double r228297 = r228265 * r228267;
double r228298 = r228297 * r228269;
double r228299 = r228264 * r228298;
double r228300 = r228299 - r228273;
double r228301 = fma(r228261, r228300, r228295);
double r228302 = r228289 ? r228296 : r228301;
double r228303 = r228263 ? r228287 : r228302;
return r228303;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a



Bits error versus b



Bits error versus c



Bits error versus i



Bits error versus j



Bits error versus k
if t < -3.849252610875658e-88Initial program 2.7
Simplified2.8
rmApplied associate-*l*2.9
if -3.849252610875658e-88 < t < 2.5769923735091747e-63Initial program 9.1
Simplified9.2
Taylor expanded around 0 6.6
if 2.5769923735091747e-63 < t Initial program 2.0
Simplified2.0
rmApplied associate-*l*2.1
rmApplied associate-*l*3.2
Final simplification4.8
herbie shell --seed 2020020 +o rules:numerics
(FPCore (x y z t a b c i j k)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1"
:precision binary64
(- (- (+ (- (* (* (* (* x 18) y) z) t) (* (* a 4) t)) (* b c)) (* (* x 4) i)) (* (* j 27) k)))