\left(\left(\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4.0\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4.0\right) \cdot i\right) - \left(j \cdot 27.0\right) \cdot k
\begin{array}{l}
\mathbf{if}\;t \le -2.231438472416083 \cdot 10^{-242}:\\
\;\;\;\;\left(\left(\left(z \cdot 18.0\right) \cdot x\right) \cdot y - a \cdot 4.0\right) \cdot t - \left(27.0 \cdot \left(j \cdot k\right) + \left(\left(x \cdot i\right) \cdot 4.0 - c \cdot b\right)\right)\\
\mathbf{elif}\;t \le 4.700365572470833 \cdot 10^{-22}:\\
\;\;\;\;\left(\left(\left(\left(x \cdot \left(y \cdot 18.0\right)\right) \cdot \left(z \cdot t\right) - \left(a \cdot 4.0\right) \cdot t\right) + c \cdot b\right) - \left(4.0 \cdot x\right) \cdot i\right) - \left(27.0 \cdot j\right) \cdot k\\
\mathbf{else}:\\
\;\;\;\;t \cdot \left(\left(y \cdot x\right) \cdot \left(z \cdot 18.0\right) - a \cdot 4.0\right) - \left(\left(\left(x \cdot i\right) \cdot 4.0 - c \cdot b\right) + \left(k \cdot 27.0\right) \cdot j\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 r4521588 = x;
double r4521589 = 18.0;
double r4521590 = r4521588 * r4521589;
double r4521591 = y;
double r4521592 = r4521590 * r4521591;
double r4521593 = z;
double r4521594 = r4521592 * r4521593;
double r4521595 = t;
double r4521596 = r4521594 * r4521595;
double r4521597 = a;
double r4521598 = 4.0;
double r4521599 = r4521597 * r4521598;
double r4521600 = r4521599 * r4521595;
double r4521601 = r4521596 - r4521600;
double r4521602 = b;
double r4521603 = c;
double r4521604 = r4521602 * r4521603;
double r4521605 = r4521601 + r4521604;
double r4521606 = r4521588 * r4521598;
double r4521607 = i;
double r4521608 = r4521606 * r4521607;
double r4521609 = r4521605 - r4521608;
double r4521610 = j;
double r4521611 = 27.0;
double r4521612 = r4521610 * r4521611;
double r4521613 = k;
double r4521614 = r4521612 * r4521613;
double r4521615 = r4521609 - r4521614;
return r4521615;
}
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double r4521616 = t;
double r4521617 = -2.231438472416083e-242;
bool r4521618 = r4521616 <= r4521617;
double r4521619 = z;
double r4521620 = 18.0;
double r4521621 = r4521619 * r4521620;
double r4521622 = x;
double r4521623 = r4521621 * r4521622;
double r4521624 = y;
double r4521625 = r4521623 * r4521624;
double r4521626 = a;
double r4521627 = 4.0;
double r4521628 = r4521626 * r4521627;
double r4521629 = r4521625 - r4521628;
double r4521630 = r4521629 * r4521616;
double r4521631 = 27.0;
double r4521632 = j;
double r4521633 = k;
double r4521634 = r4521632 * r4521633;
double r4521635 = r4521631 * r4521634;
double r4521636 = i;
double r4521637 = r4521622 * r4521636;
double r4521638 = r4521637 * r4521627;
double r4521639 = c;
double r4521640 = b;
double r4521641 = r4521639 * r4521640;
double r4521642 = r4521638 - r4521641;
double r4521643 = r4521635 + r4521642;
double r4521644 = r4521630 - r4521643;
double r4521645 = 4.700365572470833e-22;
bool r4521646 = r4521616 <= r4521645;
double r4521647 = r4521624 * r4521620;
double r4521648 = r4521622 * r4521647;
double r4521649 = r4521619 * r4521616;
double r4521650 = r4521648 * r4521649;
double r4521651 = r4521628 * r4521616;
double r4521652 = r4521650 - r4521651;
double r4521653 = r4521652 + r4521641;
double r4521654 = r4521627 * r4521622;
double r4521655 = r4521654 * r4521636;
double r4521656 = r4521653 - r4521655;
double r4521657 = r4521631 * r4521632;
double r4521658 = r4521657 * r4521633;
double r4521659 = r4521656 - r4521658;
double r4521660 = r4521624 * r4521622;
double r4521661 = r4521660 * r4521621;
double r4521662 = r4521661 - r4521628;
double r4521663 = r4521616 * r4521662;
double r4521664 = r4521633 * r4521631;
double r4521665 = r4521664 * r4521632;
double r4521666 = r4521642 + r4521665;
double r4521667 = r4521663 - r4521666;
double r4521668 = r4521646 ? r4521659 : r4521667;
double r4521669 = r4521618 ? r4521644 : r4521668;
return r4521669;
}



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 < -2.231438472416083e-242Initial program 4.5
Simplified4.4
rmApplied associate-*r*4.3
if -2.231438472416083e-242 < t < 4.700365572470833e-22Initial program 7.8
rmApplied *-un-lft-identity7.8
Applied associate-*r*7.8
Simplified7.8
rmApplied associate-*l*4.2
if 4.700365572470833e-22 < t Initial program 2.0
Simplified2.1
rmApplied associate-*r*2.1
Final simplification3.8
herbie shell --seed 2019165
(FPCore (x y z t a b c i j k)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1"
(- (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i)) (* (* j 27.0) k)))