diff options
author | 2012-08-18 10:18:31 +0200 | |
---|---|---|
committer | 2012-08-18 10:18:31 +0200 | |
commit | 42c1b9a8ddc1f2003ebf754ddd35a5bd2f151491 (patch) | |
tree | 2da21033484052ef92790612be5e194f87ba3c51 /unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h | |
parent | dee866a99a372dbbdcc8777e9a35da37ae3776a8 (diff) |
Ensured that all branches of MatrixLogarithmAtomic::getPadeDegree return values.
Diffstat (limited to 'unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h')
-rw-r--r-- | unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h b/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h index 3a50514b9..3154e6efc 100644 --- a/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h +++ b/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h @@ -172,10 +172,11 @@ int MatrixLogarithmAtomic<MatrixType>::getPadeDegree(float normTminusI) { const float maxNormForPade[] = { 2.5111573934555054e-1 /* degree = 3 */ , 4.0535837411880493e-1, 5.3149729967117310e-1 }; - for (int degree = 3; degree <= maxPadeDegree; ++degree) + int degree = 3 + for (; degree <= maxPadeDegree; ++degree) if (normTminusI <= maxNormForPade[degree - minPadeDegree]) - return degree; - assert(false); // this line should never be reached + break; + return degree; } /* \brief Get suitable degree for Pade approximation. (specialized for RealScalar = double) */ @@ -184,10 +185,11 @@ int MatrixLogarithmAtomic<MatrixType>::getPadeDegree(double normTminusI) { const double maxNormForPade[] = { 1.6206284795015624e-2 /* degree = 3 */ , 5.3873532631381171e-2, 1.1352802267628681e-1, 1.8662860613541288e-1, 2.642960831111435e-1 }; - for (int degree = 3; degree <= maxPadeDegree; ++degree) + int degree = 3; + for (; degree <= maxPadeDegree; ++degree) if (normTminusI <= maxNormForPade[degree - minPadeDegree]) - return degree; - assert(false); // this line should never be reached + break; + return degree; } /* \brief Get suitable degree for Pade approximation. (specialized for RealScalar = long double) */ @@ -214,10 +216,11 @@ int MatrixLogarithmAtomic<MatrixType>::getPadeDegree(long double normTminusI) 3.6688019729653446926585242192447447e-2, 5.9290962294020186998954055264528393e-2, 8.6998436081634343903250580992127677e-2, 1.1880960220216759245467951592883642e-1 }; #endif - for (int degree = 3; degree <= maxPadeDegree; ++degree) + int degree = 3 + for (; degree <= maxPadeDegree; ++degree) if (normTminusI <= maxNormForPade[degree - minPadeDegree]) - return degree; - assert(false); // this line should never be reached + break; + return degree; } /* \brief Compute Pade approximation to matrix logarithm */ |