- ex vdet = M.determinant();
-
- // dirty consistency check of result:
- if (!vdet.subs(a==1).is_zero()) {
- clog << "Determaint of Vandermonde matrix " << endl
- << "M==" << M << endl
- << "was miscalculated: det(M)==" << vdet << endl;
+ ex det = M.determinant();
+
+ // check the result:
+ ex vanddet = 1;
+ for (unsigned i=0; i<size; ++i)
+ for (unsigned j=0; j<i; ++j)
+ vanddet *= M(i,1) - M(j,1);
+
+ if (expand(det - vanddet) != 0) {
+ clog << "Determinant of Vandermonde matrix " << endl
+ << "M==" << M << endl
+ << "was miscalculated: det(M)==" << det << endl;