Я пытаюсь извлечь диагональ из матрицы, а затем инвертировать ее, используя библиотеку Eigen на C++. Это должно быть покомпонентное обратное выражение, и его следует вычислять довольно быстро. Однако следующее, похоже, не компилируется:
Код: Выделить всё
Eigen::MatrixXd A = /* some matrix */;
Eigen::Diagonal D = A.diagonal().;
Eigen::MatrixXd D_inv = D.inverse();
Похоже, что для объекта Diagonal нет метода inverse(). Точная ошибка, которую я получаю:
Код: Выделить всё
Undefined symbols for architecture x86_64:
"Eigen::MatrixBase::inverse() const"
Есть ли простой способ вычислить обратное, не делая этого вручную?
Подробнее здесь:
https://stackoverflow.com/questions/790 ... -library-c