\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}\;\left(t \cdot c - y \cdot i\right) \cdot j + \left(\left(z \cdot y - t \cdot a\right) \cdot x - \left(z \cdot c - i \cdot a\right) \cdot b\right) = -\infty:\\
\;\;\;\;t \cdot \left(c \cdot j\right) + \left(b \cdot a - j \cdot y\right) \cdot i\\
\mathbf{elif}\;\left(t \cdot c - y \cdot i\right) \cdot j + \left(\left(z \cdot y - t \cdot a\right) \cdot x - \left(z \cdot c - i \cdot a\right) \cdot b\right) \le 1.6067604924853703 \cdot 10^{+307}:\\
\;\;\;\;\left(-j\right) \cdot \left(y \cdot i\right) + \left(\sqrt[3]{\left(t \cdot c\right) \cdot j} \cdot \left(\sqrt[3]{\left(t \cdot c\right) \cdot j} \cdot \sqrt[3]{\left(t \cdot c\right) \cdot j}\right) + \left(\left(z \cdot y - t \cdot a\right) \cdot x - \left(z \cdot c - i \cdot a\right) \cdot b\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t \cdot \left(c \cdot j\right) + \left(b \cdot a - j \cdot y\right) \cdot i\\
\end{array}double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
double r18019117 = x;
double r18019118 = y;
double r18019119 = z;
double r18019120 = r18019118 * r18019119;
double r18019121 = t;
double r18019122 = a;
double r18019123 = r18019121 * r18019122;
double r18019124 = r18019120 - r18019123;
double r18019125 = r18019117 * r18019124;
double r18019126 = b;
double r18019127 = c;
double r18019128 = r18019127 * r18019119;
double r18019129 = i;
double r18019130 = r18019129 * r18019122;
double r18019131 = r18019128 - r18019130;
double r18019132 = r18019126 * r18019131;
double r18019133 = r18019125 - r18019132;
double r18019134 = j;
double r18019135 = r18019127 * r18019121;
double r18019136 = r18019129 * r18019118;
double r18019137 = r18019135 - r18019136;
double r18019138 = r18019134 * r18019137;
double r18019139 = r18019133 + r18019138;
return r18019139;
}
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
double r18019140 = t;
double r18019141 = c;
double r18019142 = r18019140 * r18019141;
double r18019143 = y;
double r18019144 = i;
double r18019145 = r18019143 * r18019144;
double r18019146 = r18019142 - r18019145;
double r18019147 = j;
double r18019148 = r18019146 * r18019147;
double r18019149 = z;
double r18019150 = r18019149 * r18019143;
double r18019151 = a;
double r18019152 = r18019140 * r18019151;
double r18019153 = r18019150 - r18019152;
double r18019154 = x;
double r18019155 = r18019153 * r18019154;
double r18019156 = r18019149 * r18019141;
double r18019157 = r18019144 * r18019151;
double r18019158 = r18019156 - r18019157;
double r18019159 = b;
double r18019160 = r18019158 * r18019159;
double r18019161 = r18019155 - r18019160;
double r18019162 = r18019148 + r18019161;
double r18019163 = -inf.0;
bool r18019164 = r18019162 <= r18019163;
double r18019165 = r18019141 * r18019147;
double r18019166 = r18019140 * r18019165;
double r18019167 = r18019159 * r18019151;
double r18019168 = r18019147 * r18019143;
double r18019169 = r18019167 - r18019168;
double r18019170 = r18019169 * r18019144;
double r18019171 = r18019166 + r18019170;
double r18019172 = 1.6067604924853703e+307;
bool r18019173 = r18019162 <= r18019172;
double r18019174 = -r18019147;
double r18019175 = r18019174 * r18019145;
double r18019176 = r18019142 * r18019147;
double r18019177 = cbrt(r18019176);
double r18019178 = r18019177 * r18019177;
double r18019179 = r18019177 * r18019178;
double r18019180 = r18019179 + r18019161;
double r18019181 = r18019175 + r18019180;
double r18019182 = r18019173 ? r18019181 : r18019171;
double r18019183 = r18019164 ? r18019171 : r18019182;
return r18019183;
}



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
Results
if (+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (* j (- (* c t) (* i y)))) < -inf.0 or 1.6067604924853703e+307 < (+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (* j (- (* c t) (* i y)))) Initial program 59.9
Taylor expanded around inf 35.7
Simplified35.0
if -inf.0 < (+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (* j (- (* c t) (* i y)))) < 1.6067604924853703e+307Initial program 0.7
rmApplied sub-neg0.7
Applied distribute-rgt-in0.7
Applied associate-+r+0.7
rmApplied add-cube-cbrt0.9
Final simplification6.9
herbie shell --seed 2019125
(FPCore (x y z t a b c i j)
:name "Linear.Matrix:det33 from linear-1.19.1.3"
(+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (* j (- (* c t) (* i y)))))