В рамках более масштабной задачи (спектральная кластеризация на изображениях) я должен вычислить собственный вектор, соответствующий наибольшему собственному значению матрицы.
Матрица довольно большая (250000 строк / столбцов), симметричная и с полосами ~ 100 записей в каждой строке.
На самом деле мне даже не нужен реальный собственный вектор, но (относительно) грубая аппроксимация была бы достаточной, поэтому я подозреваю, что итерационный решатель был бы наиболее подходящим.
Кажется, ARPACK был бы предпочтительным оружием, но необходимость компилировать его из кода Fortran и затем оборачивать интерфейс C ++ вокруг него, кажется своего рода поворотом. Есть ли альтернативы (желательно полностью закодированные в c ++)?
В настоящее время использую OpenCV и Eigen3, я даже думал о реализации своего собственного метода итераций, но почему-то я думаю, что должна быть библиотека, которая делает его более эффективным и стабильным, чем я когда-либо мог …
Задача ещё не решена.
Других решений пока нет …