\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}\;\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 = -\infty:\\
\;\;\;\;\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{elif}\;\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 \le 1.5411638575168675 \cdot 10^{306}:\\
\;\;\;\;\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{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 r119125 = x;
double r119126 = 18.0;
double r119127 = r119125 * r119126;
double r119128 = y;
double r119129 = r119127 * r119128;
double r119130 = z;
double r119131 = r119129 * r119130;
double r119132 = t;
double r119133 = r119131 * r119132;
double r119134 = a;
double r119135 = 4.0;
double r119136 = r119134 * r119135;
double r119137 = r119136 * r119132;
double r119138 = r119133 - r119137;
double r119139 = b;
double r119140 = c;
double r119141 = r119139 * r119140;
double r119142 = r119138 + r119141;
double r119143 = r119125 * r119135;
double r119144 = i;
double r119145 = r119143 * r119144;
double r119146 = r119142 - r119145;
double r119147 = j;
double r119148 = 27.0;
double r119149 = r119147 * r119148;
double r119150 = k;
double r119151 = r119149 * r119150;
double r119152 = r119146 - r119151;
return r119152;
}
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
double r119153 = x;
double r119154 = 18.0;
double r119155 = r119153 * r119154;
double r119156 = y;
double r119157 = r119155 * r119156;
double r119158 = z;
double r119159 = r119157 * r119158;
double r119160 = t;
double r119161 = r119159 * r119160;
double r119162 = a;
double r119163 = 4.0;
double r119164 = r119162 * r119163;
double r119165 = r119164 * r119160;
double r119166 = r119161 - r119165;
double r119167 = b;
double r119168 = c;
double r119169 = r119167 * r119168;
double r119170 = r119166 + r119169;
double r119171 = r119153 * r119163;
double r119172 = i;
double r119173 = r119171 * r119172;
double r119174 = r119170 - r119173;
double r119175 = -inf.0;
bool r119176 = r119174 <= r119175;
double r119177 = 0.0;
double r119178 = r119177 - r119164;
double r119179 = r119163 * r119172;
double r119180 = j;
double r119181 = 27.0;
double r119182 = r119180 * r119181;
double r119183 = k;
double r119184 = r119182 * r119183;
double r119185 = fma(r119153, r119179, r119184);
double r119186 = r119169 - r119185;
double r119187 = fma(r119160, r119178, r119186);
double r119188 = 1.5411638575168675e+306;
bool r119189 = r119174 <= r119188;
double r119190 = r119159 - r119164;
double r119191 = r119181 * r119183;
double r119192 = r119180 * r119191;
double r119193 = fma(r119153, r119179, r119192);
double r119194 = r119169 - r119193;
double r119195 = fma(r119160, r119190, r119194);
double r119196 = r119158 * r119160;
double r119197 = r119157 * r119196;
double r119198 = r119197 - r119165;
double r119199 = r119198 + r119169;
double r119200 = r119199 - r119173;
double r119201 = r119200 - r119184;
double r119202 = r119189 ? r119195 : r119201;
double r119203 = r119176 ? r119187 : r119202;
return r119203;
}



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 (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i)) < -inf.0Initial program 64.0
Simplified64.0
Taylor expanded around 0 33.7
if -inf.0 < (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i)) < 1.5411638575168675e+306Initial program 0.4
Simplified0.4
rmApplied associate-*l*0.4
if 1.5411638575168675e+306 < (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i)) Initial program 60.2
rmApplied associate-*l*33.7
Final simplification3.2
herbie shell --seed 2020100 +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)))