[Debian-med-packaging] Bug#797280: Please help porting cufflinks to latest libboost

Jakub Wilk jwilk at debian.org
Tue Jul 12 11:10:44 UTC 2016


* Andreas Tille <andreas at an3as.eu>, 2016-07-12, 11:12:
>In file included from /usr/include/eigen3/Eigen/Core:297:0,
>                 from /usr/include/eigen3/Eigen/Dense:1,
>                 from abundances.h:21,
>                 from abundances.cpp:16:
>/usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h: In instantiation of 'Eigen::DenseCoeffsBase<Derived, 0>::CoeffReturnType Eigen::DenseCoeffsBase<Derived, 0>::coeff(Eigen::Index) const [with Derived = Eigen
>/usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h:181:19:   required from 'Eigen::DenseCoeffsBase<Derived, 0>::CoeffReturnType Eigen::DenseCoeffsBase<Derived, 0>::operator()(Eigen::Index) const [with Derived
>abundances.cpp:3815:28:   required from here
>/usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h:141:7: error: 'THIS_COEFFICIENT_ACCESSOR_TAKING_ONE_ACCESS_IS_ONLY_FOR_EXPRESSIONS_ALLOWING_LINEAR_ACCESS' is not a member of 'Eigen::internal::static_assert
>       EIGEN_STATIC_ASSERT(internal::evaluator<Derived>::Flags & LinearAccessBit,
>       ^
>Makefile:1627: recipe for target 'abundances.o' failed

The relevant code in src/abundances.cpp looks like this:

	Eigen::VectorXd v;
	double m = 0;
	v = U.rowwise().sum();
	m = v.colwise().sum()(0);

For some reason Eigen thinks that v.colwise().sum() cannot be treated as 
a one-dimensional vector, which smells like a bug in Eigen. Changing the 
last line to

	m = v.colwise().sum()(0, 0);

seems to do the trick.

Upstream bug report:
https://github.com/cole-trapnell-lab/cufflinks/issues/61

-- 
Jakub Wilk



More information about the Debian-med-packaging mailing list