Re: [eigen] row major issues |
[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]
I was able to fix the INVALID_MATRIX_TEMPLATE_PARAMETERS related error but I am unable to fix this test qr_colpivoting_5 because MSVC's error output is unusable. I attached them anyways. I assume the errors caused from qr_1 and qr_11 are related. In order to fix mixingtypes, I needed to introduce two reinterpret_casts. Since I have no clue about the restrict keyword, I just attached the patch. I will leave the rest of the errors untouched for now. - Hauke On Mon, Jun 21, 2010 at 11:47 PM, Hauke Heibel <hauke.heibel@xxxxxxxxxxxxxx> wrote: > Hi, > > the dashboards for x32 and x64 bit builds with column major matrices > are now green. After switching to row major matrices we are > unfortunately seeing a bunch of errors. See here: > > http://eigen.tuxfamily.org/CDash/buildSummary.php?buildid=2683 > > I am right now too tired to try to understand the assertions - maybe > it is super easy for one of you guys. I am guessing it has something > to do with the vector logic and the required storage order for > vectors. > > - Hauke >
1>------ Rebuild All started: Project: qr_colpivoting_5, Configuration: Debug Win32 ------ 1>Build started 22.06.2010 09:33:01. 1>_PrepareForClean: 1> Deleting file "qr_colpivoting_5.dir\Debug\qr_colpivoting_5.lastbuildstate". 1>InitializeBuildStatus: 1> Touching "qr_colpivoting_5.dir\Debug\qr_colpivoting_5.unsuccessfulbuild". 1>CustomBuild: 1> Building Custom Rule C:/Users/Hauke/Documents/Camp/external/eigen/eigen/test/CMakeLists.txt 1> CMake does not need to re-run because CMakeFiles/generate.stamp is up-to-date. 1>ClCompile: 1> qr_colpivoting.cpp 1>c:\users\hauke\documents\camp\external\eigen\eigen\eigen\src/Core/VectorBlock.h(122): error C2338: YOU_TRIED_CALLING_A_VECTOR_METHOD_ON_A_MATRIX 1> c:\users\hauke\documents\camp\external\eigen\eigen\eigen\src/Core/VectorBlock.h(121) : while compiling class template member function 'Eigen::VectorBlock<VectorType> Eigen::DenseBase<Derived>::segment(__w64 int,__w64 int)' 1> with 1> [ 1> VectorType=Eigen::Matrix<double,-1,-1>, 1> Derived=Eigen::Matrix<double,-1,-1> 1> ] 1> c:\users\hauke\documents\camp\external\eigen\eigen\eigen\src/Core/CwiseNullaryOp.h(310) : while compiling class template member function 'Eigen::Matrix<_Scalar,_Rows,_Cols> &Eigen::DenseBase<Derived>::setConstant(const double &)' 1> with 1> [ 1> _Scalar=double, 1> _Rows=-1, 1> _Cols=-1, 1> Derived=Eigen::Matrix<double,-1,-1> 1> ] 1> c:\users\hauke\documents\camp\external\eigen\eigen\eigen\src/Core/CwiseNullaryOp.h(458) : while compiling class template member function 'Eigen::Matrix<_Scalar,_Rows,_Cols> &Eigen::DenseBase<Derived>::setZero(void)' 1> with 1> [ 1> _Scalar=double, 1> _Rows=-1, 1> _Cols=-1, 1> Derived=Eigen::Matrix<double,-1,-1> 1> ] 1> c:\users\hauke\documents\camp\external\eigen\eigen\eigen\src/Core/ProductBase.h(246) : see reference to function template instantiation 'void Eigen::ProductBase<Derived,Lhs,Rhs>::evalTo<Eigen::Matrix<_Scalar,_Rows,_Cols>>(Dest &) const' being compiled 1> with 1> [ 1> Derived=Eigen::TriangularProduct<6,true,Eigen::Transpose<Eigen::Block<Eigen::Matrix<double,6,6>>>,false,Eigen::Block<Eigen::Matrix<double,6,6>>,false>, 1> Lhs=Eigen::Transpose<Eigen::Block<Eigen::Matrix<double,6,6>>>, 1> Rhs=Eigen::Block<Eigen::Matrix<double,6,6>>, 1> _Scalar=double, 1> _Rows=-1, 1> _Cols=-1, 1> Dest=Eigen::Matrix<double,-1,-1> 1> ] 1> c:\users\hauke\documents\camp\external\eigen\eigen\eigen\src/Core/DenseStorageBase.h(310) : see reference to function template instantiation 'Derived &Eigen::MatrixBase<Derived>::lazyAssign<Eigen::TriangularProduct<Mode,LhsIsTriangular,Lhs,LhsIsVector,Rhs,RhsIsVector>,Lhs,Rhs>(const Eigen::ProductBase<Eigen::TriangularProduct<Mode,LhsIsTriangular,Lhs,LhsIsVector,Rhs,RhsIsVector>,Lhs,Rhs> &)' being compiled 1> with 1> [ 1> Derived=Eigen::Matrix<double,-1,-1>, 1> Mode=6, 1> LhsIsTriangular=true, 1> Lhs=Eigen::Transpose<Eigen::Block<Eigen::Matrix<double,6,6>>>, 1> LhsIsVector=false, 1> Rhs=Eigen::Block<Eigen::Matrix<double,6,6>>, 1> RhsIsVector=false 1> ] 1> c:\users\hauke\documents\camp\external\eigen\eigen\eigen\src/Core/Assign.h(505) : see reference to function template instantiation 'Derived &Eigen::DenseStorageBase<Derived>::lazyAssign<Eigen::TriangularProduct<Mode,LhsIsTriangular,Lhs,LhsIsVector,Rhs,RhsIsVector>>(const Eigen::DenseBase<Eigen::TriangularProduct<Mode,LhsIsTriangular,Lhs,LhsIsVector,Rhs,RhsIsVector>> &)' being compiled 1> with 1> [ 1> Derived=Eigen::Matrix<double,-1,-1>, 1> Mode=6, 1> LhsIsTriangular=true, 1> Lhs=Eigen::Transpose<Eigen::Block<Eigen::Matrix<double,6,6>>>, 1> LhsIsVector=false, 1> Rhs=Eigen::Block<Eigen::Matrix<double,6,6>>, 1> RhsIsVector=false 1> ] 1> c:\users\hauke\documents\camp\external\eigen\eigen\eigen\src/Core/Assign.h(505) : while compiling class template member function 'Eigen::Matrix<_Scalar,_Rows,_Cols> &Eigen::ei_assign_selector<Derived,OtherDerived,EvalBeforeAssigning>::run(Derived &,const OtherDerived &)' 1> with 1> [ 1> _Scalar=double, 1> _Rows=-1, 1> _Cols=-1, 1> Derived=Eigen::Matrix<double,-1,-1>, 1> OtherDerived=Eigen::TriangularProduct<6,true,Eigen::Transpose<Eigen::Block<Eigen::Matrix<double,6,6>>>,false,Eigen::Block<Eigen::Matrix<double,6,6>>,false>, 1> EvalBeforeAssigning=false 1> ] 1> c:\users\hauke\documents\camp\external\eigen\eigen\eigen\src/Core/DenseStorageBase.h(479) : see reference to class template instantiation 'Eigen::ei_assign_selector<Derived,OtherDerived,EvalBeforeAssigning>' being compiled 1> with 1> [ 1> Derived=Eigen::Matrix<double,-1,-1>, 1> OtherDerived=Eigen::TriangularProduct<6,true,Eigen::Transpose<Eigen::Block<Eigen::Matrix<double,6,6>>>,false,Eigen::Block<Eigen::Matrix<double,6,6>>,false>, 1> EvalBeforeAssigning=false 1> ] 1> c:\users\hauke\documents\camp\external\eigen\eigen\eigen\src/Core/Matrix.h(285) : see reference to function template instantiation 'Derived &Eigen::DenseStorageBase<Derived>::_set_noalias<Eigen::TriangularProduct<Mode,LhsIsTriangular,Lhs,LhsIsVector,Rhs,RhsIsVector>>(const Eigen::DenseBase<Eigen::TriangularProduct<Mode,LhsIsTriangular,Lhs,LhsIsVector,Rhs,RhsIsVector>> &)' being compiled 1> with 1> [ 1> Derived=Eigen::Matrix<double,-1,-1>, 1> Mode=6, 1> LhsIsTriangular=true, 1> Lhs=Eigen::Transpose<Eigen::Block<Eigen::Matrix<double,6,6>>>, 1> LhsIsVector=false, 1> Rhs=Eigen::Block<Eigen::Matrix<double,6,6>>, 1> RhsIsVector=false 1> ] 1> c:\users\hauke\documents\camp\external\eigen\eigen\eigen\src/Householder/BlockHouseholder.h(69) : see reference to function template instantiation 'Eigen::Matrix<_Scalar,_Rows,_Cols>::Matrix<Derived>(const Eigen::MatrixBase<Derived> &)' being compiled 1> with 1> [ 1> _Scalar=double, 1> _Rows=-1, 1> _Cols=-1, 1> Derived=Eigen::TriangularProduct<6,true,Eigen::Transpose<Eigen::Block<Eigen::Matrix<double,6,6>>>,false,Eigen::Block<Eigen::Matrix<double,6,6>>,false> 1> ] 1> c:\users\hauke\documents\camp\external\eigen\eigen\eigen\src/QR/HouseholderQR.h(281) : see reference to function template instantiation 'void Eigen::ei_apply_block_householder_on_the_left<BlockType,BlockType,Eigen::Transpose<MatrixType>>(Eigen::Block<XprType> &,const VectorsType &,const CoeffsType &)' being compiled 1> with 1> [ 1> MatrixType=Eigen::Block<Eigen::Matrix<double,6,1>,-1,1>, 1> XprType=Eigen::Matrix<double,6,6>, 1> VectorsType=BlockType, 1> CoeffsType=Eigen::Transpose<Eigen::Block<Eigen::Matrix<double,6,1>,-1,1>> 1> ] 1> c:\users\hauke\documents\camp\external\eigen\eigen\eigen\src/QR/HouseholderQR.h(298) : see reference to function template instantiation 'void Eigen::ei_householder_qr_inplace_blocked<Eigen::Matrix<_Scalar,_Rows,_Cols>,Eigen::Matrix<_Scalar,6,1>>(MatrixQR &,HCoeffs &,__w64 int,double *)' being compiled 1> with 1> [ 1> _Scalar=double, 1> _Rows=6, 1> _Cols=6, 1> MatrixQR=Eigen::Matrix<double,6,6>, 1> HCoeffs=Eigen::Matrix<double,6,1> 1> ] 1> c:\users\hauke\documents\camp\external\eigen\eigen\eigen\src/QR/HouseholderQR.h(288) : while compiling class template member function 'Eigen::HouseholderQR<_MatrixType> &Eigen::HouseholderQR<_MatrixType>::compute(const Eigen::Matrix<_Scalar,_Rows,_Cols> &)' 1> with 1> [ 1> _MatrixType=Eigen::Matrix<double,6,6>, 1> _Scalar=double, 1> _Rows=6, 1> _Cols=6 1> ] 1> c:\users\hauke\documents\camp\external\eigen\eigen\test\main.h(420) : see reference to class template instantiation 'Eigen::HouseholderQR<_MatrixType>' being compiled 1> with 1> [ 1> _MatrixType=Eigen::Matrix<double,6,6> 1> ] 1> ..\..\..\eigen\test\qr_colpivoting.cpp(69) : see reference to function template instantiation 'void Eigen::createRandomPIMatrixOfRank<Eigen::Matrix<_Scalar,_Rows,_Cols>>(__w64 int,__w64 int,__w64 int,MatrixType &)' being compiled 1> with 1> [ 1> _Scalar=double, 1> _Rows=6, 1> _Cols=2, 1> MatrixType=Eigen::Matrix<double,6,2> 1> ] 1> ..\..\..\eigen\test\qr_colpivoting.cpp(145) : see reference to function template instantiation 'void qr_fixedsize<Eigen::Matrix<_Scalar,_Rows,_Cols>,3>(void)' being compiled 1> with 1> [ 1> _Scalar=double, 1> _Rows=6, 1> _Cols=2 1> ] 1> 1>Build FAILED. 1> 1>Time Elapsed 00:00:37.43 ========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
Attachment:
mixing_fix.patch
Description: Binary data
Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |