20 #ifndef __EIGEN3_EIGENVALUES_C_API_CC__
21 #define __EIGEN3_EIGENVALUES_C_API_CC__
24 #if defined(__GNUC__) && !defined(__clang__)
25 # pragma GCC diagnostic ignored "-Wlogical-op"
29 #include <Eigen/Eigenvalues>
33 using Eigen::SelfAdjointEigenSolver;
36 using Eigen::MatrixXf;
37 using Eigen::VectorXf;
43 float *r_eigen_values,
44 float *r_eigen_vectors)
46 SelfAdjointEigenSolver<MatrixXf> eigen_solver;
49 eigen_solver.compute(Map<MatrixXf>((
float *)matrix,
size,
size));
51 if (eigen_solver.info() != Success) {
56 Map<VectorXf>(r_eigen_values,
size) = eigen_solver.eigenvalues().transpose();
59 if (r_eigen_vectors) {
60 Map<MatrixXf>(r_eigen_vectors,
size,
size) = eigen_solver.eigenvectors();
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
bool EIG_self_adjoint_eigen_solve(const int size, const float *matrix, float *r_eigen_values, float *r_eigen_vectors)