Eigen defines a limit on the maximum size of a dense matrix with static dimensions.
This limits the maximal problem size for the QP and SQP solvers, because of the dense KKT matrix and Hessian.
[...]/polympc/benchmark/qp_bench.cpp:314:10: error:
non-const lvalue reference to type 'Mat' (aka 'Matrix<double, N, N>') cannot
bind to a temporary of type 'Mat *' (aka 'Matrix<double, N, N> *')
Mat &A = new Mat();
^ ~~~~~~~~~
In file included from [...]/polympc/benchmark/qp_bench.cpp:9:
In file included from /usr/local/include/eigen3/Eigen/IterativeLinearSolvers:11:
In file included from /usr/local/include/eigen3/Eigen/SparseCore:11:
In file included from /usr/local/include/eigen3/Eigen/Core:450:
/usr/local/include/eigen3/Eigen/src/Core/DenseStorage.h:33:3: error: static_assert
failed "OBJECT_ALLOCATED_ON_STACK_IS_TOO_BIG"
EIGEN_STATIC_ASSERT(Size * sizeof(T) <= EIGEN_STACK_ALLOCATION_LIMIT, OBJECT_ALLOCATED_ON_STACK_IS_TOO_BIG);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/eigen3/Eigen/src/Core/util/StaticAssert.h:33:40: note: expanded
from macro 'EIGEN_STATIC_ASSERT'
#define EIGEN_STATIC_ASSERT(X,MSG) static_assert(X,#MSG);
^ ~
/usr/local/include/eigen3/Eigen/src/Core/DenseStorage.h:110:5: note: in
instantiation of function template specialization
'Eigen::internal::check_static_allocation_size<double, 160000>' requested
here
check_static_allocation_size<T,Size>();
^
/usr/local/include/eigen3/Eigen/src/Core/DenseStorage.h:187:23: note: in
instantiation of member function 'Eigen::internal::plain_array<double,
160000, 0, 16>::plain_array' requested here
EIGEN_DEVICE_FUNC DenseStorage() {
^
/usr/local/include/eigen3/Eigen/src/Core/PlainObjectBase.h:484:45: note: in
instantiation of member function 'Eigen::DenseStorage<double, 160000, 400,
400, 0>::DenseStorage' requested here
EIGEN_STRONG_INLINE PlainObjectBase() : m_storage()
^
/usr/local/include/eigen3/Eigen/src/Core/Matrix.h:259:36: note: in instantiation of
member function 'Eigen::PlainObjectBase<Eigen::Matrix<double, 400, 400, 0,
400, 400> >::PlainObjectBase' requested here
EIGEN_STRONG_INLINE Matrix() : Base()
^
[...]/polympc/benchmark/qp_bench.cpp:314:18: note:
in instantiation of member function 'Eigen::Matrix<double, 400, 400, 0, 400,
400>::Matrix' requested here
Mat &A = new Mat();