Boost logo

Ublas :

Subject: Re: [ublas] [bindings] How do I call the new gees? Why is it different from the old one?
From: Paul Leopardi (paul.leopardi_at_[hidden])
Date: 2010-04-19 12:59:00


On Tuesday 20 April 2010 02:20:54 Rutger ter Borg wrote:
> If the compiler complains about property maps, it's fairly safe to say you
> are missing an include. The type you forgot to include is mentioned by the
>
> compiler:
> > bindings-2010-04-19/boost/numeric/bindings/detail/property_map.hpp:30:
> > error: no type named ‘property_map’ in ‘struct
>
> boost::numeric::bindings::detail::adaptor_access<boost::numeric::ublas::mat
> rix<double,
>
> > boost::numeric::ublas::basic_column_major<long unsigned int, long int>,
> > boost::numeric::ublas::unbounded_array<double, std::allocator<double> >
> > >, void>’
>
> In your case, most likely you forgot to
>
> #include <boost/numeric/bindings/ublas/matrix.hpp>
>
> somewhere. FYI, the old-style of including "traits/ublas_matrix.hpp" has
> been replaced by "ublas/matrix.hpp". Also see my other reply to your
> previous post.

Hi Rutger,
Sorry, I misread the post the first time. I now have that #include and I get
the following error message complaining about gees_impl<double,void>::invoke.

By the way, my code works fine with Bindings v1. It's just the current svn
version that's giving me all these problems.
Best, Paul

In file included from ../glucat/matrix_imp.h:43,
                 from ../glucat/glucat_imp.h:62,
                 from ../test/driver.h:36,
                 from peg11.cpp:35:
/home/leopardi/src/boost-numeric-bindings/boost-numeric-
bindings-2010-04-19/boost/numeric/bindings/lapack/driver/gees.hpp: In function
‘typename
boost::disable_if<boost::numeric::bindings::lapack::detail::is_workspace<MatrixVS>,
long int>::type boost::numeric::bindings::lapack::gees(char, char, logical_t*,
MatrixA&, fortran_int_t&, VectorW&, MatrixVS&) [with MatrixA =
glucat::matrix::eigenvalues(const Matrix_T&)::lapack_matrix_t, VectorW =
glucat::matrix::eigenvalues(const Matrix_T&)::complex_vector_t, MatrixVS =
glucat::matrix::eigenvalues(const Matrix_T&)::lapack_matrix_t]’:
../glucat/matrix_imp.h:446: instantiated from
‘boost::numeric::ublas::vector<std::complex<double>,
boost::numeric::ublas::unbounded_array<std::complex<double>,
std::allocator<std::complex<double> > > > glucat::matrix::eigenvalues(const
Matrix_T&) [with Matrix_T = boost::numeric::ublas::matrix<float,
boost::numeric::ublas::basic_row_major<long unsigned int, long int>,
boost::numeric::ublas::unbounded_array<float, std::allocator<float> > >]’
../glucat/matrix_multi_imp.h:1118: instantiated from ‘glucat::eig_case_t
glucat::matrix_multi<Scalar_T, LO, HI>::eig_test(Scalar_T&) const [with
Scalar_T = float, int LO = -0x00000000000000020, int HI = 32]’
../glucat/matrix_multi_imp.h:1347: instantiated from ‘const
glucat::matrix_multi<Scalar_T, LO, HI> glucat::sqrt(const
glucat::matrix_multi<Scalar_T, LO, HI>&, const glucat::matrix_multi<Scalar_T,
LO, HI>&, bool) [with Scalar_T = float, int LO = -0x00000000000000020, int HI
= 32]’
../glucat/clifford_algebra_imp.h:545: instantiated from ‘const
Multivector<Scalar_T, LO, HI> glucat::sqrt(const Multivector<Scalar_T, LO,
HI>&) [with Multivector = glucat::matrix_multi, Scalar_T = float, int LO =
-0x00000000000000020, int HI = 32]’
../test11/peg11.h:110: instantiated from ‘void peg11::transcendtest(const
Multivector_T&, bool) [with Multivector_T = peg11::do_test11() [with
Multivector_T = glucat::matrix_multi<float, -0x00000000000000020, 32>]::m_]’
../test11/peg11.h:177: instantiated from ‘void peg11::do_test11() [with
Multivector_T = glucat::matrix_multi<float, -0x00000000000000020, 32>]’
peg11.cpp:46: instantiated from here
/home/leopardi/src/boost-numeric-bindings/boost-numeric-
bindings-2010-04-19/boost/numeric/bindings/lapack/driver/gees.hpp:1081: error:
no matching function for call to
‘boost::numeric::bindings::lapack::gees_impl<double, void>::invoke(const
char&, const char&, logical_t*&, boost::numeric::ublas::matrix<double,
boost::numeric::ublas::basic_column_major<long unsigned int, long int>,
boost::numeric::ublas::unbounded_array<double, std::allocator<double> > >&,
int&, boost::numeric::ublas::vector<std::complex<double>,
boost::numeric::ublas::unbounded_array<std::complex<double>,
std::allocator<std::complex<double> > > >&,
boost::numeric::ublas::matrix<double,
boost::numeric::ublas::basic_column_major<long unsigned int, long int>,
boost::numeric::ublas::unbounded_array<double, std::allocator<double> > >&,
boost::numeric::bindings::lapack::optimal_workspace)’
make: *** [peg11.o] Error 1