From 3bca4bba87d96a2fa64f760d5dd47da279e0b3e2 Mon Sep 17 00:00:00 2001 From: Thomas Capricelli Date: Tue, 25 Aug 2009 22:02:19 +0200 Subject: [PATCH] if mode==2, the user is supposed to supply diag: do some basic check. --- unsupported/Eigen/src/NonLinear/HybridNonLinearSolver.h | 2 ++ unsupported/Eigen/src/NonLinear/LevenbergMarquardt.h | 3 +++ 2 files changed, 5 insertions(+) diff --git a/unsupported/Eigen/src/NonLinear/HybridNonLinearSolver.h b/unsupported/Eigen/src/NonLinear/HybridNonLinearSolver.h index 6022ce363..bdca46cd4 100644 --- a/unsupported/Eigen/src/NonLinear/HybridNonLinearSolver.h +++ b/unsupported/Eigen/src/NonLinear/HybridNonLinearSolver.h @@ -113,6 +113,7 @@ HybridNonLinearSolver::solve( fvec.resize(n); if (mode != 2) diag.resize(n); + assert( (mode!=2 || diag.size()==n) || "When using mode==2, the caller must provide a valid 'diag'"); /* Local variables */ int i, j, l, iwa[1]; @@ -433,6 +434,7 @@ HybridNonLinearSolver::solveNumericalDiff( fvec.resize(n); if (mode != 2) diag.resize(n); + assert( (mode!=2 || diag.size()==n) || "When using mode==2, the caller must provide a valid 'diag'"); /* Local variables */ int i, j, l, iwa[1]; diff --git a/unsupported/Eigen/src/NonLinear/LevenbergMarquardt.h b/unsupported/Eigen/src/NonLinear/LevenbergMarquardt.h index 35b6e3ee2..96a90810e 100644 --- a/unsupported/Eigen/src/NonLinear/LevenbergMarquardt.h +++ b/unsupported/Eigen/src/NonLinear/LevenbergMarquardt.h @@ -132,6 +132,7 @@ LevenbergMarquardt::minimize( fjac.resize(m, n); if (mode != 2) diag.resize(n); + assert( (mode!=2 || diag.size()==n) || "When using mode==2, the caller must provide a valid 'diag'"); qtf.resize(n); /* Local variables */ @@ -410,6 +411,7 @@ LevenbergMarquardt::minimizeNumericalDiff( fjac.resize(m, n); if (mode != 2 ) diag.resize(n); + assert( (mode!=2 || diag.size()==n) || "When using mode==2, the caller must provide a valid 'diag'"); qtf.resize(n); /* Local variables */ @@ -688,6 +690,7 @@ LevenbergMarquardt::minimizeOptimumStorage( fjac.resize(m, n); if (mode != 2) diag.resize(n); + assert( (mode!=2 || diag.size()==n) || "When using mode==2, the caller must provide a valid 'diag'"); qtf.resize(n); /* Local variables */