//a= coefficient matrix //b= rhs column vector //n= # of equations //x= solution vector //tol= tolerance (detection of values close to zero) //er=determine if singular (if so er=-1) double s[n]; int er = 0; for(int i=0; is[i]) s[i]=fabs(a[i][j]); } } //Eliminate for(int k = 0; k < n-1; k++) { // go to pivot int p=k; double big = fabs(a[k][k]/s[k]); for(int ii = k+1; kbig) { big=dummy; p=ii; } } if(p != k) { for(int jj = k; jj < n; jj++) { dummy = a[p][jj]; a[p][jj] = a[k][jj]; a[k][jj] = dummy; } dummy = b[p]; b[p] = b[k]; b[k] = dummy; dummy = s[p]; s[p] = s[k]; s[k] = dummy; } if(fabs(a[k][k]/s[k])