Boost logo

Ublas :

From: John Woods (aciel_at_[hidden])
Date: 2007-02-06 00:52:20


Hello, everyone. This is my first time here, so apologies if I provide
[too much|not enough|the wrong set of] information--or if this isn't the
right place.

I'm trying to get the boost-sandbox BLAS and LAPACK bindings to work,
specifically so I can use syev().

I was getting the same error as another poster (found on Google) with
size_M and size1 in matrices. I corrected that by simply changing the
call from one to the other.

Now I'm getting a similar error in vector_traits.hpp:

$ g++ rotate.cpp -llapack
/usr/include/boost/numeric/bindings/traits/vector_traits.hpp: In static
member function 'static int
boost::numeric::bindings::traits::default_vector_traits<V, T>::size(V&)
[with V = boost::numeric::ublas::matrix<double,
boost::numeric::ublas::basic_column_major<unsigned int, int>,
boost::numeric::ublas::unbounded_array<double, std::allocator<double> >
>, T = double]':
/usr/include/boost/numeric/bindings/traits/vector_traits.hpp:82:
instantiated from 'int boost::numeric::bindings::traits::vector_size(V&)
[with V = boost::numeric::ublas::matrix<double,
boost::numeric::ublas::basic_column_major<unsigned int, int>,
boost::numeric::ublas::unbounded_array<double, std::allocator<double> > >]'
/usr/include/boost/numeric/bindings/lapack/syev.hpp:94: instantiated
from 'int boost::numeric::bindings::lapack::detail::syev(char, char, A&,
W&, Work&) [with A = boost::numeric::ublas::matrix<double,
boost::numeric::ublas::basic_column_major<unsigned int, int>,
boost::numeric::ublas::unbounded_array<double, std::allocator<double> >
>, W = boost::numeric::ublas::matrix<double,
boost::numeric::ublas::basic_column_major<unsigned int, int>,
boost::numeric::ublas::unbounded_array<double, std::allocator<double> >
>, Work = boost::numeric::bindings::traits::detail::array<double>]'
/usr/include/boost/numeric/bindings/lapack/syev.hpp:134: instantiated
from 'int boost::numeric::bindings::lapack::syev(char, char, A&, W&,
boost::numeric::bindings::lapack::minimal_workspace) [with A = dmat, W =
dmat]'
rotate.cpp:27: instantiated from here
/usr/include/boost/numeric/bindings/traits/vector_traits.hpp:45: error:
'class boost::numeric::ublas::matrix<double,
boost::numeric::ublas::basic_column_major<unsigned int, int>,
boost::numeric::ublas::unbounded_array<double, std::allocator<double> >
>' has no member named 'size'
/usr/include/boost/numeric/bindings/traits/vector_traits.hpp: In static
member function 'static typename
boost::numeric::bindings::traits::detail::generate_const<V, X>::type*
boost::numeric::bindings::traits::default_vector_traits<V,
T>::storage(V&) [with V = boost::numeric::ublas::matrix<double,
boost::numeric::ublas::basic_column_major<unsigned int, int>,
boost::numeric::ublas::unbounded_array<double, std::allocator<double> >
>, T = double]':
/usr/include/boost/numeric/bindings/traits/vector_traits.hpp:76:
instantiated from 'typename
boost::numeric::bindings::traits::vector_traits<V>::pointer
boost::numeric::bindings::traits::vector_storage(V&) [with V =
boost::numeric::ublas::matrix<double,
boost::numeric::ublas::basic_column_major<unsigned int, int>,
boost::numeric::ublas::unbounded_array<double, std::allocator<double> > >]'
/usr/include/boost/numeric/bindings/lapack/syev.hpp:100: instantiated
from 'int boost::numeric::bindings::lapack::detail::syev(char, char, A&,
W&, Work&) [with A = boost::numeric::ublas::matrix<double,
boost::numeric::ublas::basic_column_major<unsigned int, int>,
boost::numeric::ublas::unbounded_array<double, std::allocator<double> >
>, W = boost::numeric::ublas::matrix<double,
boost::numeric::ublas::basic_column_major<unsigned int, int>,
boost::numeric::ublas::unbounded_array<double, std::allocator<double> >
>, Work = boost::numeric::bindings::traits::detail::array<double>]'
/usr/include/boost/numeric/bindings/lapack/syev.hpp:134: instantiated
from 'int boost::numeric::bindings::lapack::syev(char, char, A&, W&,
boost::numeric::bindings::lapack::minimal_workspace) [with A = dmat, W =
dmat]'
rotate.cpp:27: instantiated from here
/usr/include/boost/numeric/bindings/traits/vector_traits.hpp:44: error:
'class boost::numeric::ublas::matrix<double,
boost::numeric::ublas::basic_column_major<unsigned int, int>,
boost::numeric::ublas::unbounded_array<double, std::allocator<double> >
>' has no member named 'begin'
distcc[4763] ERROR: compile (null) on localhost failed
distcc[4762] ERROR: compile rotate.cpp on localhost failed
$

Note especially that I'm using matrix<double, column_major>, and it's
trying to get &v[0] when v is actually such a matrix.

Is there some easy work-around, or a downgrade that will work for me?

Thanks in advance.

Cheers,
John Woods