【发布时间】:2013-06-28 12:40:11
【问题描述】:
我正在为我的项目编写 python 包装器,它使用 Eigen 进行数学计算。在测试基本操作后,在 python 中创建的 eigen 对象总是返回错误的结果。当我不尊重使用 Eigen 的数据对齐时,这通常发生在我身上。这是通过使用 Eigen::aligned_allocator 分配特征对象来解决的。如何告诉 boost 使用 Eigen::aligned_allocator 分配特征对象?
这是一个简单的测试:
C++
using namespace boost::python;
using namespace Eigen;
class_<Isometry3d>("Isometry3d", init<>())
.def("__str__", make_function(IsometryToStr))
.def_readonly("Identity", Isometry3d::Identity())
;
IsometryToStr 函数只使用由 Eigen 定义的运算符
Python:
a = Isometry3d.Identity
print a
我们希望它打印单位矩阵,但结果总是不同。
【问题讨论】:
-
我遇到了同样的问题,我想我找到了解决方案。我在这里回答了另一个类似的问题:stackoverflow.com/a/29694518/116067
标签: c++ python boost boost-python