\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - t \cdot i\right)\right) + j \cdot \left(c \cdot a - y \cdot i\right)
\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - t \cdot i\right)\right) + j \cdot \left(c \cdot a - y \cdot i\right)
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
double r514215 = x;
double r514216 = y;
double r514217 = z;
double r514218 = r514216 * r514217;
double r514219 = t;
double r514220 = a;
double r514221 = r514219 * r514220;
double r514222 = r514218 - r514221;
double r514223 = r514215 * r514222;
double r514224 = b;
double r514225 = c;
double r514226 = r514225 * r514217;
double r514227 = i;
double r514228 = r514219 * r514227;
double r514229 = r514226 - r514228;
double r514230 = r514224 * r514229;
double r514231 = r514223 - r514230;
double r514232 = j;
double r514233 = r514225 * r514220;
double r514234 = r514216 * r514227;
double r514235 = r514233 - r514234;
double r514236 = r514232 * r514235;
double r514237 = r514231 + r514236;
return r514237;
}
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
double r514238 = x;
double r514239 = y;
double r514240 = z;
double r514241 = r514239 * r514240;
double r514242 = t;
double r514243 = a;
double r514244 = r514242 * r514243;
double r514245 = r514241 - r514244;
double r514246 = r514238 * r514245;
double r514247 = b;
double r514248 = c;
double r514249 = r514248 * r514240;
double r514250 = i;
double r514251 = r514242 * r514250;
double r514252 = r514249 - r514251;
double r514253 = r514247 * r514252;
double r514254 = r514246 - r514253;
double r514255 = j;
double r514256 = r514248 * r514243;
double r514257 = r514239 * r514250;
double r514258 = r514256 - r514257;
double r514259 = r514255 * r514258;
double r514260 = r514254 + r514259;
return r514260;
}




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
| Original | 12.4 |
|---|---|
| Target | 19.9 |
| Herbie | 12.4 |
Initial program 12.4
rmApplied add-cube-cbrt12.7
Final simplification12.4
herbie shell --seed 2019294
(FPCore (x y z t a b c i j)
:name "Data.Colour.Matrix:determinant from colour-2.3.3, A"
:precision binary64
:herbie-target
(if (< x -1.46969429677770502e-64) (+ (- (* x (- (* y z) (* t a))) (/ (* b (- (pow (* c z) 2) (pow (* t i) 2))) (+ (* c z) (* t i)))) (* j (- (* c a) (* y i)))) (if (< x 3.2113527362226803e-147) (- (* (- (* b i) (* x a)) t) (- (* z (* c b)) (* j (- (* c a) (* y i))))) (+ (- (* x (- (* y z) (* t a))) (/ (* b (- (pow (* c z) 2) (pow (* t i) 2))) (+ (* c z) (* t i)))) (* j (- (* c a) (* y i))))))
(+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* t i)))) (* j (- (* c a) (* y i)))))