\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 -4.05720677656797186 \cdot 10^{-131}:\\
\;\;\;\;t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + j \cdot \left(27 \cdot k\right)\right)\right)\\
\mathbf{elif}\;t \le 5.71695176928990877 \cdot 10^{-142}:\\
\;\;\;\;t \cdot \left(0 - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + \left(j \cdot 27\right) \cdot k\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t \cdot \left(\left(x \cdot 18\right) \cdot \left(y \cdot z\right) - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \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 r142440 = x;
double r142441 = 18.0;
double r142442 = r142440 * r142441;
double r142443 = y;
double r142444 = r142442 * r142443;
double r142445 = z;
double r142446 = r142444 * r142445;
double r142447 = t;
double r142448 = r142446 * r142447;
double r142449 = a;
double r142450 = 4.0;
double r142451 = r142449 * r142450;
double r142452 = r142451 * r142447;
double r142453 = r142448 - r142452;
double r142454 = b;
double r142455 = c;
double r142456 = r142454 * r142455;
double r142457 = r142453 + r142456;
double r142458 = r142440 * r142450;
double r142459 = i;
double r142460 = r142458 * r142459;
double r142461 = r142457 - r142460;
double r142462 = j;
double r142463 = 27.0;
double r142464 = r142462 * r142463;
double r142465 = k;
double r142466 = r142464 * r142465;
double r142467 = r142461 - r142466;
return r142467;
}
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double r142468 = t;
double r142469 = -4.057206776567972e-131;
bool r142470 = r142468 <= r142469;
double r142471 = x;
double r142472 = 18.0;
double r142473 = r142471 * r142472;
double r142474 = y;
double r142475 = r142473 * r142474;
double r142476 = z;
double r142477 = r142475 * r142476;
double r142478 = a;
double r142479 = 4.0;
double r142480 = r142478 * r142479;
double r142481 = r142477 - r142480;
double r142482 = r142468 * r142481;
double r142483 = b;
double r142484 = c;
double r142485 = r142483 * r142484;
double r142486 = r142471 * r142479;
double r142487 = i;
double r142488 = r142486 * r142487;
double r142489 = j;
double r142490 = 27.0;
double r142491 = k;
double r142492 = r142490 * r142491;
double r142493 = r142489 * r142492;
double r142494 = r142488 + r142493;
double r142495 = r142485 - r142494;
double r142496 = r142482 + r142495;
double r142497 = 5.716951769289909e-142;
bool r142498 = r142468 <= r142497;
double r142499 = 0.0;
double r142500 = r142499 - r142480;
double r142501 = r142468 * r142500;
double r142502 = r142489 * r142490;
double r142503 = r142502 * r142491;
double r142504 = r142488 + r142503;
double r142505 = r142485 - r142504;
double r142506 = r142501 + r142505;
double r142507 = r142474 * r142476;
double r142508 = r142473 * r142507;
double r142509 = r142508 - r142480;
double r142510 = r142468 * r142509;
double r142511 = r142510 + r142505;
double r142512 = r142498 ? r142506 : r142511;
double r142513 = r142470 ? r142496 : r142512;
return r142513;
}



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
Results
if t < -4.057206776567972e-131Initial program 3.4
Simplified3.4
rmApplied associate-*l*3.4
if -4.057206776567972e-131 < t < 5.716951769289909e-142Initial program 10.3
Simplified10.3
Taylor expanded around 0 6.8
if 5.716951769289909e-142 < t Initial program 3.6
Simplified3.6
rmApplied associate-*l*4.1
Final simplification4.8
herbie shell --seed 2020018
(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)))