Remove floats equality test with zero and fix memory leaks.
This commit is contained in:
parent
2ccd9bfb30
commit
3441c5ef3a
1 changed files with 12 additions and 2 deletions
|
@ -208,7 +208,12 @@ int nr_gaussj(double **a, int n, double **b, int m)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (ipiv[k] > 1) return -1;
|
if (ipiv[k] > 1) {
|
||||||
|
nr_free_ivector(ipiv,1 /*,n*/ );
|
||||||
|
nr_free_ivector(indxr,1 /*,n*/ );
|
||||||
|
nr_free_ivector(indxc,1 /*,n*/ );
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
++(ipiv[icol]);
|
++(ipiv[icol]);
|
||||||
|
|
||||||
|
@ -228,7 +233,12 @@ int nr_gaussj(double **a, int n, double **b, int m)
|
||||||
}
|
}
|
||||||
indxr[i] = irow; /* We are now ready to divide the pivot row */
|
indxr[i] = irow; /* We are now ready to divide the pivot row */
|
||||||
indxc[i] = icol; /* by the pivot element, a[irow][icol] */
|
indxc[i] = icol; /* by the pivot element, a[irow][icol] */
|
||||||
if (a[icol][icol] == 0.0) return -1;
|
if (fabs(a[icol][icol]) < 1E-8) {
|
||||||
|
nr_free_ivector(ipiv,1 /*,n*/ );
|
||||||
|
nr_free_ivector(indxr,1 /*,n*/ );
|
||||||
|
nr_free_ivector(indxc,1 /*,n*/ );
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
pivinv = 1.0/a[icol][icol];
|
pivinv = 1.0/a[icol][icol];
|
||||||
a[icol][icol] = 1.0;
|
a[icol][icol] = 1.0;
|
||||||
for (l=1;l<=n;l++) a[icol][l] *= pivinv;
|
for (l=1;l<=n;l++) a[icol][l] *= pivinv;
|
||||||
|
|
Loading…
Reference in a new issue