Собственная проблема с собственной библиотекой - PullRequest
3 голосов
/ 25 августа 2011

Я постоянно получаю сообщения об ошибках всякий раз, когда пытаюсь использовать свойство selfadjointView любой матрицы или разреженной матрицы, используя собственную библиотеку.Ниже приведен простой код, чтобы проверить это.В моей программе я пытаюсь использовать самосопряженную матрицу:

#define EIGEN_YES_I_KNOW_SPARSE_MODULE_IS_NOT_STABLE_YET
#include <Eigen/Sparse>
#include <Eigen/Dense>
#include <Eigen/Core>
#include <iostream>

using namespace Eigen;
int main ()
{
SparseMatrix<float>  mat(3,3);
Matrix<float, 3, 1> vec;
std::cout<<mat.selfadjointView<>()*vec;
}

Я получаю сообщение об ошибке: ошибка: нет подходящей функции для вызова Eigen :: SparseMatrix :: selfadjointView () ‚

1 Ответ

3 голосов
/ 25 августа 2011

Вы должны указать аргумент шаблона, поэтому он должен читать mat.selfadjointView<Upper>() или mat.selfadjointView<Lower>().Первый означает, что он должен использовать записи в верхней треугольной части mat и заполнять нижнюю треугольную часть, чтобы сделать самосопряженную матрицу.Второй - наоборот.

...