Я знаю, что существуют оптимизированные алгоритмы для всех типов матричных разложений (QR-декомпозиция, SVD,...), умножения и т.п. Тем не менее, я не мог найти хороший обзор. Для С++ есть довольно полезная информация в этом вопросе, но я ищу эти вещи в C.
Библиотеки C для математических матричных операций
Ответ 1
Вы не указали, хотите ли вы использовать программное обеспечение с открытым исходным кодом или коммерческое программное обеспечение, так что вот список, содержащий оба:
- Научная библиотека GNU (GSL)
- Основные подпрограммы линейной алгебры (BLAS)
- Meschach
- Группа числовых алгоритмов (NAG)
Был и этот предыдущий вопрос по этому вопросу.
Ответ 2
Возможно, интересная научная библиотека GNU (GSL).
http://www.gnu.org/software/gsl/
Темы документации: http://www.gnu.org/software/gsl/manual/html_node/
Ответ 3
Возможно, вы захотите взглянуть на BLAS и LAPACK. Они написаны в Fortran, но могут быть вызваны из C и в значительной степени являются стандартными библиотеками этого типа.
Большинство серьезных пакетов линейной алгебры, которые я знаю (MATLAB, Octave, NumPy), построены с использованием этих.