Re: [eigen] Dynamic memory allocation with Matrix::corner ? |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
On Thu, 21 Jan 2010, hamelin.philippe@xxxxxxx wrote:
I just want to make sure that this code doesn't generate dynamic memory
allocation :
Matrix<double, 6, 6> large;
Matrix<double, 3, 3> small;
large.corner(Eigen::TopLeft, 3, 3) = small;
It does not. You can check that by compiling and running the program
below (I saw this trick in test/nomalloc.cpp).
Jitse
// discard stack allocation as that too bypasses malloc
#define EIGEN_STACK_ALLOCATION_LIMIT 0
// any heap allocation will raise an assert
#define EIGEN_NO_MALLOC
#include <Eigen/Core>
using Eigen::Matrix;
int main()
{
Matrix<double, 6, 6> large;
Matrix<double, 3, 3> small;
large.corner(Eigen::TopLeft, 3, 3) = small;
}