[go: up one dir, main page]

kernel() function not supported for inplace decompositions

Summary

When using FullPivLU with a Ref matrix type I get a compile error trying to use the kernel() function.

Environment

  • Operating System : Arch Linux
  • Architecture : x86
  • Eigen Version : 3.4.0
  • Compiler Version : gcc 11.1
  • Compile Flags :
  • Vector Extension :

Minimal Example

https://godbolt.org/z/Teq5GaTEv

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

using namespace Eigen;

int main() {
    Eigen::MatrixXd mat = MatrixXd::Identity(4,4);
    FullPivLU<Ref<MatrixXd>> lu(mat);
    Eigen::MatrixXd ns = lu.kernel();
    std::cout << ns << std::endl;
    return 0;
}

Steps to reproduce

Attempt to compile the above program

What is the current bug behavior?

Compiler error:

/usr/include/eigen3/Eigen/src/misc/Kernel.h:34:5: error: ‘Options’ is not a member of ‘Eigen::FullPivLU<Eigen::Ref<Eigen::Matrix<double, -1, -1> > >::MatrixType’ {aka ‘Eigen::Ref<Eigen::Matrix<double, -1, -1> >’}

What is the expected correct behavior?

no compiler error