A biblioteca boost deve ser instalada com o seguinte comando:
sudo apt-get install libboost-dev libboost-all-dev libboost-system-dev
Caso tenha interesse em instalar as bindings, que são interfaces criadas para usar os solvers do lapack direto com o boost, faça o download utilizando o comando:
svn co https://svn.boost.org/svn/boost/sandbox/numeric_bindings/
Copie as pastas boost e libs para a pasta onde o boost foi instalado. Por fim, copie o conteúdo do arquivo Jamroot baixado para o arquivo Jamroot da pasta de instalação do boost.
Para que essas funções possam ser utilizadas, é necessário ter previamente instalado a biblioteca do ublas/lapack, e na hr de compilar adicionar a seguinte linha ao comando:
-I dir/pasta-onde-o-boost-foi-instalado
Segue um exemplo de utilização do solver gesv do lapack para matrizes densas gerais:
#include // importa o tipo matrix do boost
#include // importa o tipo vector do boost
#include // importa as bindings do tipo matrix do boost
#include // importa as bindings do tipo vector do boost
#include // importa as bindings do solver gesv
int main()
{
// Definição da matriz A, vetor de solução b e vetor de pivoteamento c
boost::numeric::ublas::matrix A(3, 3, 0.0);
boost::numeric::ublas::vector b(3, 0.0);
boost::numeric::ublas::vector c(3);
//Atribuição de valores
A(0, 0) = 1.0; A(1, 1) = 2.0; A(2, 2) = 1.0;
A(0, 1) = -1.0; A(1, 0) = -1.0;
b(0) = 1.0; b(1) = 2.0; b(2) = 3.0;
//Chamada do solver
boost::numeric::bindings::lapack::gesv(A, c, b);
std::cout <