Существует несколько способов использования LAPACK с c ++. Вот что я бы сделал (при условии, что вы работаете в какой-то системе * nix).
Убедитесь, что у вас есть нужные библиотеки и вы знаете правильный набор параметров компилятора / компоновщика. Поскольку они написаны на Фортране, я бы начал с кода на Фортране. Как этот . Убедитесь, что вы можете скомпилировать его, используя gfortran
. Возможные параметры компоновщика могут быть (в зависимости от вашей системы): -llapack
, -lblas
или некоторые их комбинации.
Затем перейдите к использованию интерфейса C ++. Опять же, есть несколько способов сделать. Лично мне проще всего использовать интерфейс clapack, где вы объявляете функции LAPACk следующим образом:
extern "C" void dsyev_( char *jobz, char *uplo, int &n, double *a, int &lda, double *w, double *work, int &lwork, int &info);
Правильный набор параметров компоновщика снова зависит от вашей системы и может выглядеть примерно так: -llapack -lf77blas -latlas
(этот набор работает в моей Ubuntu, где LAPACK поставляется из пакета atlas
).