Re: [eigen] problem with selfadjointView |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] problem with selfadjointView
- From: Ben Goodrich <bgokgm@xxxxxxxxxxxxxx>
- Date: Mon, 30 Aug 2010 23:44:24 -0400
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=8nEiQiO8Nua93gBXdwqgeTOXLLOmPaI2g1ZCZAwZQ7o=; b=NxbsRbmLV38Ado97Pqa6gb515lHqlG6LnuukYA+X7SUvKJ/jNyH5qgHUaiDOwM3oSN uVMUG8wuOKK6hWmGFU8Sm1gSeDc1fu2+MyNFx26spANRrS0vZBtPM0wk09y9kWalUjVx ZSY/f1xc3Kjyx6wzniCjX40niPtdIeuQVe4jo=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=YEhaoJyxnjU0W3E0jyAy9t7oBU3Rs8s0daZ87DOQ1Lqx48SPShY9eUMP9fSFhNVNBt VWoupGGq56Fics9oAZKbGOgYlLgMb7wrETIdd0FF/YVsDXCRTyaWiHesHieQ4kmvrhZC 3gKvkHeGQmZpri7y7mEc9sQQKRgQQouCGzg1c=
Hi,
As far as I can tell, multiplying a selfadjointView by another
selfadjointView is not implemented (and similarly for triangularView
by triangularView, triangularView by selfadjointView, etc.) Is this by
design?
Thanks,
Ben
goodrich@X41Laptop:/tmp$ cat test.cc
#include "/tmp/eigen/Eigen/Eigen"
#include <iostream>
using namespace Eigen;
int main() {
MatrixXd A(5,5);
A.setRandom();
A = A * A.transpose();
A = A.selfadjointView<Lower>() * A.transpose().selfadjointView<Upper>();
std::cout << A << std::endl;
return 0;
}
goodrich@X41Laptop:/tmp$ g++-4.5 -O2 -msse2 -DDEBUG -Wall test.cc -o test.o
test.cc: In function ‘int main()’:
test.cc:9:72: error: no match for ‘operator*’ in
‘((Eigen::MatrixBase<Eigen::Matrix<double, -0x00000000000000001,
-0x00000000000000001> >*)(&
A))->Eigen::MatrixBase<Derived>::selfadjointView [with unsigned int
UpLo = 1u, Derived = Eigen::Matrix<double, -0x00000000000000001,
-0x00000000000000001>]() *
((Eigen::MatrixBase<Eigen::Transpose<Eigen::Matrix<double,
-0x00000000000000001, -0x00000000000000001> >
>*)(&((Eigen::DenseBase<Eigen::Matrix<double, -0x00000000000000001,
-0x00000000000000001> >*)(& A))->Eigen::DenseBase<Derived>::transpose
[with Derived = Eigen::Matrix<double, -0x00000000000000001,
-0x00000000000000001>]()))->Eigen::MatrixBase<Derived>::selfadjointView
[with unsigned int UpLo = 2u, Derived =
Eigen::Transpose<Eigen::Matrix<double, -0x00000000000000001,
-0x00000000000000001> >]()’
/tmp/eigen/Eigen/src/Core/../plugins/CommonCwiseUnaryOps.h:95:1: note:
candidates are: const
Eigen::CwiseUnaryOp<Eigen::ei_scalar_multiple2_op<double,
std::complex<double> >, Eigen::Matrix<double, -0x00000000000000001,
-0x00000000000000001> > Eigen::operator*(const std::complex<double>&,
const Eigen::MatrixBase<Eigen::Matrix<double, -0x00000000000000001,
-0x00000000000000001> >::StorageBaseType&)
/tmp/eigen/Eigen/src/Core/../plugins/CommonCwiseUnaryOps.h:91:1: note:
const Eigen::MatrixBase<Eigen::Matrix<double,
-0x00000000000000001, -0x00000000000000001>
>::ScalarMultipleReturnType Eigen::operator*(const
Eigen::MatrixBase<Eigen::Matrix<double, -0x00000000000000001,
-0x00000000000000001, 0, -0x00000000000000001, -0x00000000000000001>
>::Scalar&, const Eigen::MatrixBase<Eigen::Matrix<double,
-0x00000000000000001, -0x00000000000000001> >::StorageBaseType&)
/tmp/eigen/Eigen/src/Core/../plugins/CommonCwiseUnaryOps.h:95:1: note:
const
Eigen::CwiseUnaryOp<Eigen::ei_scalar_multiple2_op<double,
std::complex<double> >, Eigen::Transpose<Eigen::Matrix<double,
-0x00000000000000001, -0x00000000000000001> > > Eigen::operator*(const
std::complex<double>&, const
Eigen::MatrixBase<Eigen::Transpose<Eigen::Matrix<double,
-0x00000000000000001, -0x00000000000000001> > >::StorageBaseType&)
/tmp/eigen/Eigen/src/Core/../plugins/CommonCwiseUnaryOps.h:91:1: note:
const
Eigen::MatrixBase<Eigen::Transpose<Eigen::Matrix<double,
-0x00000000000000001, -0x00000000000000001> >
>::ScalarMultipleReturnType Eigen::operator*(const
Eigen::MatrixBase<Eigen::Transpose<Eigen::Matrix<double,
-0x00000000000000001, -0x00000000000000001, 0, -0x00000000000000001,
-0x00000000000000001> > >::Scalar&, const
Eigen::MatrixBase<Eigen::Transpose<Eigen::Matrix<double,
-0x00000000000000001, -0x00000000000000001> > >::StorageBaseType&)