Average Error: 27.0 → 28.8
Time: 38.9s
Precision: 64
\[\left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - y1 \cdot i\right)\right) + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c - y1 \cdot a\right)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\]
\[\begin{array}{l} \mathbf{if}\;b \le -4.059251109457473 \cdot 10^{-144}:\\ \;\;\;\;\left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - y1 \cdot i\right)\right) + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c - y1 \cdot a\right)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)\right) + \left(y0 \cdot \left(y3 \cdot \left(j \cdot y5\right)\right) - \left(y0 \cdot \left(y2 \cdot \left(k \cdot y5\right)\right) + y1 \cdot \left(y3 \cdot \left(j \cdot y4\right)\right)\right)\right)\\ \mathbf{elif}\;b \le 1.4370545924555493 \cdot 10^{-134}:\\ \;\;\;\;\left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \left(k \cdot \left(i \cdot \left(z \cdot y1\right)\right) - \left(i \cdot \left(j \cdot \left(y1 \cdot x\right)\right) + y0 \cdot \left(z \cdot \left(k \cdot b\right)\right)\right)\right)\right) + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c - y1 \cdot a\right)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - y1 \cdot i\right)\right) + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c - y1 \cdot a\right)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)\right) - \left(a \cdot \left(y3 \cdot \left(y \cdot y5\right)\right) - \left(y \cdot \left(y3 \cdot \left(y4 \cdot c\right)\right) + y5 \cdot \left(a \cdot \left(y2 \cdot t\right)\right)\right)\right)\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\\ \end{array}\]
\left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - y1 \cdot i\right)\right) + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c - y1 \cdot a\right)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)
\begin{array}{l}
\mathbf{if}\;b \le -4.059251109457473 \cdot 10^{-144}:\\
\;\;\;\;\left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - y1 \cdot i\right)\right) + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c - y1 \cdot a\right)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)\right) + \left(y0 \cdot \left(y3 \cdot \left(j \cdot y5\right)\right) - \left(y0 \cdot \left(y2 \cdot \left(k \cdot y5\right)\right) + y1 \cdot \left(y3 \cdot \left(j \cdot y4\right)\right)\right)\right)\\

\mathbf{elif}\;b \le 1.4370545924555493 \cdot 10^{-134}:\\
\;\;\;\;\left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \left(k \cdot \left(i \cdot \left(z \cdot y1\right)\right) - \left(i \cdot \left(j \cdot \left(y1 \cdot x\right)\right) + y0 \cdot \left(z \cdot \left(k \cdot b\right)\right)\right)\right)\right) + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c - y1 \cdot a\right)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\\

\mathbf{else}:\\
\;\;\;\;\left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - y1 \cdot i\right)\right) + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c - y1 \cdot a\right)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)\right) - \left(a \cdot \left(y3 \cdot \left(y \cdot y5\right)\right) - \left(y \cdot \left(y3 \cdot \left(y4 \cdot c\right)\right) + y5 \cdot \left(a \cdot \left(y2 \cdot t\right)\right)\right)\right)\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\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 y0, double y1, double y2, double y3, double y4, double y5) {
        double r155189 = x;
        double r155190 = y;
        double r155191 = r155189 * r155190;
        double r155192 = z;
        double r155193 = t;
        double r155194 = r155192 * r155193;
        double r155195 = r155191 - r155194;
        double r155196 = a;
        double r155197 = b;
        double r155198 = r155196 * r155197;
        double r155199 = c;
        double r155200 = i;
        double r155201 = r155199 * r155200;
        double r155202 = r155198 - r155201;
        double r155203 = r155195 * r155202;
        double r155204 = j;
        double r155205 = r155189 * r155204;
        double r155206 = k;
        double r155207 = r155192 * r155206;
        double r155208 = r155205 - r155207;
        double r155209 = y0;
        double r155210 = r155209 * r155197;
        double r155211 = y1;
        double r155212 = r155211 * r155200;
        double r155213 = r155210 - r155212;
        double r155214 = r155208 * r155213;
        double r155215 = r155203 - r155214;
        double r155216 = y2;
        double r155217 = r155189 * r155216;
        double r155218 = y3;
        double r155219 = r155192 * r155218;
        double r155220 = r155217 - r155219;
        double r155221 = r155209 * r155199;
        double r155222 = r155211 * r155196;
        double r155223 = r155221 - r155222;
        double r155224 = r155220 * r155223;
        double r155225 = r155215 + r155224;
        double r155226 = r155193 * r155204;
        double r155227 = r155190 * r155206;
        double r155228 = r155226 - r155227;
        double r155229 = y4;
        double r155230 = r155229 * r155197;
        double r155231 = y5;
        double r155232 = r155231 * r155200;
        double r155233 = r155230 - r155232;
        double r155234 = r155228 * r155233;
        double r155235 = r155225 + r155234;
        double r155236 = r155193 * r155216;
        double r155237 = r155190 * r155218;
        double r155238 = r155236 - r155237;
        double r155239 = r155229 * r155199;
        double r155240 = r155231 * r155196;
        double r155241 = r155239 - r155240;
        double r155242 = r155238 * r155241;
        double r155243 = r155235 - r155242;
        double r155244 = r155206 * r155216;
        double r155245 = r155204 * r155218;
        double r155246 = r155244 - r155245;
        double r155247 = r155229 * r155211;
        double r155248 = r155231 * r155209;
        double r155249 = r155247 - r155248;
        double r155250 = r155246 * r155249;
        double r155251 = r155243 + r155250;
        return r155251;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k, double y0, double y1, double y2, double y3, double y4, double y5) {
        double r155252 = b;
        double r155253 = -4.059251109457473e-144;
        bool r155254 = r155252 <= r155253;
        double r155255 = x;
        double r155256 = y;
        double r155257 = r155255 * r155256;
        double r155258 = z;
        double r155259 = t;
        double r155260 = r155258 * r155259;
        double r155261 = r155257 - r155260;
        double r155262 = a;
        double r155263 = r155262 * r155252;
        double r155264 = c;
        double r155265 = i;
        double r155266 = r155264 * r155265;
        double r155267 = r155263 - r155266;
        double r155268 = r155261 * r155267;
        double r155269 = j;
        double r155270 = r155255 * r155269;
        double r155271 = k;
        double r155272 = r155258 * r155271;
        double r155273 = r155270 - r155272;
        double r155274 = y0;
        double r155275 = r155274 * r155252;
        double r155276 = y1;
        double r155277 = r155276 * r155265;
        double r155278 = r155275 - r155277;
        double r155279 = r155273 * r155278;
        double r155280 = r155268 - r155279;
        double r155281 = y2;
        double r155282 = r155255 * r155281;
        double r155283 = y3;
        double r155284 = r155258 * r155283;
        double r155285 = r155282 - r155284;
        double r155286 = r155274 * r155264;
        double r155287 = r155276 * r155262;
        double r155288 = r155286 - r155287;
        double r155289 = r155285 * r155288;
        double r155290 = r155280 + r155289;
        double r155291 = r155259 * r155269;
        double r155292 = r155256 * r155271;
        double r155293 = r155291 - r155292;
        double r155294 = y4;
        double r155295 = r155294 * r155252;
        double r155296 = y5;
        double r155297 = r155296 * r155265;
        double r155298 = r155295 - r155297;
        double r155299 = r155293 * r155298;
        double r155300 = r155290 + r155299;
        double r155301 = r155259 * r155281;
        double r155302 = r155256 * r155283;
        double r155303 = r155301 - r155302;
        double r155304 = r155294 * r155264;
        double r155305 = r155296 * r155262;
        double r155306 = r155304 - r155305;
        double r155307 = r155303 * r155306;
        double r155308 = r155300 - r155307;
        double r155309 = r155269 * r155296;
        double r155310 = r155283 * r155309;
        double r155311 = r155274 * r155310;
        double r155312 = r155271 * r155296;
        double r155313 = r155281 * r155312;
        double r155314 = r155274 * r155313;
        double r155315 = r155269 * r155294;
        double r155316 = r155283 * r155315;
        double r155317 = r155276 * r155316;
        double r155318 = r155314 + r155317;
        double r155319 = r155311 - r155318;
        double r155320 = r155308 + r155319;
        double r155321 = 1.4370545924555493e-134;
        bool r155322 = r155252 <= r155321;
        double r155323 = r155258 * r155276;
        double r155324 = r155265 * r155323;
        double r155325 = r155271 * r155324;
        double r155326 = r155276 * r155255;
        double r155327 = r155269 * r155326;
        double r155328 = r155265 * r155327;
        double r155329 = r155271 * r155252;
        double r155330 = r155258 * r155329;
        double r155331 = r155274 * r155330;
        double r155332 = r155328 + r155331;
        double r155333 = r155325 - r155332;
        double r155334 = r155268 - r155333;
        double r155335 = r155334 + r155289;
        double r155336 = r155335 + r155299;
        double r155337 = r155336 - r155307;
        double r155338 = r155271 * r155281;
        double r155339 = r155269 * r155283;
        double r155340 = r155338 - r155339;
        double r155341 = r155294 * r155276;
        double r155342 = r155296 * r155274;
        double r155343 = r155341 - r155342;
        double r155344 = r155340 * r155343;
        double r155345 = r155337 + r155344;
        double r155346 = r155256 * r155296;
        double r155347 = r155283 * r155346;
        double r155348 = r155262 * r155347;
        double r155349 = r155283 * r155304;
        double r155350 = r155256 * r155349;
        double r155351 = r155281 * r155259;
        double r155352 = r155262 * r155351;
        double r155353 = r155296 * r155352;
        double r155354 = r155350 + r155353;
        double r155355 = r155348 - r155354;
        double r155356 = r155300 - r155355;
        double r155357 = r155356 + r155344;
        double r155358 = r155322 ? r155345 : r155357;
        double r155359 = r155254 ? r155320 : r155358;
        return r155359;
}

Error

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

Bits error versus y0

Bits error versus y1

Bits error versus y2

Bits error versus y3

Bits error versus y4

Bits error versus y5

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 3 regimes
  2. if b < -4.059251109457473e-144

    1. Initial program 26.2

      \[\left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - y1 \cdot i\right)\right) + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c - y1 \cdot a\right)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\]
    2. Taylor expanded around inf 29.4

      \[\leadsto \left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - y1 \cdot i\right)\right) + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c - y1 \cdot a\right)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)\right) + \color{blue}{\left(y0 \cdot \left(y3 \cdot \left(j \cdot y5\right)\right) - \left(y0 \cdot \left(y2 \cdot \left(k \cdot y5\right)\right) + y1 \cdot \left(y3 \cdot \left(j \cdot y4\right)\right)\right)\right)}\]

    if -4.059251109457473e-144 < b < 1.4370545924555493e-134

    1. Initial program 27.4

      \[\left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - y1 \cdot i\right)\right) + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c - y1 \cdot a\right)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\]
    2. Taylor expanded around inf 27.9

      \[\leadsto \left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \color{blue}{\left(k \cdot \left(i \cdot \left(z \cdot y1\right)\right) - \left(i \cdot \left(j \cdot \left(y1 \cdot x\right)\right) + y0 \cdot \left(z \cdot \left(k \cdot b\right)\right)\right)\right)}\right) + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c - y1 \cdot a\right)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\]

    if 1.4370545924555493e-134 < b

    1. Initial program 27.4

      \[\left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - y1 \cdot i\right)\right) + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c - y1 \cdot a\right)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\]
    2. Taylor expanded around inf 29.3

      \[\leadsto \left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - y1 \cdot i\right)\right) + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c - y1 \cdot a\right)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)\right) - \color{blue}{\left(a \cdot \left(y3 \cdot \left(y \cdot y5\right)\right) - \left(y \cdot \left(y3 \cdot \left(y4 \cdot c\right)\right) + y5 \cdot \left(a \cdot \left(y2 \cdot t\right)\right)\right)\right)}\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\]
  3. Recombined 3 regimes into one program.
  4. Final simplification28.8

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \le -4.059251109457473 \cdot 10^{-144}:\\ \;\;\;\;\left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - y1 \cdot i\right)\right) + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c - y1 \cdot a\right)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)\right) + \left(y0 \cdot \left(y3 \cdot \left(j \cdot y5\right)\right) - \left(y0 \cdot \left(y2 \cdot \left(k \cdot y5\right)\right) + y1 \cdot \left(y3 \cdot \left(j \cdot y4\right)\right)\right)\right)\\ \mathbf{elif}\;b \le 1.4370545924555493 \cdot 10^{-134}:\\ \;\;\;\;\left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \left(k \cdot \left(i \cdot \left(z \cdot y1\right)\right) - \left(i \cdot \left(j \cdot \left(y1 \cdot x\right)\right) + y0 \cdot \left(z \cdot \left(k \cdot b\right)\right)\right)\right)\right) + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c - y1 \cdot a\right)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - y1 \cdot i\right)\right) + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c - y1 \cdot a\right)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)\right) - \left(a \cdot \left(y3 \cdot \left(y \cdot y5\right)\right) - \left(y \cdot \left(y3 \cdot \left(y4 \cdot c\right)\right) + y5 \cdot \left(a \cdot \left(y2 \cdot t\right)\right)\right)\right)\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2020020 
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
  :name "Linear.Matrix:det44 from linear-1.19.1.3"
  :precision binary64
  (+ (- (+ (+ (- (* (- (* x y) (* z t)) (- (* a b) (* c i))) (* (- (* x j) (* z k)) (- (* y0 b) (* y1 i)))) (* (- (* x y2) (* z y3)) (- (* y0 c) (* y1 a)))) (* (- (* t j) (* y k)) (- (* y4 b) (* y5 i)))) (* (- (* t y2) (* y y3)) (- (* y4 c) (* y5 a)))) (* (- (* k y2) (* j y3)) (- (* y4 y1) (* y5 y0)))))