\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 -1.6966996671020817 \cdot 10^{-102} \lor \neg \left(t \le 1.14074283942728159 \cdot 10^{-25}\right):\\
\;\;\;\;\mathsf{fma}\left(t, \left(x \cdot 18\right) \cdot \left(y \cdot z\right) - a \cdot 4, b \cdot c - \mathsf{fma}\left(x, 4 \cdot i, j \cdot \left(27 \cdot k\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot \left(z \cdot t\right) - \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\\
\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 r116787 = x;
double r116788 = 18.0;
double r116789 = r116787 * r116788;
double r116790 = y;
double r116791 = r116789 * r116790;
double r116792 = z;
double r116793 = r116791 * r116792;
double r116794 = t;
double r116795 = r116793 * r116794;
double r116796 = a;
double r116797 = 4.0;
double r116798 = r116796 * r116797;
double r116799 = r116798 * r116794;
double r116800 = r116795 - r116799;
double r116801 = b;
double r116802 = c;
double r116803 = r116801 * r116802;
double r116804 = r116800 + r116803;
double r116805 = r116787 * r116797;
double r116806 = i;
double r116807 = r116805 * r116806;
double r116808 = r116804 - r116807;
double r116809 = j;
double r116810 = 27.0;
double r116811 = r116809 * r116810;
double r116812 = k;
double r116813 = r116811 * r116812;
double r116814 = r116808 - r116813;
return r116814;
}
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double r116815 = t;
double r116816 = -1.6966996671020817e-102;
bool r116817 = r116815 <= r116816;
double r116818 = 1.1407428394272816e-25;
bool r116819 = r116815 <= r116818;
double r116820 = !r116819;
bool r116821 = r116817 || r116820;
double r116822 = x;
double r116823 = 18.0;
double r116824 = r116822 * r116823;
double r116825 = y;
double r116826 = z;
double r116827 = r116825 * r116826;
double r116828 = r116824 * r116827;
double r116829 = a;
double r116830 = 4.0;
double r116831 = r116829 * r116830;
double r116832 = r116828 - r116831;
double r116833 = b;
double r116834 = c;
double r116835 = r116833 * r116834;
double r116836 = i;
double r116837 = r116830 * r116836;
double r116838 = j;
double r116839 = 27.0;
double r116840 = k;
double r116841 = r116839 * r116840;
double r116842 = r116838 * r116841;
double r116843 = fma(r116822, r116837, r116842);
double r116844 = r116835 - r116843;
double r116845 = fma(r116815, r116832, r116844);
double r116846 = r116824 * r116825;
double r116847 = r116826 * r116815;
double r116848 = r116846 * r116847;
double r116849 = r116831 * r116815;
double r116850 = r116848 - r116849;
double r116851 = r116850 + r116835;
double r116852 = r116822 * r116830;
double r116853 = r116852 * r116836;
double r116854 = r116851 - r116853;
double r116855 = r116838 * r116839;
double r116856 = r116855 * r116840;
double r116857 = r116854 - r116856;
double r116858 = r116821 ? r116845 : r116857;
return r116858;
}



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 < -1.6966996671020817e-102 or 1.1407428394272816e-25 < t Initial program 2.4
Simplified2.4
rmApplied associate-*l*2.3
rmApplied associate-*l*2.9
if -1.6966996671020817e-102 < t < 1.1407428394272816e-25Initial program 8.8
rmApplied associate-*l*4.6
Final simplification3.8
herbie shell --seed 2020049 +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)))