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/