8 #ifndef EIGENDECOMPOSITION_H_
9 #define EIGENDECOMPOSITION_H_
19 #define BEAGLE_CPU_EIGEN_GENERIC REALTYPE, T_PAD
20 #define BEAGLE_CPU_EIGEN_TEMPLATE template <typename REALTYPE, int T_PAD>
25 BEAGLE_CPU_EIGEN_TEMPLATE
29 REALTYPE** gEigenValues;
31 int kEigenDecompCount;
35 REALTYPE* firstDerivTmp;
36 REALTYPE* secondDerivTmp;
45 kEigenDecompCount = decompositionCount;
46 kStateCount = stateCount;
47 kCategoryCount = categoryCount;
59 virtual void setEigenDecomposition(
int eigenIndex,
60 const double* inEigenVectors,
61 const double* inInverseEigenVectors,
62 const double* inEigenValues) = 0;
70 virtual void updateTransitionMatrices(
int eigenIndex,
71 const int* probabilityIndices,
72 const int* firstDerivativeIndices,
73 const int* secondDerivativeIndices,
74 const double* edgeLengths,
75 const double* categoryRates,
76 REALTYPE** transitionMatrices,