Любой пакет разреженной линейной алгебры в Haskell?

Есть ли какой-либо пакет для выполнения вычислений линейной алгебры, возможно, основанный на быстрых и эффективных библиотеках C? Я искал в Hackage, но я не нашел ничего в этом отношении: hmatrix, который использует GSL, BLAS и LAPACK, отлично работает, но, похоже, не содержит специальных алгоритмов для решения линейных систем и задач собственных значений/векторов с разреженными матрицами, Что бы я хотел найти, это нечто похожее на модуль sparse.linalg в scipy. Спасибо!

Ответ 1

Насколько я знаю, такого пакета пока нет.

Была статья Р. Л. Виннайт и М. Э. Секстон. Изучение разреженных матричных представлений для решения линейных систем на функциональном языке. J. Функциональное программирование, 2 (1): 61-72, январь 1992 г., где они сравнивали квадратное дерево, двоичное древовидное кодирование и кодирование длины строки в Миранде. Квадратные деревья были суперпозицией по методу CG, а кодировка длительной длины хорошо сочеталась с SOR.

В 1993 году была реализована FEM в Haskell, Некоторые проблемы в функциональной реализации алгоритма конечных элементов. Они также использовали квадроциклы. Достигнутая производительность не была звездной, но давно это было давно... Я ожидаю, что сегодня Haskell сможет работать лучше. Там также используются новые библиотеки массивов, которые могут дать лучшее представление о разреженных матрицах. Сегодня мы имеем IntMap, Vector и даже Repa.

Библиотека редких решателей в Haskell (или привязки к решателям C/Fortran) еще должна быть записана.