libeigen-3.3-beta1 is out of date and broken

Bug #1610265 reported by david ojeda
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
eigen3 (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

libeigen-3.3-beta1 is out of date. As a beta version, it breaks a lot of the existing code. In particular, triangular views were left out of this release, and re-inserted in 3.3-beta2 (amongst a lot of bug fixes, see http://eigen.tuxfamily.org/index.php?title=ChangeLog#Eigen_3.3-beta2).

An example code that does not work in 3.3-beta1, but does work in the previous and next version of Eigen:

#include <iostream>
#include <Eigen/Dense>

using namespace std;
using namespace Eigen

int main(int argc, char *argv[]) {

    MatrixXd X = MatrixXd::Random(3, 3);

    SelfAdjointEigenSolver<MatrixXd> solver(X.selfadjointView<Lower>());
    MatrixXd V = solver.eigenvectors();
    VectorXd D = solver.eigenvalues();

    cout << "X=\n" << X << endl;
    cout << "V=\n" << V << endl;
    cout << "D=\n" << D << endl;

    return 0;
}

This complains with:

In file included from /usr/include/eigen3/Eigen/Eigenvalues:38:0,
                 from /usr/include/eigen3/Eigen/Dense:7,
                 from mwe.cpp:3:
/usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h: In instantiation of ‘Eigen::SelfAdjointEigenSolver<MatrixType>& Eigen::SelfAdjointEigenSolver<_MatrixType>::compute(const Eigen::EigenBase<OtherDerived>&, int) [with InputType = Eigen::SelfAdjointView<Eigen::Matrix<double, -1, -1>, 1u>; _MatrixType = Eigen::Matrix<double, -1, -1>]’:
/usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h:168:14: required from ‘Eigen::SelfAdjointEigenSolver<_MatrixType>::SelfAdjointEigenSolver(const Eigen::EigenBase<OtherDerived>&, int) [with InputType = Eigen::SelfAdjointView<Eigen::Matrix<double, -1, -1>, 1u>; _MatrixType = Eigen::Matrix<double, -1, -1>]’
mwe.cpp:12:74: required from here
/usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h:428:7: error: ‘const class Eigen::SelfAdjointView<Eigen::Matrix<double, -1, -1>, 1u>’ has no member named ‘triangularView’
   mat = matrix.template triangularView<Lower>();

So in short, the official version of the LTS is currently very buggy. How did a beta version got included in a LTS? I guess it's impossible to go back to 3.2.9 (the latest package on 15.10 is 3.2.5), so could we at least bump it to the 3.3-beta2?

Ubuntu release:
Description: Ubuntu 16.04.1 LTS
Release: 16.04

Package version:
libeigen3-dev:
  Installed: 3.3~beta1-2
  Candidate: 3.3~beta1-2
  Version table:
 *** 3.3~beta1-2 500
        500 http://fr.archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
        500 http://fr.archive.ubuntu.com/ubuntu xenial/universe i386 Packages
        100 /var/lib/dpkg/status

Revision history for this message
david ojeda (davidojeda) wrote :

Updated correct name of package

Graham Inggs (ginggs)
Changed in eigen3 (Ubuntu):
status: New → Fix Released
Revision history for this message
david ojeda (davidojeda) wrote :

This was marked Fix Released... could you please explain why? There is no fix currently available for 16.04

Revision history for this message
david ojeda (davidojeda) wrote :

Changing back to New. There is no fix available and there are no details of the previous status change 2-3 months ago.

Changed in eigen3 (Ubuntu):
status: Fix Released → New
Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in eigen3 (Ubuntu):
status: New → Confirmed
Revision history for this message
Evgenii Frolov (frol-onn) wrote :

This bug still affects me on Ubuntu 16.04.
I can't use this version of the lib for my work on ubuntu!
It breaks my code compilation.

I have in my program the same situation as mentioned here: https://github.com/cole-trapnell-lab/cufflinks/issues/61

Revision history for this message
Graham Inggs (ginggs) wrote :

eigen3 3.3~beta2-2 was released in Ubuntu 16.10

Changed in eigen3 (Ubuntu):
status: Confirmed → Fix Released
Revision history for this message
david ojeda (davidojeda) wrote :

Are we going to continue this tennis match of moving back and forward from new/confirmed to fix released?

Yes, there is a fix for this bug. It is available for for 16.10 but it is *not* available for 16.04.

16.04 being a LTS, should have its own fix. Otherwise the current workarounds for 16.04 users is to upgrade to 16.10 (and they would no longer be using a LTS), or add a PPA with the fixed version, or manually download and install Eigen.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.