Do you know anything about how the code in this library is structured and works? I am starting to think I have missed a step.
Searching through the code, the closest I can come to a declaration of the class "Matrix4d" is the code in the two files:
C:\\eigen-2.0.11\\eigen\\Eigen\\Cholesky
C:\\eigen-2.0.11\\eigen\\Eigen\\QR
Looking at the QR file I find:
// declare all class for all types
#define EIGEN_QR_MODULE_INSTANTIATE(PREFIX) \ EIGEN_QR_MODULE_INSTANTIATE_TYPE(Matrix2f,PREFIX); \ EIGEN_QR_MODULE_INSTANTIATE_TYPE(Matrix2d,PREFIX); \ EIGEN_QR_MODULE_INSTANTIATE_TYPE(Matrix3f,PREFIX); \ EIGEN_QR_MODULE_INSTANTIATE_TYPE(Matrix3d,PREFIX); \ EIGEN_QR_MODULE_INSTANTIATE_TYPE(Matrix4f,PREFIX); \ EIGEN_QR_MODULE_INSTANTIATE_TYPE(Matrix4d,PREFIX); \\
EIGEN_QR_MODULE_INSTANTIATE_TYPE(MatrixXf,PREFIX); \ EIGEN_QR_MODULE_INSTANTIATE_TYPE(MatrixXd,PREFIX); \ EIGEN_QR_MODULE_INSTANTIATE_TYPE(MatrixXcf,PREFIX); \ EIGEN_QR_MODULE_INSTANTIATE_TYPE(MatrixXcd,PREFIX)
and just above this, there is:
// declare all classes for a given matrix type
#define EIGEN_QR_MODULE_INSTANTIATE_TYPE(MATRIXTYPE,PREFIX) \ PREFIX template class QR<MATRIXTYPE>; \ PREFIX template class Tridiagonalization<MATRIXTYPE>; \ PREFIX template class HessenbergDecomposition<MATRIXTYPE>; \ PREFIX template class SelfAdjointEigenSolver<MATRIXTYPE>
now unless the library has used a macro to redefine the keyword "class" this macro is not creating a class with the name "MATRIXTYPE", which is "Matrix4d" for the class we are interested in. The "Cholesky" file is not looking any clearer.
Searching through the files in "C:\\eigen-2.0.11\\eigen\\test\\" has not helped. Nearly all references to "Matrix4d" seem to be function calls.
An instance of the type "Matrix4d" is created in the file:
C:\\eigen-2.0.11\\eigen\\test\\commainitializer.cpp
but it is never actually used as far as I can tell.
I am feeling quite confused.
I assume the problem is that VA cannot find where / how this class is declared, but so far, neither can I.