C API библиотека для решения разреженных систем линейных уравнений? - PullRequest
3 голосов
/ 16 ноября 2011

Мне нужно решить большую, разреженную систему линейных уравнений из программы, написанной на D. В идеале мне нужна библиотека с интерфейсом в стиле D, но я сомневаюсь, что она существует.Однако D может напрямую обращаться к API C.Поэтому, пожалуйста, предложите некоторые библиотеки, которые решают большие разреженные системы линейных уравнений со следующими характеристиками:

  1. Предоставляет API C.

  2. Бесплатно/Открытый исходный код.Желательно также без авторского лева, но это не является жестким требованием.

  3. Хорошо протестировано и отлажено.Простота установки и использования.Не написано учеными просто для того, чтобы получить документ об их методе, а затем совершенно не поддерживается.

Ответы [ 2 ]

6 голосов
/ 16 ноября 2011

Классическая библиотека для разреженных задач: suite-sparse . У вас есть пакеты на многих системах. Matlab использует его внутри.

1 голос
/ 16 ноября 2011

Мое плохое, я путаю LAPACK, который я использовал давным-давно, и ARPACK, который я использовал больше времени назад.

Вот ссылка на arpack http://www.caam.rice.edu/~kristyn/parpack_home.html: Пакет предназначен для вычисления нескольких собственных значенийи соответствующие собственные векторы общей n по n матрицы A. Это наиболее подходит для больших разреженных или структурированных матриц.

А вот ссылка со сравнением библиотек для линейной алгебры:

http://www.netlib.org/utk/people/JackDongarra/la-sw.html

вы можете найти там SparseLib ++, упомянутый здесь arpack и много других библиотек в матричной форме.

...