Подтвердить что ты не робот

Библиотека матриц линейной алгебры Haskell для произвольных типов элементов

Я ищу библиотеку линейных алгебр Haskell, которая имеет следующие функции:

  • Матричное умножение
  • Добавление матрицы
  • Трансформация матрицы
  • Расчет ранга
  • Матричная инверсия - это плюс

и обладает следующими свойствами:

  • произвольные элементы (скалярные) типы (в частности, типы элементов, которые не являются экземплярами Storable). Мои элементы являются экземпляром Num, кроме того, можно вычислить мультипликативный обратный. Элементы математически образуют конечное поле (𝔽 2 256). Этого должно быть достаточно для реализации упомянутых выше функций.
  • произвольные размеры матрицы (мне, вероятно, понадобится что-то вроде 100x100, но размеры матрицы будут зависеть от ввода пользователя, поэтому он не должен ограничиваться чем-либо другим, кроме памяти или доступной вычислительной мощности).
  • как можно быстрее, но я знаю, что библиотека для произвольных элементов, вероятно, не будет работать подобно библиотеке C/Fortran, которая выполняет эту работу (сопряжена через FFI) из-за косвенности произвольного (не Int, Double или аналогичных). По крайней мере, один указатель получает разыменованный элемент при касании элемента
  • (написанный в Haskell, для меня это не является реальным требованием, но поскольку мои элементы не являются экземплярами Storable, библиотека должна быть записана в Haskell)

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

Я просмотрел код и документацию по многим другим библиотекам, но ничто не соответствует моим потребностям: - (.

Update

Поскольку, похоже, ничего нет, я начал проект на GitHub, целью которого является создание такой библиотеки. Текущее состояние очень минималистично, не оптимизировано для скорости вообще, и только самые основные функции имеют тесты и поэтому должны работать. Но если вы заинтересованы в использовании или помощи в разработке: свяжитесь со мной (вы найдете мой почтовый адрес на моем веб-сайте) или отправьте запросы на тяну.

4b9b3361

Ответ 1

Хорошо, я действительно уверен, насколько уместен мой ответ, но у меня есть хороший опыт работы с библиотекой GNU GSL и есть обертка для haskel:

http://hackage.haskell.org/package/bindings-gsl

Проверьте это, возможно, это поможет вам