4#include <Eigen/SparseCholesky>
14using VecMap = Eigen::Map<Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic>>;
16template <
typename Solver> Solver *create_eigen_ldlt_solver() {
20template <
typename Solver>
void destroy_eigen_ldlt_solver(Solver *solver) {}
22template <
typename T>
class EigenLDLTSolverImpl;
25EigenLDLTSolverImpl<double> *
26create_eigen_ldlt_solver<EigenLDLTSolverImpl<double>>();
29EigenLDLTSolverImpl<float> *
30create_eigen_ldlt_solver<EigenLDLTSolverImpl<float>>();
33void destroy_eigen_ldlt_solver<EigenLDLTSolverImpl<double>>(
34 EigenLDLTSolverImpl<double> *solver);
37void destroy_eigen_ldlt_solver<EigenLDLTSolverImpl<float>>(
38 EigenLDLTSolverImpl<float> *solver);
45 using solver_impl = EigenLDLTSolverImpl<T>;
53 destroy_eigen_ldlt_solver<solver_impl>(solver);
57 bool analyze_pattern(
const Eigen::SparseMatrix<T, Eigen::ColMajor> &matrix) {
60 bool factorize(
const Eigen::SparseMatrix<T, Eigen::ColMajor> &matrix) {
63 bool solve(
const VecMap<T> &b, VecMap<T> &x) {
return false; }
68 const Eigen::SparseMatrix<double, Eigen::ColMajor> &matrix);
72 const Eigen::SparseMatrix<double, Eigen::ColMajor> &matrix);
80 const Eigen::SparseMatrix<float, Eigen::ColMajor> &matrix);
83 const Eigen::SparseMatrix<float, Eigen::ColMajor> &matrix);
Definition eigen_solver_interface.hpp:40