Думаю, Эйген - это то, что вы ищете.
http://eigen.tuxfamily.org/index.php?title=Main_Page
Это библиотека только для заголовков и компилируется на многих компиляторах. Он даже использует экзотическую сборку для более быстрой математики.
На этой странице демонстрируется API линейного решателя.
http://eigen.tuxfamily.org/dox-2.0/TutorialAdvancedLinearAlgebra.html
В нем есть несколько решателей с простым API.
Вы можете использовать C++ привязку LAPACK. Быстрый поиск в Google выявил эту ссылку на некоторые библиотеки LAPACK для Windows. В зависимости от размера вашей системы все это может оказаться излишним.
Я большой поклонник Armadillo , но из-за конца страницы загрузки :
Windows
Разработка и тестирование Armadillo до сих пор выполнялись в основном на UNIX-подобных платформах, однако кода для конкретной платформы должно быть мало или вообще не должно быть . Хотя элементарные тесты проводились на компьютере с Windows, разработчикам интересно узнать, насколько хорошо Armadillo работает в более тщательных тестах.
Если у вас возникли проблемы с компилятором 'MS Visual C ++ 2008 Express Edition' (из-за его неполной поддержки стандарта C ++), вы можете { {1}} хотят попробовать следующие альтернативные бесплатные компиляторы:
- Компилятор Intel C ++
- GCC (часть MinGW)
- GCC (часть CygWin)
Стоит попробовать так как это хорошо продуманная (и в основном шаблонная) библиотека.
Или попробуйте Eigen2 , в котором ваш компилятор указан как поддерживаемый.
Изменить: В ответ на комментарий, Armadillo не требует Lapack, но работает с ним лучше (и еще лучше с настроенным Blas):
Q: Какие еще библиотеки мне нужны в полной мере использовать Armadillo?
A: Armadillo может работать без внешних библиотек. Однако рекомендуется установить библиотеки LAPACK и ATLAS, чтобы получить дополнительную функциональность. Armadillo будет использовать процедуры ATLAS вместо LAPACK везде, где это возможно.Q: Насколько хорошо Armadillo будет работать без LAPACK / ATLAS?
A: Базовые функции будут доступны (например, сложение и умножение матриц), но такие вещи, как разложение по собственным значениям, не будут.Умножение матриц (в основном для больших матриц) будет не таким быстрым.