|
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 11:54:48
On Tuesday 20 April 2010 01:11:11 Rutger ter Borg wrote:
> Isn't the non-match due to sdim being an LValue? I.e., please try
>
> fortran_int_t sdim;
> lapack::gees( 'N', 'N', 0, sdim, lambda, V );
Yes, you are right. I now get a different error message, about property_map.
I'm trying to use Boost 1.41.0. Should this version of Boost work with the
current bindings?
Best, Paul
In file included from /home/leopardi/src/boost-numeric-bindings/boost-numeric-
bindings-2010-04-19/boost/numeric/bindings/detail/adaptor.hpp:49,
from /home/leopardi/src/boost-numeric-bindings/boost-numeric-
bindings-2010-04-19/boost/numeric/bindings/value_type.hpp:12,
from /home/leopardi/src/boost-numeric-bindings/boost-numeric-
bindings-2010-04-19/boost/numeric/bindings/lapack/workspace.hpp:18,
from ../glucat/matrix_imp.h:41,
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/detail/property_map.hpp: In
instantiation of
âboost::numeric::bindings::detail::property_at<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::tag::value_type>â:
/home/leopardi/src/boost-numeric-bindings/boost-numeric-
bindings-2010-04-19/boost/numeric/bindings/value_type.hpp:20: instantiated
from
âboost::numeric::bindings::value_type<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> > > >â
/home/leopardi/src/boost-numeric-bindings/boost-numeric-
bindings-2010-04-19/boost/numeric/bindings/lapack/driver/gees.hpp:1081:
instantiated from â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:445: 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/detail/property_map.hpp:30: error:
no type named âproperty_mapâ in âstruct
boost::numeric::bindings::detail::adaptor_access<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> > >,
void>â
--- Some relevant (i.e. non-GluCat) includes before the compiler sees matrix_imp.h: #include <boost/version.hpp> #include <boost/config.hpp> #include <boost/cstdint.hpp> #include <boost/limits.hpp> #include <boost/static_assert.hpp> #include <boost/numeric/ublas/traits.hpp> #include <cmath> #include <exception> #include <stdexcept> #include <bitset> #include <utility> #include <vector> #include <fstream> #include <map> #include <tr1/unordered_map> #include <string> #include <complex> #include <boost/pool/poolfwd.hpp> #include <iostream> #include <boost/numeric/ublas/fwd.hpp> #include <sstream> #include <boost/numeric/ublas/vector.hpp> #include <boost/numeric/ublas/vector_proxy.hpp> #include <boost/numeric/ublas/matrix.hpp> #include <boost/numeric/ublas/matrix_proxy.hpp> #include <boost/numeric/ublas/triangular.hpp> #include <boost/numeric/ublas/matrix_sparse.hpp> #include <boost/numeric/ublas/operation_sparse.hpp> #include <boost/numeric/ublas/operation.hpp> #include <boost/numeric/ublas/lu.hpp> #include <boost/pool/pool_alloc.hpp> #include <tr1/random>