-
Notifications
You must be signed in to change notification settings - Fork 47
Closed
Description
When I tried to expose this object in Crocoddyl, I have the compilation error described above.
I follow the standard procedure to expose this type of matrix, i.e.
typedef double Scalar;
typedef Eigen::Matrix<Scalar, 4, 6> Matrix46;
eigenpy::enableEigenPySpecific<Matrix46>(); from /home/cmastalli/devel/crocoddyl/bindings/python/crocoddyl/crocoddyl.cpp:9:
/usr/local/include/eigen3/Eigen/src/Core/AssignEvaluator.h: In instantiation of ‘void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Ref<Eigen::Matrix<double, 4, 6>, 0, Eigen::OuterStride<> >; Src = Eigen::CwiseUnaryOp<Eigen::internal::scalar_cast_op<int, double>, const Eigen::Transpose<const Eigen::Map<Eigen::Matrix<int, 4, 6, 0, 4, 6>, 0, Eigen::Stride<-1, -1> > > >; Func = Eigen::internal::assign_op<double, double>]’:
/usr/local/include/eigen3/Eigen/src/Core/AssignEvaluator.h:804:27: required from ‘void Eigen::internal::call_assignment(Dst&, const Src&, const Func&, typename Eigen::internal::enable_if<(! Eigen::internal::evaluator_assume_aliasing<Src>::value), void*>::type) [with Dst = Eigen::Ref<Eigen::Matrix<double, 4, 6>, 0, Eigen::OuterStride<> >; Src = Eigen::CwiseUnaryOp<Eigen::internal::scalar_cast_op<int, double>, const Eigen::Transpose<const Eigen::Map<Eigen::Matrix<int, 4, 6, 0, 4, 6>, 0, Eigen::Stride<-1, -1> > > >; Func = Eigen::internal::assign_op<double, double>; typename Eigen::internal::enable_if<(! Eigen::internal::evaluator_assume_aliasing<Src>::value), void*>::type = void*]’
/usr/local/include/eigen3/Eigen/src/Core/AssignEvaluator.h:782:18: required from ‘void Eigen::internal::call_assignment(Dst&, const Src&) [with Dst = Eigen::Ref<Eigen::Matrix<double, 4, 6>, 0, Eigen::OuterStride<> >; Src = Eigen::CwiseUnaryOp<Eigen::internal::scalar_cast_op<int, double>, const Eigen::Transpose<const Eigen::Map<Eigen::Matrix<int, 4, 6, 0, 4, 6>, 0, Eigen::Stride<-1, -1> > > >]’
/usr/local/include/eigen3/Eigen/src/Core/Assign.h:66:28: required from ‘Derived& Eigen::MatrixBase<Derived>::operator=(const Eigen::DenseBase<OtherDerived>&) [with OtherDerived = Eigen::CwiseUnaryOp<Eigen::internal::scalar_cast_op<int, double>, const Eigen::Transpose<const Eigen::Map<Eigen::Matrix<int, 4, 6, 0, 4, 6>, 0, Eigen::Stride<-1, -1> > > >; Derived = Eigen::Ref<Eigen::Matrix<double, 4, 6>, 0, Eigen::OuterStride<> >]’
/usr/local/include/eigenpy/eigen-allocator.hpp:81:17: required from ‘static void eigenpy::details::cast_matrix_or_array<Scalar, NewScalar, cast_is_valid>::run(const Eigen::MatrixBase<OtherDerived>&, const Eigen::MatrixBase<OtherDerived>&) [with MatrixIn = Eigen::Map<Eigen::Matrix<int, 4, 6, 0, 4, 6>, 0, Eigen::Stride<-1, -1> >; MatrixOut = Eigen::Ref<Eigen::Matrix<double, 4, 6>, 0, Eigen::OuterStride<> >; Scalar = int; NewScalar = double; bool cast_is_valid = true]’
/usr/local/include/eigenpy/eigen-allocator.hpp:262:13: required from ‘static void eigenpy::EigenAllocator<Eigen::Ref<PlainObjectType, RefOptions, StrideType> >::allocate(PyArrayObject*, boost::python::converter::rvalue_from_python_storage<Eigen::Ref<PlainObjectType, RefOptions, StrideType> >*) [with MatType = Eigen::Matrix<double, 4, 6>; int Options = 0; Stride = Eigen::OuterStride<>; PyArrayObject = tagPyArrayObject]’
/usr/local/include/eigenpy/eigen-from-python.hpp:265:43: required from ‘void eigenpy::eigen_from_py_construct(PyObject*, boost::python::converter::rvalue_from_python_stage1_data*) [with MatOrRefType = Eigen::Ref<Eigen::Matrix<double, 4, 6>, 0, Eigen::OuterStride<> >; PyObject = _object]’
/usr/local/include/eigenpy/eigen-from-python.hpp:489:7: required from ‘static void eigenpy::EigenFromPy<Eigen::Ref<PlainObjectType, RefOptions, StrideType> >::registration() [with MatType = Eigen::Matrix<double, 4, 6>; int Options = 0; Stride = Eigen::OuterStride<>]’
/usr/local/include/eigenpy/eigen-from-python.hpp:431:41: required from ‘static void eigenpy::EigenFromPyConverter<MatType>::registration() [with MatType = Eigen::Matrix<double, 4, 6>]’
/usr/local/include/eigenpy/details.hpp:69:48: required from ‘void eigenpy::enableEigenPySpecific() [with MatType = Eigen::Matrix<double, 4, 6>]’
/home/cmastalli/devel/crocoddyl/bindings/python/crocoddyl/crocoddyl.cpp:31:44: required from here
/usr/local/include/eigen3/Eigen/src/Core/AssignEvaluator.h:833:3: error: static assertion failed: YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES
EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(ActualDstTypeCleaned,Src)
^
Metadata
Metadata
Assignees
Labels
No labels