- // This is a pattern that comes up in graph theory:
- const unsigned n = 10;
- matrix m(n*n+1,n*n+1);
- for (unsigned i=1; i<=n*n; ++i)
- m.set(i-1,i-1,1);
- for (unsigned i=1; i<=n*n; ++i)
- if (!(i%n))
- m.set(i-1,n*n,1);
- for (unsigned i=1; i<=n*n; ++i)
- if (!((i-1)%n))
- m.set(n*n,i-1,n-(i-1)/n);
- for(unsigned i=1; i<=n; ++i)
- for (unsigned j=1; j<=n; ++j)
- if (i-j)
- for (unsigned k=1; k<n; ++k)
- m.set((i-1)*n+k-1,(j-1)*n+k,n+1-j);
-
- ex det = m.determinant();
-
- if (det!=numeric("75810815066186520")) {
- clog << "det of sparse rank 101 matrix erroneously returned " << det << endl;
- return 1;
- }
- return 0;
+ // This is a pattern that comes up in graph theory:
+ const unsigned n = 10;
+ matrix m(n*n+1,n*n+1);
+ for (unsigned i=1; i<=n*n; ++i)
+ m.set(i-1,i-1,1);
+ for (unsigned i=1; i<=n*n; ++i)
+ if (!(i%n))
+ m.set(i-1,n*n,1);
+ for (unsigned i=1; i<=n*n; ++i)
+ if (!((i-1)%n))
+ m.set(n*n,i-1,n-(i-1)/n);
+ for(unsigned i=1; i<=n; ++i)
+ for (unsigned j=1; j<=n; ++j)
+ if (i-j)
+ for (unsigned k=1; k<n; ++k)
+ m.set((i-1)*n+k-1,(j-1)*n+k,n+1-j);
+
+ ex det = m.determinant();
+
+ if (det!=numeric("75810815066186520")) {
+ clog << "det of sparse rank 101 matrix erroneously returned " << det << endl;
+ return 1;
+ }
+ return 0;