\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)
\begin{array}{l}
\mathbf{if}\;a \le -1.9093385244904942 \cdot 10^{32} \lor \neg \left(a \le 9.3561614731253176 \cdot 10^{-41}\right):\\
\;\;\;\;\mathsf{fma}\left(a, i \cdot b, -\mathsf{fma}\left(z, b \cdot c, a \cdot \left(x \cdot t\right)\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(x \cdot \left(y \cdot z - t \cdot a\right) - \mathsf{fma}\left(c, z, -a \cdot i\right) \cdot b\right) - b \cdot \mathsf{fma}\left(-a, i, a \cdot i\right)\right) + \left(t \cdot \left(j \cdot c\right) + -1 \cdot \left(i \cdot \left(y \cdot j\right)\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 r121154 = x;
double r121155 = y;
double r121156 = z;
double r121157 = r121155 * r121156;
double r121158 = t;
double r121159 = a;
double r121160 = r121158 * r121159;
double r121161 = r121157 - r121160;
double r121162 = r121154 * r121161;
double r121163 = b;
double r121164 = c;
double r121165 = r121164 * r121156;
double r121166 = i;
double r121167 = r121166 * r121159;
double r121168 = r121165 - r121167;
double r121169 = r121163 * r121168;
double r121170 = r121162 - r121169;
double r121171 = j;
double r121172 = r121164 * r121158;
double r121173 = r121166 * r121155;
double r121174 = r121172 - r121173;
double r121175 = r121171 * r121174;
double r121176 = r121170 + r121175;
return r121176;
}
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
double r121177 = a;
double r121178 = -1.9093385244904942e+32;
bool r121179 = r121177 <= r121178;
double r121180 = 9.356161473125318e-41;
bool r121181 = r121177 <= r121180;
double r121182 = !r121181;
bool r121183 = r121179 || r121182;
double r121184 = i;
double r121185 = b;
double r121186 = r121184 * r121185;
double r121187 = z;
double r121188 = c;
double r121189 = r121185 * r121188;
double r121190 = x;
double r121191 = t;
double r121192 = r121190 * r121191;
double r121193 = r121177 * r121192;
double r121194 = fma(r121187, r121189, r121193);
double r121195 = -r121194;
double r121196 = fma(r121177, r121186, r121195);
double r121197 = j;
double r121198 = r121188 * r121191;
double r121199 = y;
double r121200 = r121184 * r121199;
double r121201 = r121198 - r121200;
double r121202 = r121197 * r121201;
double r121203 = r121196 + r121202;
double r121204 = r121199 * r121187;
double r121205 = r121191 * r121177;
double r121206 = r121204 - r121205;
double r121207 = r121190 * r121206;
double r121208 = r121177 * r121184;
double r121209 = -r121208;
double r121210 = fma(r121188, r121187, r121209);
double r121211 = r121210 * r121185;
double r121212 = r121207 - r121211;
double r121213 = -r121177;
double r121214 = fma(r121213, r121184, r121208);
double r121215 = r121185 * r121214;
double r121216 = r121212 - r121215;
double r121217 = r121197 * r121188;
double r121218 = r121191 * r121217;
double r121219 = -1.0;
double r121220 = r121199 * r121197;
double r121221 = r121184 * r121220;
double r121222 = r121219 * r121221;
double r121223 = r121218 + r121222;
double r121224 = r121216 + r121223;
double r121225 = r121183 ? r121203 : r121224;
return r121225;
}



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
if a < -1.9093385244904942e+32 or 9.356161473125318e-41 < a Initial program 16.1
Taylor expanded around inf 13.5
Simplified13.5
if -1.9093385244904942e+32 < a < 9.356161473125318e-41Initial program 9.2
rmApplied prod-diff9.2
Applied distribute-lft-in9.2
Applied associate--r+9.2
Simplified9.2
rmApplied add-cube-cbrt9.6
Applied associate-*l*9.6
rmApplied sub-neg9.6
Applied distribute-lft-in9.6
Applied distribute-lft-in9.6
Simplified8.9
Simplified8.7
Taylor expanded around inf 8.1
Final simplification10.3
herbie shell --seed 2020024 +o rules:numerics
(FPCore (x y z t a b c i j)
:name "Linear.Matrix:det33 from linear-1.19.1.3"
:precision binary64
(+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (* j (- (* c t) (* i y)))))