Re: [eigen] A not so simple product |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] A not so simple product
- From: "Benoit Jacob" <jacob.benoit.1@xxxxxxxxx>
- Date: Wed, 10 Dec 2008 19:39:36 +0100
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:references; bh=tKUlrFcrAr9YcNg1jT3rBvpsDsCm6ARVDJPHU1EPdl4=; b=gfHl85JwsCZO3GH/00jyXAeFDURgvhaCNqT8uLDItGiYWxA5fldvTa1S2yRaNlGAu5 ZyN1aqNhEypMjQg5BB9IMFomwxxnJ/lF/yMXP+wTvk1RhpX3iJSd9PIV+hP6tZyjYLd8 V6FQaz7q1/r+RDOgDCikwX3An9bkUPHBGMmQ4=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:in-reply-to:mime-version :content-type:content-transfer-encoding:content-disposition :references; b=n4KtfOLbUhcc7FkqtEsO1KrVw1dIVNb2jAdk4+3HbcKusAknkSA5XTltJv0SVUowML tfC4cbWpILjuJg9IszIlM2Q+f3gY7H9RvpLMHLrgvTYPd+nrm+izoEpCympoXRiq87s/ QLsHVwJXvw2vzSRMME/h4YZ79Wy5/wEKS1mtk=
Sure, we do that all the time!
We have 33 large tests (each consisting of dozens of unit tests and
applied to several different types/sizes).
Cheers,
Benoit
2008/12/10 Keir Mierle <mierle@xxxxxxxxx>:
> One small note: Before these bugs are fixed, please put a test case in the
> test directory that fails first! This way the bugs stay fixed, and outside
> contributors can be more confident they don't break existing code. I do test
> driven development at work, and I would never go back. Without extensive
> regression tests for every bug, it's hard to maintain quality.
>
> Making a habit of writing a test case for every bug before even searching
> for the guilty lines of code is a good way to do this.
>
> Cheers,
> Keir
>
> On Wed, Dec 10, 2008 at 6:46 AM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
> wrote:
>>
>> I just discovered yet another bug in diagonal product. This part of
>> Eigen is really very buggy!!
>>
>> To grade my exam I made this program:
>>
>> #define EIGEN_DEFAULT_IO_FORMAT EIGEN_DOCS_IO_FORMAT
>> #include <Eigen/QR>
>>
>> using namespace Eigen;
>> using namespace std;
>>
>> int main()
>> {
>> Matrix3d A;
>> A << 0,1,1,
>> 1,0,1,
>> 1,1,0;
>> SelfAdjointEigenSolver<Matrix3d> s(A);
>> cout << "Eigenvalues:" << endl << s.eigenvalues() << endl;
>> cout << "Eigenvectors:" << endl << s.eigenvectors() *
>> (s.eigenvectors().row(2).cwise().inverse().asDiagonal()).eval() <<
>> endl;
>> }
>>
>> This program produces the correct result.
>>
>> But if I remove the .eval() it produces the wrong result.
>>
>> Fixing diagonal product is really my top priority in eigen.... will
>> take me a while though as a first have to grade 400 exams.
>>
>> Cheers,
>> Benoit
>>
>> ---
>>
>
>
---