Skip to content

Commit 54ad6aa

Browse files
committed
[All] Handle old version of Eigen
1 parent 5ade570 commit 54ad6aa

File tree

3 files changed

+12
-1
lines changed

3 files changed

+12
-1
lines changed

src/solvers/BasicPreconditioners.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,10 @@ namespace eigenpy
3939
cl
4040
.def(bp::init<>("Default constructor"))
4141
.def(bp::init<MatrixType>(bp::arg("A"),"Initialize the preconditioner with matrix A for further Az=b solving."))
42+
#if EIGEN_VERSION_AT_LEAST(3,3,0)
4243
.def("info",&Preconditioner::info,
4344
"Returns success if the Preconditioner has been well initialized.")
45+
#endif
4446
.def("solve",&solve,bp::arg("b"),
4547
"Returns the solution A * z = b where the preconditioner is an estimate of A^-1.")
4648

@@ -91,6 +93,7 @@ namespace eigenpy
9193
}
9294
};
9395

96+
#if EIGEN_VERSION_AT_LEAST(3,3,0)
9497
template<typename Scalar>
9598
struct LeastSquareDiagonalPreconditionerVisitor : PreconditionerBaseVisitor<Eigen::LeastSquareDiagonalPreconditioner<Scalar> >
9699
{
@@ -113,6 +116,7 @@ namespace eigenpy
113116

114117
}
115118
};
119+
#endif
116120

117121
struct IdentityPreconditionerVisitor : PreconditionerBaseVisitor<Eigen::IdentityPreconditioner >
118122
{

src/solvers/preconditioners.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@ namespace eigenpy
2525
using namespace Eigen;
2626

2727
DiagonalPreconditionerVisitor<double>::expose();
28+
#if EIGEN_VERSION_AT_LEAST(3,3,0)
2829
LeastSquareDiagonalPreconditionerVisitor<double>::expose();
30+
#endif
2931
IdentityPreconditionerVisitor::expose();
3032
// LimitedBFGSPreconditionerBaseVisitor< LimitedBFGSPreconditioner<double,Eigen::Dynamic,Eigen::Upper|Eigen::Lower> >::expose("LimitedBFGSPreconditioner");
3133

src/solvers/solvers.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,20 @@
1616

1717
#include "eigenpy/solvers/solvers.hpp"
1818
#include "eigenpy/solvers/ConjugateGradient.hpp"
19-
#include "eigenpy/solvers/LeastSquaresConjugateGradient.hpp"
19+
20+
#if EIGEN_VERSION_AT_LEAST(3,3,0)
21+
#include "eigenpy/solvers/LeastSquaresConjugateGradient.hpp"
22+
#endif
2023

2124
namespace eigenpy
2225
{
2326
void exposeSolvers()
2427
{
2528
using namespace Eigen;
2629
ConjugateGradientVisitor< ConjugateGradient<MatrixXd,Lower|Upper> >::expose();
30+
#if EIGEN_VERSION_AT_LEAST(3,3,0)
2731
LeastSquaresConjugateGradientVisitor< LeastSquaresConjugateGradient<MatrixXd, LeastSquareDiagonalPreconditionerFix<MatrixXd::Scalar> > >::expose();
32+
#endif
2833

2934
// Conjugate gradient with limited BFGS preconditioner
3035
ConjugateGradientVisitor< ConjugateGradient<MatrixXd,Lower|Upper,IdentityPreconditioner > >::expose("IdentityConjugateGradient");

0 commit comments

Comments
 (0)