Skip to content
Snippets Groups Projects
Forked from Stack Of Tasks / eigenpy
1063 commits behind the upstream repository.
decompositions.cpp 1.22 KiB
/*
 * Copyright 2020-2021 INRIA
 */

#include "eigenpy/fwd.hpp"

#include "eigenpy/decompositions/decompositions.hpp"

#include "eigenpy/decompositions/EigenSolver.hpp"
#include "eigenpy/decompositions/SelfAdjointEigenSolver.hpp"
#include "eigenpy/decompositions/LLT.hpp"
#include "eigenpy/decompositions/LDLT.hpp"
#include "eigenpy/decompositions/minres.hpp"

namespace eigenpy
{
  void exposeDecompositions()
  {
    using namespace Eigen;
    namespace bp = boost::python;
    
    EigenSolverVisitor<MatrixXd>::expose("EigenSolver");
    SelfAdjointEigenSolverVisitor<MatrixXd>::expose("SelfAdjointEigenSolver");
    LLTSolverVisitor<MatrixXd>::expose("LLT");
    LDLTSolverVisitor<MatrixXd>::expose("LDLT");
    
    MINRESSolverVisitor<MatrixXd>::expose("MINRES");

    {
      bp::enum_<DecompositionOptions>("DecompositionOptions")
      .value("ComputeFullU",ComputeFullU)
      .value("ComputeThinU",ComputeThinU)
      .value("ComputeFullV",ComputeFullV)
      .value("ComputeThinV",ComputeThinV)
      .value("EigenvaluesOnly",EigenvaluesOnly)
      .value("ComputeEigenvectors",ComputeEigenvectors)
      .value("Ax_lBx",Ax_lBx)
      .value("ABx_lx",ABx_lx)
      .value("BAx_lx",BAx_lx)
      ;
    }
    
  }
} // namespace eigenpy