Re: [eigen] 3.3-alpha1 released! |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] 3.3-alpha1 released!
- From: Sergiu Dotenco <sergiu.dotenco@xxxxxxxxx>
- Date: Fri, 18 Sep 2015 19:51:55 +0200
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-type:content-transfer-encoding; bh=qqvultHSqhPU3pLGIKNjhbXL5SIj6Qf9/AJxvXSK6JE=; b=XszphgVNWiB4pBrHebJY4ROlSAdzFeLqQxcy9CVYpnylKoXUKFA+tApX4UWN4vProw J460CdRfK6wjOsemJr+bh9XnCg4y/2HCHEoS/3McNHcLw8H0D213pg85XiCOdyqAkM09 3di33K+PnEGTCwmrWMuySxzBR1PRC5KodO4Odm43FHFj63qm6Y8EwtO8FyGhgVY+6XDp TcqZEk2NQY68jlIEd+JrG6rDvvhKXZwfLgypbjBEmzLGS9wD7c06IO3c4518+kevSHqe edC/ERcJgJSTlr4TYp2l9EH9X9kRQtnYlT5akhXoG3/8a6pdc9djZusig/yuKLU1TCzc /F8g==
Hi Gael,
The following code does not compile using Visual Studio 2015 and the
current tip (2a591c7d6739 at the moment of writing):
#include <Eigen/Core>
#include <Eigen/Geometry>
#include <Eigen/LU>
int main()
{
Eigen::Matrix4d::Identity().lu()
.solve(Eigen::Vector3d::Ones().homogeneous()).hnormalized();
}
The error output follows.
Best,
Sergiu
D:\Projects\eigen>cl -I . test.cpp /EHsc
Microsoft (R) C/C++ Optimizing Compiler Version 19.00.23026 for x86
Copyright (C) Microsoft Corporation. All rights reserved.
test.cpp
d:\projects\eigen\eigen\src/Core/ProductEvaluators.h(899): error C2027:
use of undefined type
'Eigen::internal::permutation_matrix_product<Rhs,1,false,MatrixShape>'
with
[
Rhs=Eigen::Homogeneous<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,Eigen::Matrix<double,3,1,0,3,1>>,0>,
MatrixShape=Eigen::internal::evaluator_traits<Eigen::Homogeneous<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,Eigen::Matrix<double,3,1,0,3,1>>,0>>::Shape
]
d:\projects\eigen\eigen\src/Core/ProductEvaluators.h(138): note: see
reference to function template instantiation 'void
Eigen::internal::generic_product_impl<Lhs,Rhs,Eigen::PermutationShape,Eigen::internal::evaluator_traits<Rhs>::Shape,3>::evalTo<DstXprType>(Dest
&,const Lhs &,const Rhs &)' being compiled
with
[
Lhs=Eigen::PermutationMatrix<4,4,int>,
Rhs=Eigen::Homogeneous<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,Eigen::Matrix<double,3,1,0,3,1>>,0>,
DstXprType=ActualDstTypeCleaned,
Dest=ActualDstTypeCleaned
]
d:\projects\eigen\eigen\src/Core/ProductEvaluators.h(138): note: see
reference to function template instantiation 'void
Eigen::internal::generic_product_impl<Lhs,Rhs,Eigen::PermutationShape,Eigen::internal::evaluator_traits<Rhs>::Shape,3>::evalTo<DstXprType>(Dest
&,const Lhs &,const Rhs &)' being compiled
with
[
Lhs=Eigen::PermutationMatrix<4,4,int>,
Rhs=Eigen::Homogeneous<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,Eigen::Matrix<double,3,1,0,3,1>>,0>,
DstXprType=ActualDstTypeCleaned,
Dest=ActualDstTypeCleaned
]
d:\projects\eigen\eigen\src/Core/ProductEvaluators.h(136): note: while
compiling class template member function 'void
Eigen::internal::Assignment<ActualDstTypeCleaned,Src,Func,Eigen::internal::AssignmentKind<Eigen::DenseShape,Eigen::DenseShape>::Kind,double>::run(DstXprType
&,const
Eigen::Product<Eigen::PermutationMatrix<4,4,int>,Eigen::Homogeneous<Derived,0>,2>
&,const Eigen::internal::assign_op<double> &)'
with
[
Src=Eigen::Product<Eigen::PermutationMatrix<4,4,int>,Eigen::Homogeneous<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,Eigen::Matrix<double,3,1,0,3,1>>,0>,2>,
Func=Eigen::internal::assign_op<double>,
DstXprType=ActualDstTypeCleaned,
Derived=Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,Eigen::Matrix<double,3,1,0,3,1>>
]
d:\projects\eigen\eigen\src/Core/AssignEvaluator.h(765): note: see
reference to function template instantiation 'void
Eigen::internal::Assignment<ActualDstTypeCleaned,Src,Func,Eigen::internal::AssignmentKind<Eigen::DenseShape,Eigen::DenseShape>::Kind,double>::run(DstXprType
&,const
Eigen::Product<Eigen::PermutationMatrix<4,4,int>,Eigen::Homogeneous<Derived,0>,2>
&,const Eigen::internal::assign_op<double> &)' being compiled
with
[
Src=Eigen::Product<Eigen::PermutationMatrix<4,4,int>,Eigen::Homogeneous<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,Eigen::Matrix<double,3,1,0,3,1>>,0>,2>,
Func=Eigen::internal::assign_op<double>,
DstXprType=ActualDstTypeCleaned,
Derived=Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,Eigen::Matrix<double,3,1,0,3,1>>
]
d:\projects\eigen\eigen\src/Core/AssignEvaluator.h(765): note: see
reference to class template instantiation
'Eigen::internal::Assignment<ActualDstTypeCleaned,Src,Func,Eigen::internal::AssignmentKind<Eigen::DenseShape,Eigen::DenseShape>::Kind,double>'
being compiled
with
[
Src=Eigen::Product<Eigen::PermutationMatrix<4,4,int>,Eigen::Homogeneous<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,Eigen::Matrix<double,3,1,0,3,1>>,0>,2>,
Func=Eigen::internal::assign_op<double>
]
d:\projects\eigen\eigen\src/Core/AssignEvaluator.h(718): note: see
reference to function template instantiation 'void
Eigen::internal::call_assignment_no_alias<Dst,Src,Func>(Dst &,const Src
&,const Func &)' being compiled
with
[
Dst=Eigen::Matrix<double,4,1,0,4,1>,
Src=Eigen::Product<Eigen::PermutationMatrix<4,4,int>,Eigen::Homogeneous<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,Eigen::Matrix<double,3,1,0,3,1>>,0>,2>,
Func=Eigen::internal::assign_op<double>
]
d:\projects\eigen\eigen\src/Core/AssignEvaluator.h(699): note: see
reference to function template instantiation 'void
Eigen::internal::call_assignment<Dst,Src,Eigen::internal::assign_op<double>>(Dst
&,const Src &,const Func &,void *)' being compiled
with
[
Dst=Eigen::Matrix<double,4,1,0,4,1>,
Src=Eigen::Product<Eigen::PermutationMatrix<4,4,int>,Eigen::Homogeneous<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,Eigen::Matrix<double,3,1,0,3,1>>,0>,2>,
Func=Eigen::internal::assign_op<double>
]
d:\projects\eigen\eigen\src/Core/PlainObjectBase.h(677): note: see
reference to function template instantiation 'void
Eigen::internal::call_assignment<Derived,Eigen::Product<Eigen::PermutationMatrix<4,4,int>,Eigen::Homogeneous<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,Eigen::Matrix<double,3,1,0,3,1>>,0>,2>>(Dst
&,const Src &)' being compiled
with
[
Derived=Eigen::Matrix<double,4,1,0,4,1>,
Dst=Eigen::Matrix<double,4,1,0,4,1>,
Src=Eigen::Product<Eigen::PermutationMatrix<4,4,int>,Eigen::Homogeneous<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,Eigen::Matrix<double,3,1,0,3,1>>,0>,2>
]
d:\projects\eigen\eigen\src/Core/Matrix.h(225): note: see reference to
function template instantiation 'Derived
&Eigen::PlainObjectBase<Derived>::_set<Eigen::Product<Eigen::PermutationMatrix<4,4,int>,Eigen::Homogeneous<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,Eigen::Matrix<double,3,1,0,3,1>>,0>,2>>(const
Eigen::DenseBase<Eigen::Product<Eigen::PermutationMatrix<4,4,int>,Eigen::Homogeneous<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,Eigen::Matrix<double,3,1,0,3,1>>,0>,2>>
&)' being compiled
with
[
Derived=Eigen::Matrix<double,4,1,0,4,1>
]
d:\projects\eigen\eigen\src/Core/Matrix.h(225): note: see reference to
function template instantiation 'Derived
&Eigen::PlainObjectBase<Derived>::_set<Eigen::Product<Eigen::PermutationMatrix<4,4,int>,Eigen::Homogeneous<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,Eigen::Matrix<double,3,1,0,3,1>>,0>,2>>(const
Eigen::DenseBase<Eigen::Product<Eigen::PermutationMatrix<4,4,int>,Eigen::Homogeneous<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,Eigen::Matrix<double,3,1,0,3,1>>,0>,2>>
&)' being compiled
with
[
Derived=Eigen::Matrix<double,4,1,0,4,1>
]
d:\projects\eigen\eigen\src/LU/PartialPivLU.h(203): note: see reference
to function template instantiation 'Eigen::Matrix<double,4,1,0,4,1>
&Eigen::Matrix<double,4,1,0,4,1>::operator =<Derived>(const
Eigen::DenseBase<Derived> &)' being compiled
with
[
Derived=Eigen::Product<Eigen::PermutationMatrix<4,4,int>,Eigen::Homogeneous<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,Eigen::Matrix<double,3,1,0,3,1>>,0>,2>
]
d:\projects\eigen\eigen\src/LU/PartialPivLU.h(203): note: see reference
to function template instantiation 'Eigen::Matrix<double,4,1,0,4,1>
&Eigen::Matrix<double,4,1,0,4,1>::operator =<Derived>(const
Eigen::DenseBase<Derived> &)' being compiled
with
[
Derived=Eigen::Product<Eigen::PermutationMatrix<4,4,int>,Eigen::Homogeneous<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,Eigen::Matrix<double,3,1,0,3,1>>,0>,2>
]
d:\projects\eigen\eigen\src/Core/Solve.h(126): note: see reference to
function template instantiation 'void
Eigen::PartialPivLU<Eigen::Matrix<double,4,4,0,4,4>>::_solve_impl<RhsType,Eigen::Matrix<double,4,1,0,4,1>>(const
RhsType &,DstType &) const' being compiled
with
[
RhsType=Eigen::Homogeneous<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,Eigen::Matrix<double,3,1,0,3,1>>,0>,
DstType=Eigen::Matrix<double,4,1,0,4,1>
]
d:\projects\eigen\eigen\src/Core/Solve.h(126): note: see reference to
function template instantiation 'void
Eigen::PartialPivLU<Eigen::Matrix<double,4,4,0,4,4>>::_solve_impl<RhsType,Eigen::Matrix<double,4,1,0,4,1>>(const
RhsType &,DstType &) const' being compiled
with
[
RhsType=Eigen::Homogeneous<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,Eigen::Matrix<double,3,1,0,3,1>>,0>,
DstType=Eigen::Matrix<double,4,1,0,4,1>
]
d:\projects\eigen\eigen\src/Core/Solve.h(122): note: while compiling
class template member function
'Eigen::internal::evaluator<Derived>::evaluator(const
Eigen::Solve<Eigen::PartialPivLU<Eigen::Matrix<double,4,4,0,4,4>>,Eigen::Homogeneous<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,Eigen::Matrix<double,3,1,0,3,1>>,0>>
&)'
with
[
Derived=Eigen::Solve<Eigen::PartialPivLU<Eigen::Matrix<double,4,4,0,4,4>>,Eigen::Homogeneous<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,Eigen::Matrix<double,3,1,0,3,1>>,0>>
]
d:\projects\eigen\eigen\src/Core/DenseCoeffsBase.h(142): note: see
reference to function template instantiation
'Eigen::internal::evaluator<Derived>::evaluator(const
Eigen::Solve<Eigen::PartialPivLU<Eigen::Matrix<double,4,4,0,4,4>>,Eigen::Homogeneous<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,Eigen::Matrix<double,3,1,0,3,1>>,0>>
&)' being compiled
with
[
Derived=Eigen::Solve<Eigen::PartialPivLU<Eigen::Matrix<double,4,4,0,4,4>>,Eigen::Homogeneous<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,Eigen::Matrix<double,3,1,0,3,1>>,0>>
]
d:\projects\eigen\eigen\src/Core/DenseCoeffsBase.h(142): note: see
reference to class template instantiation
'Eigen::internal::evaluator<Derived>' being compiled
with
[
Derived=Eigen::Solve<Eigen::PartialPivLU<Eigen::Matrix<double,4,4,0,4,4>>,Eigen::Homogeneous<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,Eigen::Matrix<double,3,1,0,3,1>>,0>>
]
d:\projects\eigen\eigen\src/Core/DenseCoeffsBase.h(140): note: while
compiling class template member function 'double
Eigen::DenseCoeffsBase<Derived,0>::coeff(Eigen::EigenBase<Derived>::Index)
const'
with
[
Derived=Eigen::Solve<Eigen::PartialPivLU<Eigen::Matrix<double,4,4,0,4,4>>,Eigen::Homogeneous<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,Eigen::Matrix<double,3,1,0,3,1>>,0>>
]
d:\projects\eigen\eigen\src/Geometry/Homogeneous.h(164): note: see
reference to function template instantiation 'double
Eigen::DenseCoeffsBase<Derived,0>::coeff(Eigen::EigenBase<Derived>::Index)
const' being compiled
with
[
Derived=Eigen::Solve<Eigen::PartialPivLU<Eigen::Matrix<double,4,4,0,4,4>>,Eigen::Homogeneous<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,Eigen::Matrix<double,3,1,0,3,1>>,0>>
]
d:\projects\eigen\eigen\src/Core/util/XprHelper.h(455): note: see
reference to class template instantiation
'Eigen::DenseCoeffsBase<Derived,0>' being compiled
with
[
Derived=Eigen::Solve<Eigen::PartialPivLU<Eigen::Matrix<double,4,4,0,4,4>>,Eigen::Homogeneous<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,Eigen::Matrix<double,3,1,0,3,1>>,0>>
]
d:\projects\eigen\eigen\src/Core/DenseBase.h(48): note: see reference to
class template instantiation
'Eigen::internal::special_scalar_op_base<Derived,double,double,false>'
being compiled
with
[
Derived=Eigen::Solve<Eigen::PartialPivLU<Eigen::Matrix<double,4,4,0,4,4>>,Eigen::Homogeneous<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,Eigen::Matrix<double,3,1,0,3,1>>,0>>
]
d:\projects\eigen\eigen\src/Core/MatrixBase.h(50): note: see reference
to class template instantiation 'Eigen::DenseBase<Derived>' being compiled
with
[
Derived=Eigen::Solve<Eigen::PartialPivLU<Eigen::Matrix<double,4,4,0,4,4>>,Eigen::Homogeneous<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,Eigen::Matrix<double,3,1,0,3,1>>,0>>
]
d:\projects\eigen\eigen\src/Core/Solve.h(89): note: see reference to
class template instantiation
'Eigen::MatrixBase<Eigen::Solve<Eigen::PartialPivLU<Eigen::Matrix<double,4,4,0,4,4>>,Eigen::Homogeneous<Derived,0>>>'
being compiled
with
[
Derived=Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,Eigen::Matrix<double,3,1,0,3,1>>
]
d:\projects\eigen\eigen\src/Core/Solve.h(64): note: see reference to
class template instantiation
'Eigen::SolveImpl<Decomposition,RhsType,Eigen::Dense>' being compiled
with
[
Decomposition=Eigen::PartialPivLU<Eigen::Matrix<double,4,4,0,4,4>>,
RhsType=Eigen::Homogeneous<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,Eigen::Matrix<double,3,1,0,3,1>>,0>
]
test.cpp(7): note: see reference to class template instantiation
'Eigen::Solve<Eigen::PartialPivLU<Eigen::Matrix<double,4,4,0,4,4>>,Eigen::Homogeneous<Derived,0>>'
being compiled
with
[
Derived=Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,Eigen::Matrix<double,3,1,0,3,1>>
]
d:\projects\eigen\eigen\src/Core/ProductEvaluators.h(899): error C3861:
'run': identifier not found
On 9/4/2015 6:19 PM, Gael Guennebaud wrote:
> Eigen 3.3-alpha1 has been released today, September 4, 2015.
>
> The source archive is at:
> http://bitbucket.org/eigen/eigen/get/3.3-alpha1.tar.bz2
>
> This alpha version introduces a novel evaluation mechanism of
> expressions, as well as numerous exciting features such as fast divide
> and conquer SVD [1], support for AVX and VSX vector instructions, more
> OpenMP parallelism [2], a LS-CG solver [3], and more. Check the page
> dedicated on the 3.3 release [4] for a comprehensive review of the
> novelties and improvements.
>
> As for any alpha and beta release, everybody is invited to test this
> release on their own basecode and report any compilation issues or
> performance regressions on the bugtracker [5].
>
> Complete changelog: http://eigen.tuxfamily.org/index.php?title=3.3
>
> [1] http://eigen.tuxfamily.org/dox-devel/classEigen_1_1BDCSVD.html
> [2] http://eigen.tuxfamily.org/dox-devel/TopicMultiThreading.html
> [3]
> http://eigen.tuxfamily.org/dox-devel/classEigen_1_1LeastSquaresConjugateGradient.html
> [4] http://eigen.tuxfamily.org/index.php?title=3.3
> [5] http://eigen.tuxfamily.org/bz