Skip to content

SuperLUSupport crashing if linking SuperLU 5.0

Submitted by Tobias Nöll

Assigned to Nobody

Link to original bugzilla bug (#1119)
Version: 3.3 (current stable)

Description

This bug is related to the new version of SuperLU (5.0)
The authors decided to change the interface of xGSSVX and xGSTRF which are called by Eigen in SuperLUSupport.h. As a result Eigen crashes if linked with SuperLU 5.0.

The crash can be reproduced with this simple program:

Eigen::SparseMatrix<double> A(3, 3);
A.setIdentity();
Eigen::Matrix<Scalar, Eigen::Dynamic, 1> b(3);
b.setOnes();
Eigen::Matrix<Scalar, Eigen::Dynamic, 1> x(3);
Eigen::SuperLUEigen::SparseMatrix<double> solver;
solver.compute(A);
x = solver.solve(b);

It does not crash if linking the prior version 4.3 of SuperLU.
SuperLU 5.0 expects an additional work variable GlobalLU_t Glu to be passed via pointer in the interfaces of xGSSVX and xGSTRF. Eigen always calls xGSSVX with the "old" interface (having 1 parameter less).

Edited by Eigen Bugzilla