diff options
author | 2009-08-22 07:37:23 +0200 | |
---|---|---|
committer | 2009-08-22 07:37:23 +0200 | |
commit | c5218c7d38a0cda432d598a17bd5993ae0d41579 (patch) | |
tree | dc9a770945fe7aafd8da23f72e0f527e0c893f97 /unsupported/Eigen/src/NonLinear/lmpar.h | |
parent | b3f8d02df4286385597588c6c2a5585e30b256bd (diff) |
ei_lmpar : use a reference for the parameter
Diffstat (limited to 'unsupported/Eigen/src/NonLinear/lmpar.h')
-rw-r--r-- | unsupported/Eigen/src/NonLinear/lmpar.h | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/unsupported/Eigen/src/NonLinear/lmpar.h b/unsupported/Eigen/src/NonLinear/lmpar.h index 1c21fd7d3..32af22c49 100644 --- a/unsupported/Eigen/src/NonLinear/lmpar.h +++ b/unsupported/Eigen/src/NonLinear/lmpar.h @@ -2,7 +2,7 @@ template <typename Scalar> void ei_lmpar(int n, Scalar *r__, int ldr, const int *ipvt, const Scalar *diag, const Scalar *qtb, Scalar delta, - Scalar *par, Scalar *x, Scalar *sdiag, Scalar *wa1, + Scalar &par, Scalar *x, Scalar *sdiag, Scalar *wa1, Scalar *wa2) { /* System generated locals */ @@ -142,10 +142,10 @@ L120: /* if the input par lies outside of the interval (parl,paru), */ /* set par to the closer endpoint. */ - *par = std::max(*par,parl); - *par = std::min(*par,paru); - if (*par == 0.) { - *par = gnorm / dxnorm; + par = std::max(par,parl); + par = std::min(par,paru); + if (par == 0.) { + par = gnorm / dxnorm; } /* beginning of an iteration. */ @@ -155,12 +155,12 @@ L150: /* evaluate the function at the current value of par. */ - if (*par == 0.) { + if (par == 0.) { /* Computing MAX */ d__1 = dwarf, d__2 = Scalar(.001) * paru; - *par = std::max(d__1,d__2); + par = std::max(d__1,d__2); } - temp = ei_sqrt(*par); + temp = ei_sqrt(par); for (j = 1; j <= n; ++j) { wa1[j] = temp * diag[j]; /* L160: */ @@ -211,17 +211,17 @@ L200: /* depending on the sign of the function, update parl or paru. */ if (fp > 0.) { - parl = std::max(parl,*par); + parl = std::max(parl,par); } if (fp < 0.) { - paru = std::min(paru,*par); + paru = std::min(paru,par); } /* compute an improved estimate for par. */ /* Computing MAX */ - d__1 = parl, d__2 = *par + parc; - *par = std::max(d__1,d__2); + d__1 = parl, d__2 = par + parc; + par = std::max(d__1,d__2); /* end of an iteration. */ @@ -231,7 +231,7 @@ L220: /* termination. */ if (iter == 0) { - *par = 0.; + par = 0.; } return; |