aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2015-03-13 21:06:20 +0100
committerGravatar Gael Guennebaud <g.gael@free.fr>2015-03-13 21:06:20 +0100
commit8580eb6808428a53d5fb91be23fb5c6c8c9e9463 (patch)
tree4e54a55f359ba5f73d1ab0fc51838a4aae96564c /Eigen/src/Eigenvalues/GeneralizedEigenSolver.h
parenta9df28c95b42401fe4ac86313b85872200d05e4c (diff)
bug #949: add static assertion for incompatible scalar types in dense end-user decompositions.
Diffstat (limited to 'Eigen/src/Eigenvalues/GeneralizedEigenSolver.h')
-rw-r--r--Eigen/src/Eigenvalues/GeneralizedEigenSolver.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h b/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h
index c9da6740a..e2e28cd4a 100644
--- a/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h
+++ b/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h
@@ -263,6 +263,13 @@ template<typename _MatrixType> class GeneralizedEigenSolver
}
protected:
+
+ static void check_template_parameters()
+ {
+ EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+ EIGEN_STATIC_ASSERT(!NumTraits<Scalar>::IsComplex, NUMERIC_TYPE_MUST_BE_REAL);
+ }
+
MatrixType m_eivec;
ComplexVectorType m_alphas;
VectorType m_betas;
@@ -290,6 +297,8 @@ template<typename MatrixType>
GeneralizedEigenSolver<MatrixType>&
GeneralizedEigenSolver<MatrixType>::compute(const MatrixType& A, const MatrixType& B, bool computeEigenvectors)
{
+ check_template_parameters();
+
using std::sqrt;
using std::abs;
eigen_assert(A.cols() == A.rows() && B.cols() == A.rows() && B.cols() == B.rows());