Re: [eigen] 2.0.16 and 3.0.1 for the end of the week. |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] 2.0.16 and 3.0.1 for the end of the week.
- From: Anton Gladky <gladky.anton@xxxxxxxxx>
- Date: Fri, 27 May 2011 20:25:53 +0200
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:from:date :message-id:subject:to:content-type:content-transfer-encoding; bh=VXmJBJYNSrckLwCVsBd9978rgJ/0GD6EFbYW3KZrM+U=; b=hxF/UhY/ufXaVOnENVkEk4UjW5S1MuSxOQ8XGZORBIp4WYqYCS652zNcQqj/6AyURE ZbjB9nkjWitqD3HM7QMXEGjNGRjqrwQX6F31ei8mLObOgwC3rJmtDE7gfzn+0l4ABG4P uPjzYW31jLRVTf16X2bPeinxhgbO/zLxsiWKk=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type:content-transfer-encoding; b=tiutl5FJf4/xOLXBtavmp39qTgSnQPylvYffL5EVSpNBr3t1a7oDr9XBVBX4JnmeY7 t99y3d7TSCXOFCxHbvyMx6sS2URC+S2MJ7HddYNbUV1mbjL+qaa6pOH+Z2qw0v9i6l9Y U+FW3rKPQDV4M6atRDgC7QRv6WTslveT1tnHM=
I have checked that, and there is really a regression since 2.0.10.
But, unfortunately, 2.0.16 will not solve your problem...
I would recommend you to use 3.0.0 or coming 3.0.1.
It takes only 7.5ms to execute the code and changes are minimal:
just get rid of "#include <Eigen/Array>".
Anton
On Thu, May 26, 2011 at 9:28 PM, Robert Lupton the Good
<rhl@xxxxxxxxxxxxxxxxxxx> wrote:
> Compiled -O3 n a 64-bit Linux box the following code takes 9ms with 2.0.10 and 285ms with 2.0.15
>
> I don't know the hg root to clone the release candidate for 2.0.16 so I haven't checked.
>
> R
>
>
> #include <Eigen/Core>
> #include <Eigen/Array>
>
> int main(){
> int n = 50;
> Eigen::MatrixXd m1(n,n);
> Eigen::MatrixXd m2(n,n);
> Eigen::MatrixXd m3(n,n);
> m1.setRandom();
> m2.setRandom();
> m3.setRandom();
>
> Eigen::VectorXd v1(n);
> Eigen::VectorXd v2(n);
> Eigen::VectorXd v3(n);
> v1.setRandom();
> v2.setRandom();
> v3.setRandom();
>
> for (int i = 0; i != 100; ++i) {
> v3 = m1*(m2*v1+m3.transpose()*m2*v2);
> }
>
> return 0;
> }
>
>
>
>