Comment utiliser Boost sur visual studio
Bonjour à tous,
Je souhaite pouvoir calculer la décomposition svd d'une matrice, pour cela: je dispose de microsoft visual studio 2005 et de la librairie Boost.
J'ai obtenu la librairie Boost sur le site suivant: http://www.boostpro.com/download/
J'ai obtenu le Boost-bindings (fichier qui contient la fonction nécessaire pour le calcul) ici: http://mathema.tician.de/dl/software...meric-bindings
J'ai installé le tout sur mon ordinateur et j'ai fait un petit code qui calcule la décomosition svd d'une matrice:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
#include <iostream>
//#define BIND_FORTRAN_LOWERCASE_UNDERSCORE
#include <boost/numeric/bindings/lapack/gesdd.hpp>
#include<boost/numeric/bindings/traits/ublas_matrix.hpp>
#include<boost/numeric/bindings/traits/ublas_vector.hpp>
#include <boost/numeric/ublas/matrix.hpp>
#include <boost/numeric/ublas/vector.hpp>
#include <boost/numeric/ublas/io.hpp>
int main()
{
using namespace boost::numeric::bindings::lapack;
using namespace boost::numeric::ublas;
matrix<double, column_major> A (4,2);
A(0,0)=2;
A(0,1)=4;
A(1,0)=1;
A(1,1)=3;
A(2,0)=0;
A(2,1)=0;
A(3,0)=0;
A(3,1)=0;
std::cout << A << std::endl;
matrix<double, column_major> U(4,4);
matrix<double, column_major> V(2,2);
vector<double> S(2);
gesdd('A',A, S, U, V);
//std::cout << U << std::endl;
//std::cout << S << std::endl;
//std::cout << V << std::endl;
return 0;
} |
Mon problème est que j'obtiens un message d'erreur que je ne sais pas résoudre! En effet, mon code bloque sur la fonction qui est doit faire le calcul c'est "gesdd()". J'obtiens le message d'erreur suivant:
Citation:
Error 15 error LNK2001: unresolved external symbol _dgesdd testBoost.obj
J'ai cherché sur le net et j'ai vu que certaines personnes avaient déjà eu ce problème mais je n'ai pas eu de solution. Quelqu'un aurait-il une solution?? Merci pour vos réponses.