Compile with ATLAS and Boost Numeric Bindings
I am trying to compile a file for matrix multiplication with ATLAS and Boost Numeric Bindings. I only get a long list of error messages. What am I doing wrong? I am using Ubuntu 9.10, g++ 4.4.1.
Code:
#include <numeric>
#include <complex>
#include <boost/numeric/ublas/matrix.hpp>
#include <boost/numeric/ublas/matrix_proxy.hpp>
#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
#include <boost/numeric/bindings/traits/ublas_vector.hpp>
#include <boost/numeric/bindings/atlas/cblas.hpp>
#include <boost/numeric/bindings/atlas/cblas_inc.hpp>
namespace ublas = boost::numeric::ublas;
namespace externalblas = boost::numeric::bindings::atlas;
using namespace boost::numeric::ublas;
using namespace std;
int main ()
{
typedef std::complex<double> Complex;
const int N = 100;
ublas::matrix<Complex> A(N, N);
ublas::matrix<Complex> B(N, N);
ublas::matrix<Complex> C(N, N);
externalblas::gemm(A, B, C);
};
Compilation:
dagge@dagge-laptop:/media/DAGGE/Programmering/Test/OpenMP/Matrix multiplication$ g++ matmul.cpp -o matmul -I/usr/include -I/usr/include/boost-numeric-bindings -L/usr/lib/atlas -lcblas -latlas
In file included from /usr/include/boost-numeric-bindings/boost/numeric/bindings/atlas/cblas1.hpp:21,
from /usr/include/boost-numeric-bindings/boost/numeric/bindings/atlas/cblas.hpp:17,
from matmul.cpp:15:
/usr/include/boost-numeric-bindings/boost/numeric/bindings/atlas/cblas1_overloads.hpp: In function ‘void boost::numeric::bindings::atlas::detail::axpby(int, float, const float*, int, float, float*, int)’:
/usr/include/boost-numeric-bindings/boost/numeric/bindings/atlas/cblas1_overloads.hpp:260: error: ‘catlas_saxpby’ was not declared in this scope
/usr/include/boost-numeric-bindings/boost/numeric/bindings/atlas/cblas1_overloads.hpp: In function ‘void boost::numeric::bindings::atlas::detail::axpby(int, double, const double*, int, double, double*, int)’:
/usr/include/boost-numeric-bindings/boost/numeric/bindings/atlas/cblas1_overloads.hpp:267: error: ‘catlas_daxpby’ was not declared in this scope
/usr/include/boost-numeric-bindings/boost/numeric/bindings/atlas/cblas1_overloads.hpp: In function ‘void boost::numeric::bindings::atlas::detail::axpby(int, const boost::numeric::bindings::traits::complex_f&, const boost::numeric::bindings::traits::complex_f*, int, const boost::numeric::bindings::traits::complex_f&, boost::numeric::bindings::traits::complex_f*, int)’:
/usr/include/boost-numeric-bindings/boost/numeric/bindings/atlas/cblas1_overloads.hpp:280: error: ‘catlas_caxpby’ was not declared in this scope
/usr/include/boost-numeric-bindings/boost/numeric/bindings/atlas/cblas1_overloads.hpp: In function ‘void boost::numeric::bindings::atlas::detail::axpby(int, const boost::numeric::bindings::traits::complex_d&, const boost::numeric::bindings::traits::complex_d*, int, const boost::numeric::bindings::traits::complex_d&, boost::numeric::bindings::traits::complex_d*, int)’:
/usr/include/boost-numeric-bindings/boost/numeric/bindings/atlas/cblas1_overloads.hpp:293: error: ‘catlas_zaxpby’ was not declared in this scope
/usr/include/boost-numeric-bindings/boost/numeric/bindings/atlas/cblas1_overloads.hpp: In function ‘void boost::numeric::bindings::atlas::detail::set(int, float, float*, int)’:
/usr/include/boost-numeric-bindings/boost/numeric/bindings/atlas/cblas1_overloads.hpp:299: error: ‘catlas_sset’ was not declared in this scope
/usr/include/boost-numeric-bindings/boost/numeric/bindings/atlas/cblas1_overloads.hpp: In function ‘void boost::numeric::bindings::atlas::detail::set(int, double, double*, int)’:
/usr/include/boost-numeric-bindings/boost/numeric/bindings/atlas/cblas1_overloads.hpp:303: error: ‘catlas_dset’ was not declared in this scope
/usr/include/boost-numeric-bindings/boost/numeric/bindings/atlas/cblas1_overloads.hpp: In function ‘void boost::numeric::bindings::atlas::detail::set(int, const boost::numeric::bindings::traits::complex_f&, boost::numeric::bindings::traits::complex_f*, int)’:
/usr/include/boost-numeric-bindings/boost/numeric/bindings/atlas/cblas1_overloads.hpp:309: error: ‘catlas_cset’ was not declared in this scope
/usr/include/boost-numeric-bindings/boost/numeric/bindings/atlas/cblas1_overloads.hpp: In function ‘void boost::numeric::bindings::atlas::detail::set(int, const boost::numeric::bindings::traits::complex_d&, boost::numeric::bindings::traits::complex_d*, int)’:
/usr/include/boost-numeric-bindings/boost/numeric/bindings/atlas/cblas1_overloads.hpp:315: error: ‘catlas_zset’ was not declared in this scope
|