[eigen] Discrepancy between 3.1.4 and 3.2.0 behavior on a snippet |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: Eigen development <eigen@xxxxxxxxxxxxxxxxxxx>
- Subject: [eigen] Discrepancy between 3.1.4 and 3.2.0 behavior on a snippet
- From: Rhys Ulerich <rhys.ulerich@xxxxxxxxx>
- Date: Thu, 5 Sep 2013 23:31:58 -0500
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to:content-type; bh=QH5Zqgh3yzn50eY27dHcMiKZ6HEYk6G4pKC/QsM+E6E=; b=cJb6J0dB1W3qFPn3kXV6/Sg8mkGeWjQLaBiDNfGV8C/W1BxC6uLJI+XpPLRW5tFaXY vTjEwlNtX/wdB6x2Ok4ADTS3xeua8Vo5O9hu7RRaM4E2xxQLydeVZJkjIA+iAbHNd+C/ NzMfmOu0rOuLD9YL3MxVE2tiZl2zQfw8JIL+GbBY+YsU6nN++rigrKtkDO8SdU64oggz 2wUPG0vcJPGbdmH2Xxp4X2hd9fBYBFgmkPOYOk9wemlOoQdQ3+QQiH34Yo1rjjYP9JUa 2UEkskrDAJ7+Q+c6pxZFdD0k/JDYtyxdi0wSn42FpO2pH+eQkhTbxyQtdLallnBJ86V9 Jlsw==
Hi all,
Going from 3.1.4 to 3.2.0 we saw an assertion trip in our code base
where it hadn't previously. The minimal recreate is as follows:
#include <iostream>
#include <Eigen/Core>
int main(void)
{
using namespace std;
using namespace Eigen;
typedef Array<double, Dynamic, Dynamic, ColMajor> array_type;
array_type A = array_type::Random(3, 5);
cout << A << endl << endl;
// Eigen 3.1.4 is cool with the following statement, somehow.
//
// Eigen 3.2.0 fails an assert at src/Core/PlainObjectBase.h:238
// with "Invalid sizes when resizing a matrix or array."
// on GCC 4.4.6. Similar behavior observed on GCC 4.6.3, 4.7.3, 4.8.0.
const VectorXd& b(A.row(2));
cout << b << endl << endl;
return 0;
}
I'm not claiming that either the observed 3.1.4 or 3.2.0 behavior is
correct. Just that, to first order, it feels wrong that the two Eigen
versions produce different runtime behavior.
Thoughts?
- Rhys