(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
: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)))))(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
:precision binary64
(let* ((t_1 (- (* j t) (* k y)))
(t_2 (* y1 (- (* y3 z) (* y2 x))))
(t_3 (- (* y5 a) (* y4 c)))
(t_4 (- (* y1 i) (* y0 b)))
(t_5 (- (* j x) (* k z)))
(t_6 (fma j x (* z (- k))))
(t_7 (- (* y4 b) (* y5 i)))
(t_8 (* t_1 t_7))
(t_9 (- (* y2 t) (* y3 y)))
(t_10 (- (* a b) (* i c)))
(t_11 (- (* k y2) (* j y3)))
(t_12 (- (* y x) (* t z)))
(t_13 (* t_12 c))
(t_14 (* i (- (* y1 t_6) t_13)))
(t_15 (- (* k y) (* j t)))
(t_16 (* j t_4))
(t_17 (* y1 t_5))
(t_18 (- (* y1 y4) (* y5 y0)))
(t_19 (* t_6 (- y0)))
(t_20 (- (* y2 x) (* y3 z)))
(t_21 (* y0 t_20))
(t_22 (- (* y0 c) (* y1 a)))
(t_23
(fma
t_11
t_18
(fma
t_9
t_3
(+
(fma
(fma a t_12 (fma y4 t_1 (* y0 (- (* k z) (* j x)))))
b
(fma t_20 t_22 (* i (- t_17 t_13))))
(* i (* y5 t_15))))))
(t_24
(fma
t_11
t_18
(fma
t_9
t_3
(fma
t_1
(fma b y4 (* y5 (- i)))
(fma
x
(fma y t_10 (fma t_22 y2 t_16))
(* (fma t t_10 (fma t_22 y3 (* k t_4))) (- z)))))))
(t_25 (* y0 (* t_6 b))))
(if (<= y5 -1e+163)
(fma
t_11
t_18
(fma
(fma a t_12 t_19)
b
(+
(+ (* a (* t (* y5 y2))) (+ (* i t_17) (- t_8 (* a (* y1 (* y2 x))))))
(* y3 (- (* a (* y1 z)) (* a (* y5 y)))))))
(if (<= y5 -0.01)
(fma
t_11
t_18
(fma
t_9
t_3
(fma t_20 t_22 (fma t_1 t_7 (* k (* z (- (* y0 b) (* y1 i))))))))
(if (<= y5 -7.294864740819608e-113)
t_23
(if (<= y5 -7.58597788720551e-261)
(fma
t_11
t_18
(fma
t_22
t_20
(fma
i
(fma y1 t_6 (* (* t z) c))
(fma
y
(+
(+ (- (* a (* x b)) (* c (* x i))) (* k (- (* y5 i) (* y4 b))))
(* y3 (- (* y4 c) (* y5 a))))
(fma
t_3
(* y2 t)
(fma t (* j t_7) (* b (- t_19 (* a (* t z))))))))))
(if (<= y5 1.93699319861375e-272)
(fma
t_11
t_18
(fma
t_9
t_3
(fma
y0
(fma c t_20 (* t_6 (- b)))
(fma t_1 t_7 (+ (* a (+ (* t_12 b) t_2)) t_14)))))
(if (<= y5 4.1574090020428107e-234)
t_23
(if (<= y5 6.984235651185248e-181)
t_24
(if (<= y5 1e-8)
(fma
t_11
t_18
(fma
c
t_21
(-
(fma
t_1
t_7
(+
(fma (+ (fma b t_12 (* y5 t_9)) t_2) a t_14)
(* c (* y4 (* y3 y)))))
t_25)))
(if (<= y5 1e+50)
(fma
t_11
t_18
(fma
t_9
t_3
(-
t_8
(-
(+
(* t (* z t_10))
(+ (* k (* z t_4)) (* t_22 (* y3 z))))
(* x (+ (* y t_10) (+ (* y2 t_22) t_16)))))))
(if (<= y5 1e+150)
(fma
t_11
t_18
(fma
c
t_21
(-
(+
(fma
y4
(* b t_1)
(fma
i
(fma t_5 y1 (* c (- (* t z) (* y x))))
(fma
a
(fma b t_12 t_2)
(* y5 (+ (* a t_9) (* i t_15))))))
(* c (* y4 (- (* y3 y) (* y2 t)))))
t_25)))
t_24))))))))))))double code(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) {
return (((((((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)));
}
double code(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 t_1 = (j * t) - (k * y);
double t_2 = y1 * ((y3 * z) - (y2 * x));
double t_3 = (y5 * a) - (y4 * c);
double t_4 = (y1 * i) - (y0 * b);
double t_5 = (j * x) - (k * z);
double t_6 = fma(j, x, (z * -k));
double t_7 = (y4 * b) - (y5 * i);
double t_8 = t_1 * t_7;
double t_9 = (y2 * t) - (y3 * y);
double t_10 = (a * b) - (i * c);
double t_11 = (k * y2) - (j * y3);
double t_12 = (y * x) - (t * z);
double t_13 = t_12 * c;
double t_14 = i * ((y1 * t_6) - t_13);
double t_15 = (k * y) - (j * t);
double t_16 = j * t_4;
double t_17 = y1 * t_5;
double t_18 = (y1 * y4) - (y5 * y0);
double t_19 = t_6 * -y0;
double t_20 = (y2 * x) - (y3 * z);
double t_21 = y0 * t_20;
double t_22 = (y0 * c) - (y1 * a);
double t_23 = fma(t_11, t_18, fma(t_9, t_3, (fma(fma(a, t_12, fma(y4, t_1, (y0 * ((k * z) - (j * x))))), b, fma(t_20, t_22, (i * (t_17 - t_13)))) + (i * (y5 * t_15)))));
double t_24 = fma(t_11, t_18, fma(t_9, t_3, fma(t_1, fma(b, y4, (y5 * -i)), fma(x, fma(y, t_10, fma(t_22, y2, t_16)), (fma(t, t_10, fma(t_22, y3, (k * t_4))) * -z)))));
double t_25 = y0 * (t_6 * b);
double tmp;
if (y5 <= -1e+163) {
tmp = fma(t_11, t_18, fma(fma(a, t_12, t_19), b, (((a * (t * (y5 * y2))) + ((i * t_17) + (t_8 - (a * (y1 * (y2 * x)))))) + (y3 * ((a * (y1 * z)) - (a * (y5 * y)))))));
} else if (y5 <= -0.01) {
tmp = fma(t_11, t_18, fma(t_9, t_3, fma(t_20, t_22, fma(t_1, t_7, (k * (z * ((y0 * b) - (y1 * i))))))));
} else if (y5 <= -7.294864740819608e-113) {
tmp = t_23;
} else if (y5 <= -7.58597788720551e-261) {
tmp = fma(t_11, t_18, fma(t_22, t_20, fma(i, fma(y1, t_6, ((t * z) * c)), fma(y, ((((a * (x * b)) - (c * (x * i))) + (k * ((y5 * i) - (y4 * b)))) + (y3 * ((y4 * c) - (y5 * a)))), fma(t_3, (y2 * t), fma(t, (j * t_7), (b * (t_19 - (a * (t * z))))))))));
} else if (y5 <= 1.93699319861375e-272) {
tmp = fma(t_11, t_18, fma(t_9, t_3, fma(y0, fma(c, t_20, (t_6 * -b)), fma(t_1, t_7, ((a * ((t_12 * b) + t_2)) + t_14)))));
} else if (y5 <= 4.1574090020428107e-234) {
tmp = t_23;
} else if (y5 <= 6.984235651185248e-181) {
tmp = t_24;
} else if (y5 <= 1e-8) {
tmp = fma(t_11, t_18, fma(c, t_21, (fma(t_1, t_7, (fma((fma(b, t_12, (y5 * t_9)) + t_2), a, t_14) + (c * (y4 * (y3 * y))))) - t_25)));
} else if (y5 <= 1e+50) {
tmp = fma(t_11, t_18, fma(t_9, t_3, (t_8 - (((t * (z * t_10)) + ((k * (z * t_4)) + (t_22 * (y3 * z)))) - (x * ((y * t_10) + ((y2 * t_22) + t_16)))))));
} else if (y5 <= 1e+150) {
tmp = fma(t_11, t_18, fma(c, t_21, ((fma(y4, (b * t_1), fma(i, fma(t_5, y1, (c * ((t * z) - (y * x)))), fma(a, fma(b, t_12, t_2), (y5 * ((a * t_9) + (i * t_15)))))) + (c * (y4 * ((y3 * y) - (y2 * t))))) - t_25)));
} else {
tmp = t_24;
}
return tmp;
}
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) return Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(x * y) - Float64(z * t)) * Float64(Float64(a * b) - Float64(c * i))) - Float64(Float64(Float64(x * j) - Float64(z * k)) * Float64(Float64(y0 * b) - Float64(y1 * i)))) + Float64(Float64(Float64(x * y2) - Float64(z * y3)) * Float64(Float64(y0 * c) - Float64(y1 * a)))) + Float64(Float64(Float64(t * j) - Float64(y * k)) * Float64(Float64(y4 * b) - Float64(y5 * i)))) - Float64(Float64(Float64(t * y2) - Float64(y * y3)) * Float64(Float64(y4 * c) - Float64(y5 * a)))) + Float64(Float64(Float64(k * y2) - Float64(j * y3)) * Float64(Float64(y4 * y1) - Float64(y5 * y0)))) end
function code(x, y, z, t, a, b, c, i, j, k, y0, y1, y2, y3, y4, y5) t_1 = Float64(Float64(j * t) - Float64(k * y)) t_2 = Float64(y1 * Float64(Float64(y3 * z) - Float64(y2 * x))) t_3 = Float64(Float64(y5 * a) - Float64(y4 * c)) t_4 = Float64(Float64(y1 * i) - Float64(y0 * b)) t_5 = Float64(Float64(j * x) - Float64(k * z)) t_6 = fma(j, x, Float64(z * Float64(-k))) t_7 = Float64(Float64(y4 * b) - Float64(y5 * i)) t_8 = Float64(t_1 * t_7) t_9 = Float64(Float64(y2 * t) - Float64(y3 * y)) t_10 = Float64(Float64(a * b) - Float64(i * c)) t_11 = Float64(Float64(k * y2) - Float64(j * y3)) t_12 = Float64(Float64(y * x) - Float64(t * z)) t_13 = Float64(t_12 * c) t_14 = Float64(i * Float64(Float64(y1 * t_6) - t_13)) t_15 = Float64(Float64(k * y) - Float64(j * t)) t_16 = Float64(j * t_4) t_17 = Float64(y1 * t_5) t_18 = Float64(Float64(y1 * y4) - Float64(y5 * y0)) t_19 = Float64(t_6 * Float64(-y0)) t_20 = Float64(Float64(y2 * x) - Float64(y3 * z)) t_21 = Float64(y0 * t_20) t_22 = Float64(Float64(y0 * c) - Float64(y1 * a)) t_23 = fma(t_11, t_18, fma(t_9, t_3, Float64(fma(fma(a, t_12, fma(y4, t_1, Float64(y0 * Float64(Float64(k * z) - Float64(j * x))))), b, fma(t_20, t_22, Float64(i * Float64(t_17 - t_13)))) + Float64(i * Float64(y5 * t_15))))) t_24 = fma(t_11, t_18, fma(t_9, t_3, fma(t_1, fma(b, y4, Float64(y5 * Float64(-i))), fma(x, fma(y, t_10, fma(t_22, y2, t_16)), Float64(fma(t, t_10, fma(t_22, y3, Float64(k * t_4))) * Float64(-z)))))) t_25 = Float64(y0 * Float64(t_6 * b)) tmp = 0.0 if (y5 <= -1e+163) tmp = fma(t_11, t_18, fma(fma(a, t_12, t_19), b, Float64(Float64(Float64(a * Float64(t * Float64(y5 * y2))) + Float64(Float64(i * t_17) + Float64(t_8 - Float64(a * Float64(y1 * Float64(y2 * x)))))) + Float64(y3 * Float64(Float64(a * Float64(y1 * z)) - Float64(a * Float64(y5 * y))))))); elseif (y5 <= -0.01) tmp = fma(t_11, t_18, fma(t_9, t_3, fma(t_20, t_22, fma(t_1, t_7, Float64(k * Float64(z * Float64(Float64(y0 * b) - Float64(y1 * i)))))))); elseif (y5 <= -7.294864740819608e-113) tmp = t_23; elseif (y5 <= -7.58597788720551e-261) tmp = fma(t_11, t_18, fma(t_22, t_20, fma(i, fma(y1, t_6, Float64(Float64(t * z) * c)), fma(y, Float64(Float64(Float64(Float64(a * Float64(x * b)) - Float64(c * Float64(x * i))) + Float64(k * Float64(Float64(y5 * i) - Float64(y4 * b)))) + Float64(y3 * Float64(Float64(y4 * c) - Float64(y5 * a)))), fma(t_3, Float64(y2 * t), fma(t, Float64(j * t_7), Float64(b * Float64(t_19 - Float64(a * Float64(t * z)))))))))); elseif (y5 <= 1.93699319861375e-272) tmp = fma(t_11, t_18, fma(t_9, t_3, fma(y0, fma(c, t_20, Float64(t_6 * Float64(-b))), fma(t_1, t_7, Float64(Float64(a * Float64(Float64(t_12 * b) + t_2)) + t_14))))); elseif (y5 <= 4.1574090020428107e-234) tmp = t_23; elseif (y5 <= 6.984235651185248e-181) tmp = t_24; elseif (y5 <= 1e-8) tmp = fma(t_11, t_18, fma(c, t_21, Float64(fma(t_1, t_7, Float64(fma(Float64(fma(b, t_12, Float64(y5 * t_9)) + t_2), a, t_14) + Float64(c * Float64(y4 * Float64(y3 * y))))) - t_25))); elseif (y5 <= 1e+50) tmp = fma(t_11, t_18, fma(t_9, t_3, Float64(t_8 - Float64(Float64(Float64(t * Float64(z * t_10)) + Float64(Float64(k * Float64(z * t_4)) + Float64(t_22 * Float64(y3 * z)))) - Float64(x * Float64(Float64(y * t_10) + Float64(Float64(y2 * t_22) + t_16))))))); elseif (y5 <= 1e+150) tmp = fma(t_11, t_18, fma(c, t_21, Float64(Float64(fma(y4, Float64(b * t_1), fma(i, fma(t_5, y1, Float64(c * Float64(Float64(t * z) - Float64(y * x)))), fma(a, fma(b, t_12, t_2), Float64(y5 * Float64(Float64(a * t_9) + Float64(i * t_15)))))) + Float64(c * Float64(y4 * Float64(Float64(y3 * y) - Float64(y2 * t))))) - t_25))); else tmp = t_24; end return tmp end
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := N[(N[(N[(N[(N[(N[(N[(N[(x * y), $MachinePrecision] - N[(z * t), $MachinePrecision]), $MachinePrecision] * N[(N[(a * b), $MachinePrecision] - N[(c * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(N[(N[(x * j), $MachinePrecision] - N[(z * k), $MachinePrecision]), $MachinePrecision] * N[(N[(y0 * b), $MachinePrecision] - N[(y1 * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(N[(x * y2), $MachinePrecision] - N[(z * y3), $MachinePrecision]), $MachinePrecision] * N[(N[(y0 * c), $MachinePrecision] - N[(y1 * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(N[(t * j), $MachinePrecision] - N[(y * k), $MachinePrecision]), $MachinePrecision] * N[(N[(y4 * b), $MachinePrecision] - N[(y5 * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(N[(N[(t * y2), $MachinePrecision] - N[(y * y3), $MachinePrecision]), $MachinePrecision] * N[(N[(y4 * c), $MachinePrecision] - N[(y5 * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(N[(k * y2), $MachinePrecision] - N[(j * y3), $MachinePrecision]), $MachinePrecision] * N[(N[(y4 * y1), $MachinePrecision] - N[(y5 * y0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
code[x_, y_, z_, t_, a_, b_, c_, i_, j_, k_, y0_, y1_, y2_, y3_, y4_, y5_] := Block[{t$95$1 = N[(N[(j * t), $MachinePrecision] - N[(k * y), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(y1 * N[(N[(y3 * z), $MachinePrecision] - N[(y2 * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[(y5 * a), $MachinePrecision] - N[(y4 * c), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = N[(N[(y1 * i), $MachinePrecision] - N[(y0 * b), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$5 = N[(N[(j * x), $MachinePrecision] - N[(k * z), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$6 = N[(j * x + N[(z * (-k)), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$7 = N[(N[(y4 * b), $MachinePrecision] - N[(y5 * i), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$8 = N[(t$95$1 * t$95$7), $MachinePrecision]}, Block[{t$95$9 = N[(N[(y2 * t), $MachinePrecision] - N[(y3 * y), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$10 = N[(N[(a * b), $MachinePrecision] - N[(i * c), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$11 = N[(N[(k * y2), $MachinePrecision] - N[(j * y3), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$12 = N[(N[(y * x), $MachinePrecision] - N[(t * z), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$13 = N[(t$95$12 * c), $MachinePrecision]}, Block[{t$95$14 = N[(i * N[(N[(y1 * t$95$6), $MachinePrecision] - t$95$13), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$15 = N[(N[(k * y), $MachinePrecision] - N[(j * t), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$16 = N[(j * t$95$4), $MachinePrecision]}, Block[{t$95$17 = N[(y1 * t$95$5), $MachinePrecision]}, Block[{t$95$18 = N[(N[(y1 * y4), $MachinePrecision] - N[(y5 * y0), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$19 = N[(t$95$6 * (-y0)), $MachinePrecision]}, Block[{t$95$20 = N[(N[(y2 * x), $MachinePrecision] - N[(y3 * z), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$21 = N[(y0 * t$95$20), $MachinePrecision]}, Block[{t$95$22 = N[(N[(y0 * c), $MachinePrecision] - N[(y1 * a), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$23 = N[(t$95$11 * t$95$18 + N[(t$95$9 * t$95$3 + N[(N[(N[(a * t$95$12 + N[(y4 * t$95$1 + N[(y0 * N[(N[(k * z), $MachinePrecision] - N[(j * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * b + N[(t$95$20 * t$95$22 + N[(i * N[(t$95$17 - t$95$13), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(i * N[(y5 * t$95$15), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$24 = N[(t$95$11 * t$95$18 + N[(t$95$9 * t$95$3 + N[(t$95$1 * N[(b * y4 + N[(y5 * (-i)), $MachinePrecision]), $MachinePrecision] + N[(x * N[(y * t$95$10 + N[(t$95$22 * y2 + t$95$16), $MachinePrecision]), $MachinePrecision] + N[(N[(t * t$95$10 + N[(t$95$22 * y3 + N[(k * t$95$4), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * (-z)), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$25 = N[(y0 * N[(t$95$6 * b), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y5, -1e+163], N[(t$95$11 * t$95$18 + N[(N[(a * t$95$12 + t$95$19), $MachinePrecision] * b + N[(N[(N[(a * N[(t * N[(y5 * y2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(i * t$95$17), $MachinePrecision] + N[(t$95$8 - N[(a * N[(y1 * N[(y2 * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(y3 * N[(N[(a * N[(y1 * z), $MachinePrecision]), $MachinePrecision] - N[(a * N[(y5 * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -0.01], N[(t$95$11 * t$95$18 + N[(t$95$9 * t$95$3 + N[(t$95$20 * t$95$22 + N[(t$95$1 * t$95$7 + N[(k * N[(z * N[(N[(y0 * b), $MachinePrecision] - N[(y1 * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, -7.294864740819608e-113], t$95$23, If[LessEqual[y5, -7.58597788720551e-261], N[(t$95$11 * t$95$18 + N[(t$95$22 * t$95$20 + N[(i * N[(y1 * t$95$6 + N[(N[(t * z), $MachinePrecision] * c), $MachinePrecision]), $MachinePrecision] + N[(y * N[(N[(N[(N[(a * N[(x * b), $MachinePrecision]), $MachinePrecision] - N[(c * N[(x * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(k * N[(N[(y5 * i), $MachinePrecision] - N[(y4 * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(y3 * N[(N[(y4 * c), $MachinePrecision] - N[(y5 * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(t$95$3 * N[(y2 * t), $MachinePrecision] + N[(t * N[(j * t$95$7), $MachinePrecision] + N[(b * N[(t$95$19 - N[(a * N[(t * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 1.93699319861375e-272], N[(t$95$11 * t$95$18 + N[(t$95$9 * t$95$3 + N[(y0 * N[(c * t$95$20 + N[(t$95$6 * (-b)), $MachinePrecision]), $MachinePrecision] + N[(t$95$1 * t$95$7 + N[(N[(a * N[(N[(t$95$12 * b), $MachinePrecision] + t$95$2), $MachinePrecision]), $MachinePrecision] + t$95$14), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 4.1574090020428107e-234], t$95$23, If[LessEqual[y5, 6.984235651185248e-181], t$95$24, If[LessEqual[y5, 1e-8], N[(t$95$11 * t$95$18 + N[(c * t$95$21 + N[(N[(t$95$1 * t$95$7 + N[(N[(N[(N[(b * t$95$12 + N[(y5 * t$95$9), $MachinePrecision]), $MachinePrecision] + t$95$2), $MachinePrecision] * a + t$95$14), $MachinePrecision] + N[(c * N[(y4 * N[(y3 * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - t$95$25), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 1e+50], N[(t$95$11 * t$95$18 + N[(t$95$9 * t$95$3 + N[(t$95$8 - N[(N[(N[(t * N[(z * t$95$10), $MachinePrecision]), $MachinePrecision] + N[(N[(k * N[(z * t$95$4), $MachinePrecision]), $MachinePrecision] + N[(t$95$22 * N[(y3 * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(x * N[(N[(y * t$95$10), $MachinePrecision] + N[(N[(y2 * t$95$22), $MachinePrecision] + t$95$16), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y5, 1e+150], N[(t$95$11 * t$95$18 + N[(c * t$95$21 + N[(N[(N[(y4 * N[(b * t$95$1), $MachinePrecision] + N[(i * N[(t$95$5 * y1 + N[(c * N[(N[(t * z), $MachinePrecision] - N[(y * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(a * N[(b * t$95$12 + t$95$2), $MachinePrecision] + N[(y5 * N[(N[(a * t$95$9), $MachinePrecision] + N[(i * t$95$15), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(c * N[(y4 * N[(N[(y3 * y), $MachinePrecision] - N[(y2 * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - t$95$25), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$24]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
\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}
t_1 := j \cdot t - k \cdot y\\
t_2 := y1 \cdot \left(y3 \cdot z - y2 \cdot x\right)\\
t_3 := y5 \cdot a - y4 \cdot c\\
t_4 := y1 \cdot i - y0 \cdot b\\
t_5 := j \cdot x - k \cdot z\\
t_6 := \mathsf{fma}\left(j, x, z \cdot \left(-k\right)\right)\\
t_7 := y4 \cdot b - y5 \cdot i\\
t_8 := t_1 \cdot t_7\\
t_9 := y2 \cdot t - y3 \cdot y\\
t_10 := a \cdot b - i \cdot c\\
t_11 := k \cdot y2 - j \cdot y3\\
t_12 := y \cdot x - t \cdot z\\
t_13 := t_12 \cdot c\\
t_14 := i \cdot \left(y1 \cdot t_6 - t_13\right)\\
t_15 := k \cdot y - j \cdot t\\
t_16 := j \cdot t_4\\
t_17 := y1 \cdot t_5\\
t_18 := y1 \cdot y4 - y5 \cdot y0\\
t_19 := t_6 \cdot \left(-y0\right)\\
t_20 := y2 \cdot x - y3 \cdot z\\
t_21 := y0 \cdot t_20\\
t_22 := y0 \cdot c - y1 \cdot a\\
t_23 := \mathsf{fma}\left(t_11, t_18, \mathsf{fma}\left(t_9, t_3, \mathsf{fma}\left(\mathsf{fma}\left(a, t_12, \mathsf{fma}\left(y4, t_1, y0 \cdot \left(k \cdot z - j \cdot x\right)\right)\right), b, \mathsf{fma}\left(t_20, t_22, i \cdot \left(t_17 - t_13\right)\right)\right) + i \cdot \left(y5 \cdot t_15\right)\right)\right)\\
t_24 := \mathsf{fma}\left(t_11, t_18, \mathsf{fma}\left(t_9, t_3, \mathsf{fma}\left(t_1, \mathsf{fma}\left(b, y4, y5 \cdot \left(-i\right)\right), \mathsf{fma}\left(x, \mathsf{fma}\left(y, t_10, \mathsf{fma}\left(t_22, y2, t_16\right)\right), \mathsf{fma}\left(t, t_10, \mathsf{fma}\left(t_22, y3, k \cdot t_4\right)\right) \cdot \left(-z\right)\right)\right)\right)\right)\\
t_25 := y0 \cdot \left(t_6 \cdot b\right)\\
\mathbf{if}\;y5 \leq -1 \cdot 10^{+163}:\\
\;\;\;\;\mathsf{fma}\left(t_11, t_18, \mathsf{fma}\left(\mathsf{fma}\left(a, t_12, t_19\right), b, \left(a \cdot \left(t \cdot \left(y5 \cdot y2\right)\right) + \left(i \cdot t_17 + \left(t_8 - a \cdot \left(y1 \cdot \left(y2 \cdot x\right)\right)\right)\right)\right) + y3 \cdot \left(a \cdot \left(y1 \cdot z\right) - a \cdot \left(y5 \cdot y\right)\right)\right)\right)\\
\mathbf{elif}\;y5 \leq -0.01:\\
\;\;\;\;\mathsf{fma}\left(t_11, t_18, \mathsf{fma}\left(t_9, t_3, \mathsf{fma}\left(t_20, t_22, \mathsf{fma}\left(t_1, t_7, k \cdot \left(z \cdot \left(y0 \cdot b - y1 \cdot i\right)\right)\right)\right)\right)\right)\\
\mathbf{elif}\;y5 \leq -7.294864740819608 \cdot 10^{-113}:\\
\;\;\;\;t_23\\
\mathbf{elif}\;y5 \leq -7.58597788720551 \cdot 10^{-261}:\\
\;\;\;\;\mathsf{fma}\left(t_11, t_18, \mathsf{fma}\left(t_22, t_20, \mathsf{fma}\left(i, \mathsf{fma}\left(y1, t_6, \left(t \cdot z\right) \cdot c\right), \mathsf{fma}\left(y, \left(\left(a \cdot \left(x \cdot b\right) - c \cdot \left(x \cdot i\right)\right) + k \cdot \left(y5 \cdot i - y4 \cdot b\right)\right) + y3 \cdot \left(y4 \cdot c - y5 \cdot a\right), \mathsf{fma}\left(t_3, y2 \cdot t, \mathsf{fma}\left(t, j \cdot t_7, b \cdot \left(t_19 - a \cdot \left(t \cdot z\right)\right)\right)\right)\right)\right)\right)\right)\\
\mathbf{elif}\;y5 \leq 1.93699319861375 \cdot 10^{-272}:\\
\;\;\;\;\mathsf{fma}\left(t_11, t_18, \mathsf{fma}\left(t_9, t_3, \mathsf{fma}\left(y0, \mathsf{fma}\left(c, t_20, t_6 \cdot \left(-b\right)\right), \mathsf{fma}\left(t_1, t_7, a \cdot \left(t_12 \cdot b + t_2\right) + t_14\right)\right)\right)\right)\\
\mathbf{elif}\;y5 \leq 4.1574090020428107 \cdot 10^{-234}:\\
\;\;\;\;t_23\\
\mathbf{elif}\;y5 \leq 6.984235651185248 \cdot 10^{-181}:\\
\;\;\;\;t_24\\
\mathbf{elif}\;y5 \leq 10^{-8}:\\
\;\;\;\;\mathsf{fma}\left(t_11, t_18, \mathsf{fma}\left(c, t_21, \mathsf{fma}\left(t_1, t_7, \mathsf{fma}\left(\mathsf{fma}\left(b, t_12, y5 \cdot t_9\right) + t_2, a, t_14\right) + c \cdot \left(y4 \cdot \left(y3 \cdot y\right)\right)\right) - t_25\right)\right)\\
\mathbf{elif}\;y5 \leq 10^{+50}:\\
\;\;\;\;\mathsf{fma}\left(t_11, t_18, \mathsf{fma}\left(t_9, t_3, t_8 - \left(\left(t \cdot \left(z \cdot t_10\right) + \left(k \cdot \left(z \cdot t_4\right) + t_22 \cdot \left(y3 \cdot z\right)\right)\right) - x \cdot \left(y \cdot t_10 + \left(y2 \cdot t_22 + t_16\right)\right)\right)\right)\right)\\
\mathbf{elif}\;y5 \leq 10^{+150}:\\
\;\;\;\;\mathsf{fma}\left(t_11, t_18, \mathsf{fma}\left(c, t_21, \left(\mathsf{fma}\left(y4, b \cdot t_1, \mathsf{fma}\left(i, \mathsf{fma}\left(t_5, y1, c \cdot \left(t \cdot z - y \cdot x\right)\right), \mathsf{fma}\left(a, \mathsf{fma}\left(b, t_12, t_2\right), y5 \cdot \left(a \cdot t_9 + i \cdot t_15\right)\right)\right)\right) + c \cdot \left(y4 \cdot \left(y3 \cdot y - y2 \cdot t\right)\right)\right) - t_25\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t_24\\
\end{array}
| Original | 27.3 |
|---|---|
| Target | 31.2 |
| Herbie | 28.5 |
if y5 < -9.9999999999999994e162Initial program 33.8
Simplified33.8
Taylor expanded in b around 0 33.4
Simplified35.9
Taylor expanded in y3 around 0 36.8
Simplified36.8
Taylor expanded in c around 0 44.3
if -9.9999999999999994e162 < y5 < -0.0100000000000000002Initial program 25.6
Simplified25.6
Taylor expanded in k around inf 30.9
if -0.0100000000000000002 < y5 < -7.29486474081960833e-113 or 1.93699319861374992e-272 < y5 < 4.15740900204281065e-234Initial program 24.8
Simplified24.8
Taylor expanded in b around 0 27.4
Simplified26.7
if -7.29486474081960833e-113 < y5 < -7.5859778872055103e-261Initial program 27.3
Simplified27.3
Taylor expanded in b around 0 29.4
Simplified28.3
Taylor expanded in y around 0 27.9
Simplified27.9
if -7.5859778872055103e-261 < y5 < 1.93699319861374992e-272Initial program 27.9
Simplified27.9
Taylor expanded in b around 0 30.1
Simplified29.2
Taylor expanded in y0 around 0 28.6
Simplified28.6
if 4.15740900204281065e-234 < y5 < 6.9842356511852481e-181 or 9.99999999999999981e149 < y5 Initial program 30.8
Simplified30.8
Taylor expanded in x around 0 30.1
Simplified29.7
if 6.9842356511852481e-181 < y5 < 1e-8Initial program 26.6
Simplified26.6
Taylor expanded in b around 0 26.4
Simplified25.5
Taylor expanded in a around 0 23.8
Simplified23.8
Taylor expanded in t around 0 25.5
Simplified25.5
if 1e-8 < y5 < 1.0000000000000001e50Initial program 24.8
Simplified24.8
Taylor expanded in x around 0 24.4
if 1.0000000000000001e50 < y5 < 9.99999999999999981e149Initial program 27.2
Simplified27.2
Taylor expanded in b around 0 27.4
Simplified28.8
Taylor expanded in a around 0 28.8
Simplified28.8
Taylor expanded in y5 around 0 25.6
Simplified25.6
Final simplification28.5
herbie shell --seed 2022202
(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
:herbie-target
(if (< y4 -7.206256231996481e+60) (- (- (* (- (* b a) (* i c)) (- (* y x) (* t z))) (- (* (- (* j x) (* k z)) (- (* y0 b) (* i y1))) (* (- (* j t) (* k y)) (- (* y4 b) (* y5 i))))) (- (/ (- (* y2 t) (* y3 y)) (/ 1.0 (- (* y4 c) (* y5 a)))) (* (- (* y2 k) (* y3 j)) (- (* y4 y1) (* y5 y0))))) (if (< y4 -3.364603505246317e-66) (+ (- (- (- (* (* t c) (* i z)) (* (* a t) (* b z))) (* (* y c) (* i x))) (* (- (* b y0) (* i y1)) (- (* j x) (* k z)))) (- (* (- (* y0 c) (* a y1)) (- (* x y2) (* z y3))) (- (* (- (* t y2) (* y y3)) (- (* y4 c) (* a y5))) (* (- (* y1 y4) (* y5 y0)) (- (* k y2) (* j y3)))))) (if (< y4 -1.2000065055686116e-105) (+ (+ (- (* (- (* j t) (* k y)) (- (* y4 b) (* y5 i))) (* (* y3 y) (- (* y5 a) (* y4 c)))) (+ (* (* y5 a) (* t y2)) (* (- (* k y2) (* j y3)) (- (* y4 y1) (* y5 y0))))) (- (* (- (* x y2) (* z y3)) (- (* c y0) (* a y1))) (- (* (- (* b y0) (* i y1)) (- (* j x) (* k z))) (* (- (* y x) (* z t)) (- (* b a) (* i c)))))) (if (< y4 6.718963124057495e-279) (+ (- (- (- (* (* k y) (* y5 i)) (* (* y b) (* y4 k))) (* (* y5 t) (* i j))) (- (* (- (* y2 t) (* y3 y)) (- (* y4 c) (* y5 a))) (* (- (* y2 k) (* y3 j)) (- (* y4 y1) (* y5 y0))))) (- (* (- (* b a) (* i c)) (- (* y x) (* t z))) (- (* (- (* j x) (* k z)) (- (* y0 b) (* i y1))) (* (- (* y2 x) (* y3 z)) (- (* c y0) (* y1 a)))))) (if (< y4 4.77962681403792e-222) (+ (+ (- (* (- (* j t) (* k y)) (- (* y4 b) (* y5 i))) (* (* y3 y) (- (* y5 a) (* y4 c)))) (+ (* (* y5 a) (* t y2)) (* (- (* k y2) (* j y3)) (- (* y4 y1) (* y5 y0))))) (- (* (- (* x y2) (* z y3)) (- (* c y0) (* a y1))) (- (* (- (* b y0) (* i y1)) (- (* j x) (* k z))) (* (- (* y x) (* z t)) (- (* b a) (* i c)))))) (if (< y4 2.2852241541266835e-175) (+ (- (- (- (* (* k y) (* y5 i)) (* (* y b) (* y4 k))) (* (* y5 t) (* i j))) (- (* (- (* y2 t) (* y3 y)) (- (* y4 c) (* y5 a))) (* (- (* y2 k) (* y3 j)) (- (* y4 y1) (* y5 y0))))) (- (* (- (* b a) (* i c)) (- (* y x) (* t z))) (- (* (- (* j x) (* k z)) (- (* y0 b) (* i y1))) (* (- (* y2 x) (* y3 z)) (- (* c y0) (* y1 a)))))) (+ (- (+ (+ (- (* (- (* x y) (* z t)) (- (* a b) (* c i))) (- (* k (* i (* z y1))) (+ (* j (* i (* x y1))) (* y0 (* k (* z b)))))) (- (* z (* y3 (* a y1))) (+ (* y2 (* x (* a y1))) (* y0 (* z (* c y3)))))) (* (- (* t j) (* y k)) (- (* y4 b) (* y5 i)))) (* (- (* t y2) (* y y3)) (- (* y4 c) (* y5 a)))) (* (- (* k y2) (* j y3)) (- (* y4 y1) (* y5 y0))))))))))
(+ (- (+ (+ (- (* (- (* 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)))))