Hi,
I downloaded the libraries from the git yesterday, and tried to compile them. Bpp-core and bpp-seq went fine, but bpp-phyl did not compile:
In file included from /Users/boussau/Programs/Biopp/bpp-phyl/src/Bpp/Phyl/Model/AbstractSubstitutionModel.cpp:40:
In file included from /Users/boussau/Programs/Biopp/bpp-phyl/src/Bpp/Phyl/Model/AbstractSubstitutionModel.h:43:
In file included from /Users/boussau/Programs/Biopp/bpp-phyl/src/Bpp/Phyl/Model/SubstitutionModel.h:51:
In file included from /usr/local/include/Bpp/Numeric/VectorTools.h:44:
/usr/local/include/Bpp/Numeric/NumTools.h:116:50: error: call to function 'operator*' that is neither visible in the template definition nor found by argument-dependent lookup
template<class T> static T sqr(T a) { return a * a; }
^
/Users/boussau/Programs/Biopp/bpp-phyl/src/Bpp/Phyl/Model/AbstractSubstitutionModel.cpp:281:45: note: in instantiation of function template specialization
'bpp::NumTools::sqr<std::vector<double, std::allocator<double> > >' requested here
MatrixTools::mult(rightEigenVectors_, NumTools::sqr(rate_ * eigenValues_) * VectorTools::exp(eigenValues_ * (rate_ * t)), leftEigenVectors_, d2pijt_);
^
/usr/local/include/Bpp/Numeric/VectorTools.h:128:16: note: 'operator*' should be declared prior to the call site
std::vector<T> operator*(const std::vector<T>& v1, const std::vector<T>& v2) throw (DimensionException)
^
2 warnings and 1 error generated.
make[2]: *** [src/CMakeFiles/bppphyl-shared.dir/Bpp/Phyl/Model/AbstractSubstitutionModel.cpp.o] Error 1
make[1]: *** [src/CMakeFiles/bppphyl-shared.dir/all] Error 2
make: *** [all] Error 2
I suspect the latest version of mac OS X is picky about the order of declarations, or just includes files in a different order compared to other systems. Do you know how I could solve that?
Thanks!
Bastien.