I followed your advice and included boost/numeric/bindings/ublas/matrix.hpp.
I still get quite a few errors (see below). If I include ublas.hpp I also see a number of similar errors.
Thanks very much.
Dmitry
In file included from /home/dmitry/zfilter/boost_1_55_0/boost/serialization/trac
king.hpp:20:0,
from /home/dmitry/zfilter/boost_1_55_0/boost/serialization/nvp.
hpp:32,
from /home/dmitry/zfilter/boost_1_55_0/boost/serialization/arra
y.hpp:19,
from /home/dmitry/zfilter/boost_1_55_0/boost/numeric/ublas/stor
age.hpp:21,
from /home/dmitry/zfilter/boost_1_55_0/boost/numeric/ublas/vect
or.hpp:19,
from /home/dmitry/zfilter/boost_1_55_0/boost/numeric/blas/matr
ix.hpp:16,
from /home/dmitry/zfilter/src/tpsdemo/spline.cpp:16:
/home/dmitry/zfilter/boost_1_55_0/boost/numeric/bindings/lapack/driver/gesv.hpp:
In instantiation of 'static std::ptrdiff_t boost::numeric::bindings::lapack::ge
sv_impl<Value>::invoke(MatrixA&, VectorIPIV&, MatrixB&) [with MatrixA = boost::n
umeric::ublas::matrix<double>; VectorIPIV = boost::numeric::ublas::permutation_m
atrix<long unsigned int>; MatrixB = boost::numeric::ublas::matrix<double>; Value
= double; std::ptrdiff_t = long int]':
/home/dmitry/zfilter/boost_1_55_0/boost/numeric/bindings/lapack/driver/gesv.hpp:
234:51: required from 'std::ptrdiff_t boost::numeric::bindings::lapack::gesv(M
atrixA&, VectorIPIV&, MatrixB&) [with MatrixA = boost::numeric::ublas::matrix<do
uble>; VectorIPIV = boost::numeric::ublas::permutation_matrix<long unsigned int>
; MatrixB = boost::numeric::ublas::matrix<double>; std::ptrdiff_t = long int]'
/home/dmitry/zfilter/src/tpsdemo/ludecomposition.h:87:23: required from 'int L
U_Solve(boost::numeric::ublas::matrix<T>&, boost::numeric::ublas::matrix<T>&) [w
ith T = double]'
/home/dmitry/zfilter/src/tpsdemo/spline.cpp:110:33: required from here
/home/dmitry/zfilter/boost_1_55_0/boost/numeric/bindings/lapack/driver/gesv.hpp:
191:9: error: invalid application of 'sizeof' to incomplete type 'boost::STATIC_
ASSERTION_FAILURE<false>'
BOOST_STATIC_ASSERT( (bindings::is_column_major< MatrixB >::value) );
In file included from /home/dmitry/zfilter/boost_1_55_0/boost/numeric/bindings/d
etail/adaptor.hpp:49:0,
from /home/dmitry/zfilter/boost_1_55_0/boost/numeric/bindings/b
egin.hpp:12,
from /home/dmitry/zfilter/boost_1_55_0/boost/numeric/bindings/u
blas/matrix.hpp:12,
from /home/dmitry/zfilter/src/tpsdemo/ludecomposition.h:16,
from /home/dmitry/zfilter/src/tpsdemo/spline.cpp:19:
/home/dmitry/zfilter/boost_1_55_0/boost/numeric/bindings/detail/property_map.hpp
: In instantiation of 'struct boost::numeric::bindings::detail::property_at<cons
t boost::numeric::ublas::permutation_matrix<long unsigned int>, boost::numeric::
bindings::tag::entity>':
/home/dmitry/zfilter/boost_1_55_0/boost/numeric/bindings/rank.hpp:19:8: requir
ed from 'struct boost::numeric::bindings::rank<const boost::numeric::ublas::perm
utation_matrix<long unsigned int> >'
/home/dmitry/zfilter/boost_1_55_0/boost/mpl/aux_/preprocessed/gcc/greater.hpp:60
:29: required from 'struct boost::mpl::greater_tag<boost::numeric::bindings::r
ank<const boost::numeric::ublas::permutation_matrix<long unsigned int> > >'
/home/dmitry/zfilter/boost_1_55_0/boost/mpl/aux_/preprocessed/gcc/greater.hpp:67
:8: required from 'struct boost::mpl::greater<boost::numeric::bindings::tag::a
ddressing_index<1>, boost::numeric::bindings::rank<const boost::numeric::ublas::
permutation_matrix<long unsigned int> > >'
/home/dmitry/zfilter/boost_1_55_0/boost/mpl/aux_/nested_type_wknd.hpp:26:31: r
equired from 'struct boost::mpl::aux::nested_type_wknd<boost::mpl::greater<boost
::numeric::bindings::tag::addressing_index<1>, boost::numeric::bindings::rank<co
nst boost::numeric::ublas::permutation_matrix<long unsigned int> > > >'
/home/dmitry/zfilter/boost_1_55_0/boost/mpl/aux_/preprocessed/gcc/and.hpp:48:8:
required from 'struct boost::mpl::and_<boost::mpl::greater<boost::numeric::bin
dings::tag::addressing_index<1>, boost::numeric::bindings::rank<const boost::num
eric::ublas::permutation_matrix<long unsigned int> > >, boost::mpl::not_<boost::
numeric::bindings::detail::is_same_at<const boost::numeric::ublas::permutation_m
atrix<long unsigned int>, boost::numeric::bindings::tag::size_type<1>, long int>
>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >'
/home/dmitry/zfilter/boost_1_55_0/boost/numeric/bindings/size.hpp:80:63: requi
red from 'struct boost::numeric::bindings::result_of::size<const boost::numeric:
:ublas::permutation_matrix<long unsigned int>, boost::numeric::bindings::tag::ad
dressing_index<1> >'
/home/dmitry/zfilter/boost_1_55_0/boost/numeric/bindings/size.hpp:102:1: requi
red by substitution of 'template<class T> typename boost::enable_if<boost::mpl::
less<boost::numeric::bindings::rank<T>, mpl_::int_<2> >, typename boost::numeric
::bindings::result_of::size<const T>::type>::type boost::numeric::bindings::size
(const T&) [with T = boost::numeric::ublas::permutation_matrix<long unsigned int
>]'
/home/dmitry/zfilter/boost_1_55_0/boost/numeric/bindings/lapack/driver/gesv.hpp:
199:9: required from 'static std::ptrdiff_t boost::numeric::bindings::lapack::
gesv_impl<Value>::invoke(MatrixA&, VectorIPIV&, MatrixB&) [with MatrixA = boost:
:numeric::ublas::matrix<double>; VectorIPIV = boost::numeric::ublas::permutation
_matrix<long unsigned int>; MatrixB = boost::numeric::ublas::matrix<double>; Val
ue = double; std::ptrdiff_t = long int]'
/home/dmitry/zfilter/boost_1_55_0/boost/numeric/bindings/lapack/driver/gesv.hpp:
234:51: required from 'std::ptrdiff_t boost::numeric::bindings::lapack::gesv(M
atrixA&, VectorIPIV&, MatrixB&) [with MatrixA = boost::numeric::ublas::matrix<do
uble>; VectorIPIV = boost::numeric::ublas::permutation_matrix<long unsigned int>
; MatrixB = boost::numeric::ublas::matrix<double>; std::ptrdiff_t = long int]'
/home/dmitry/zfilter/src/tpsdemo/ludecomposition.h:87:23: required from 'int L
U_Solve(boost::numeric::ublas::matrix<T>&, boost::numeric::ublas::matrix<T>&) [w
ith T = double]'
/home/dmitry/zfilter/src/tpsdemo/spline.cpp:110:33: required from here
/home/dmitry/zfilter/boost_1_55_0/boost/numeric/bindings/detail/property_map.hpp
:30:85: error: no type named 'property_map' in 'struct boost::numeric::bindings:
:detail::adaptor_access<const boost::numeric::ublas::permutation_matrix<long uns
igned int>, void>'
typedef typename mpl::at< typename adaptor_access<T>::property_map, Key >::
type type;
^
In file included from /home/dmitry/zfilter/boost_1_55_0/boost/mpl/aux_/include_p
reprocessed.hpp:37:0,
from /home/dmitry/zfilter/boost_1_55_0/boost/mpl/aux_/compariso
n_op.hpp:35,
from /home/dmitry/zfilter/boost_1_55_0/boost/mpl/greater.hpp:19
,
from /home/dmitry/zfilter/boost_1_55_0/boost/serialization/trac
king.hpp:25,
from /home/dmitry/zfilter/boost_1_55_0/boost/serialization/nvp.
hpp:32,
from /home/dmitry/zfilter/boost_1_55_0/boost/serialization/arra
y.hpp:19,
from /home/dmitry/zfilter/boost_1_55_0/boost/numeric/ublas/stor
age.hpp:21,
from /home/dmitry/zfilter/boost_1_55_0/boost/numeric/ublas/vect
or.hpp:19,
from /home/dmitry/zfilter/boost_1_55_0/boost/numeric/ublas/matr
ix.hpp:16,
from /home/dmitry/zfilter/src/tpsdemo/spline.cpp:16:
/home/dmitry/zfilter/boost_1_55_0/boost/mpl/aux_/nested_type_wknd.hpp: In instan
tiation of 'struct boost::mpl::aux::nested_type_wknd<boost::mpl::greater<boost::
numeric::bindings::tag::addressing_index<1>, boost::numeric::bindings::rank<cons
t boost::numeric::ublas::permutation_matrix<long unsigned int> > > >':
/home/dmitry/zfilter/boost_1_55_0/boost/mpl/aux_/preprocessed/gcc/and.hpp:48:8:
required from 'struct boost::mpl::and_<boost::mpl::greater<boost::numeric::bin
dings::tag::addressing_index<1>, boost::numeric::bindings::rank<const boost::num
eric::ublas::permutation_matrix<long unsigned int> > >, boost::mpl::not_<boost::
numeric::bindings::detail::is_same_at<const boost::numeric::ublas::permutation_m
atrix<long unsigned int>, boost::numeric::bindings::tag::size_type<1>, long int>
>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >'
/home/dmitry/zfilter/boost_1_55_0/boost/numeric/bindings/size.hpp:80:63: requi
red from 'struct boost::numeric::bindings::result_of::size<const boost::numeric:
:ublas::permutation_matrix<long unsigned int>, boost::numeric::bindings::tag::ad
dressing_index<1> >'
/home/dmitry/zfilter/boost_1_55_0/boost/numeric/bindings/size.hpp:102:1: requi
red by substitution of 'template<class T> typename boost::enable_if<boost::mpl::
less<boost::numeric::bindings::rank<T>, mpl_::int_<2> >, typename boost::numeric
::bindings::result_of::size<const T>::type>::type boost::numeric::bindings::size
(const T&) [with T = boost::numeric::ublas::permutation_matrix<long unsigned int
>]'
/home/dmitry/zfilter/boost_1_55_0/boost/numeric/bindings/lapack/driver/gesv.hpp:
199:9: required from 'static std::ptrdiff_t boost::numeric::bindings::lapack::
gesv_impl<Value>::invoke(MatrixA&, VectorIPIV&, MatrixB&) [with MatrixA = boost:
:numeric::ublas::matrix<double>; VectorIPIV = boost::numeric::ublas::permutation
_matrix<long unsigned int>; MatrixB = boost::numeric::ublas::matrix<double>; Val
ue = double; std::ptrdiff_t = long int]'
/home/dmitry/zfilter/boost_1_55_0/boost/numeric/bindings/lapack/driver/gesv.hpp:
234:51: required from 'std::ptrdiff_t boost::numeric::bindings::lapack::gesv(M
atrixA&, VectorIPIV&, MatrixB&) [with MatrixA = boost::numeric::ublas::matrix<do
uble>; VectorIPIV = boost::numeric::ublas::permutation_matrix<long unsigned int>
; MatrixB = boost::numeric::ublas::matrix<double>; std::ptrdiff_t = long int]'
/home/dmitry/zfilter/src/tpsdemo/ludecomposition.h:87:23: required from 'int L
U_Solve(boost::numeric::ublas::matrix<T>&, boost::numeric::ublas::matrix<T>&) [w
ith T = double]'
/home/dmitry/zfilter/src/tpsdemo/spline.cpp:110:33: required from here
/home/dmitry/zfilter/boost_1_55_0/boost/mpl/aux_/nested_type_wknd.hpp:26:31: err
or: no type named 'type' in 'struct boost::mpl::greater<boost::numeric::bindings
::tag::addressing_index<1>, boost::numeric::bindings::rank<const boost::numeric:
:ublas::permutation_matrix<long unsigned int> > >'
template< typename T > struct nested_type_wknd
In file included from /home/dmitry/zfilter/boost_1_55_0/boost/mpl/aux_/include_p
reprocessed.hpp:37:0,
from /home/dmitry/zfilter/boost_1_55_0/boost/mpl/and.hpp:42,
from /home/dmitry/zfilter/boost_1_55_0/boost/numeric/ublas/deta
il/config.hpp:25,
from /home/dmitry/zfilter/boost_1_55_0/boost/numeric/ublas/exce
ption.hpp:19,
from /home/dmitry/zfilter/boost_1_55_0/boost/numeric/ublas/stor
age.hpp:25,
from /home/dmitry/zfilter/boost_1_55_0/boost/numeric/ublas/vect
or.hpp:19,
from /home/dmitry/zfilter/boost_1_55_0/boost/numeric/ublas/matr
ix.hpp:16,
from /home/dmitry/zfilter/src/tpsdemo/spline.cpp:16:
/home/dmitry/zfilter/boost_1_55_0/boost/mpl/aux_/preprocessed/gcc/and.hpp: In in
stantiation of 'struct boost::mpl::and_<boost::mpl::greater<boost::numeric::bind
ings::tag::addressing_index<1>, boost::numeric::bindings::rank<const boost::nume
ric::ublas::permutation_matrix<long unsigned int> > >, boost::mpl::not_<boost::n
umeric::bindings::detail::is_same_at<const boost::numeric::ublas::permutation_ma
trix<long unsigned int>, boost::numeric::bindings::tag::size_type<1>, long int>
>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >':
/home/dmitry/zfilter/boost_1_55_0/boost/numeric/bindings/size.hpp:80:63: requi
red from 'struct boost::numeric::bindings::result_of::size<const boost::numeric:
:ublas::permutation_matrix<long unsigned int>, boost::numeric::bindings::tag::ad
dressing_index<1> >'
/home/dmitry/zfilter/boost_1_55_0/boost/numeric/bindings/size.hpp:102:1: requi
red by substitution of 'template<class T> typename boost::enable_if<boost::mpl::
less<boost::numeric::bindings::rank<T>, mpl_::int_<2> >, typename boost::numeric
::bindings::result_of::size<const T>::type>::type boost::numeric::bindings::size
(const T&) [with T = boost::numeric::ublas::permutation_matrix<long unsigned int
>]'
/home/dmitry/zfilter/boost_1_55_0/boost/numeric/bindings/lapack/driver/gesv.hpp:
199:9: required from 'static std::ptrdiff_t boost::numeric::bindings::lapack::
gesv_impl<Value>::invoke(MatrixA&, VectorIPIV&, MatrixB&) [with MatrixA = boost:
:numeric::ublas::matrix<double>; VectorIPIV = boost::numeric::ublas::permutation
_matrix<long unsigned int>; MatrixB = boost::numeric::ublas::matrix<double>; Val
ue = double; std::ptrdiff_t = long int]'
/home/dmitry/zfilter/boost_1_55_0/boost/numeric/bindings/lapack/driver/gesv.hpp:
234:51: required from 'std::ptrdiff_t boost::numeric::bindings::lapack::gesv(M
atrixA&, VectorIPIV&, MatrixB&) [with MatrixA = boost::numeric::ublas::matrix<do
uble>; VectorIPIV = boost::numeric::ublas::permutation_matrix<long unsigned int>
; MatrixB = boost::numeric::ublas::matrix<double>; std::ptrdiff_t = long int]'
/home/dmitry/zfilter/src/tpsdemo/ludecomposition.h:87:23: required from 'int L
U_Solve(boost::numeric::ublas::matrix<T>&, boost::numeric::ublas::matrix<T>&) [w
ith T = double]'
/home/dmitry/zfilter/src/tpsdemo/spline.cpp:110:33: required from here
/home/dmitry/zfilter/boost_1_55_0/boost/mpl/aux_/preprocessed/gcc/and.hpp:48:8:
error: 'value' is not a member of 'boost::mpl::aux::nested_type_wknd<boost::mpl:
:greater<boost::numeric::bindings::tag::addressing_index<1>, boost::numeric::bin
dings::rank<const boost::numeric::ublas::permutation_matrix<long unsigned int> >
> >'
struct and_
^
/home/dmitry/zfilter/boost_1_55_0/boost/mpl/aux_/preprocessed/gcc/and.hpp: In in
stantiation of 'struct boost::mpl::and_<boost::mpl::greater<boost::numeric::bind
ings::tag::addressing_index<1>, boost::numeric::bindings::rank<const boost::nume
ric::ublas::permutation_matrix<long unsigned int> > >, boost::numeric::bindings:
:detail::is_same_at<const boost::numeric::ublas::permutation_matrix<long unsigne
d int>, boost::numeric::bindings::tag::size_type<1>, long int>, mpl_::bool_<true
>, mpl_::bool_<true>, mpl_::bool_<true> >':
/home/dmitry/zfilter/boost_1_55_0/boost/numeric/bindings/size.hpp:80:63: requi
red from 'struct boost::numeric::bindings::result_of::size<const boost::numeric:
:ublas::permutation_matrix<long unsigned int>, boost::numeric::bindings::tag::ad
dressing_index<1> >'
/home/dmitry/zfilter/boost_1_55_0/boost/numeric/bindings/size.hpp:102:1: requi
red by substitution of 'template<class T> typename boost::enable_if<boost::mpl::
less<boost::numeric::bindings::rank<T>, mpl_::int_<2> >, typename boost::numeric
::bindings::result_of::size<const T>::type>::type boost::numeric::bindings::size
(const T&) [with T = boost::numeric::ublas::permutation_matrix<long unsigned int
>]'
/home/dmitry/zfilter/boost_1_55_0/boost/numeric/bindings/lapack/driver/gesv.hpp:
199:9: required from 'static std::ptrdiff_t boost::numeric::bindings::lapack::
gesv_impl<Value>::invoke(MatrixA&, VectorIPIV&, MatrixB&) [with MatrixA = boost:
:numeric::ublas::matrix<double>; VectorIPIV = boost::numeric::ublas::permutation
_matrix<long unsigned int>; MatrixB = boost::numeric::ublas::matrix<double>; Val
ue = double; std::ptrdiff_t = long int]'
/home/dmitry/zfilter/boost_1_55_0/boost/numeric/bindings/lapack/driver/gesv.hpp:
234:51: required from 'std::ptrdiff_t boost::numeric::bindings::lapack::gesv(M
atrixA&, VectorIPIV&, MatrixB&) [with MatrixA = boost::numeric::ublas::matrix<do
uble>; VectorIPIV = boost::numeric::ublas::permutation_matrix<long unsigned int>
; MatrixB = boost::numeric::ublas::matrix<double>; std::ptrdiff_t = long int]'
/home/dmitry/zfilter/src/tpsdemo/ludecomposition.h:87:23: required from 'int L
U_Solve(boost::numeric::ublas::matrix<T>&, boost::numeric::ublas::matrix<T>&) [w
ith T = double]'
/home/dmitry/zfilter/src/tpsdemo/spline.cpp:110:33: required from here
/home/dmitry/zfilter/boost_1_55_0/boost/mpl/aux_/preprocessed/gcc/and.hpp:48:8:
error: 'value' is not a member of 'boost::mpl::aux::nested_type_wknd<boost::mpl:
:greater<boost::numeric::bindings::tag::addressing_index<1>, boost::numeric::bin
dings::rank<const boost::numeric::ublas::permutation_matrix<long unsigned int> >
> >'
In file included from /home/dmitry/zfilter/boost_1_55_0/boost/numeric/bindings/d
etail/adaptor.hpp:49:0,
from /home/dmitry/zfilter/boost_1_55_0/boost/numeric/bindings/b
egin.hpp:12,
from /home/dmitry/zfilter/boost_1_55_0/boost/numeric/bindings/u
blas/matrix.hpp:12,
from /home/dmitry/zfilter/src/tpsdemo/ludecomposition.h:16,
from /home/dmitry/zfilter/src/tpsdemo/spline.cpp:19:
/home/dmitry/zfilter/boost_1_55_0/boost/numeric/bindings/detail/property_map.hpp
: In instantiation of 'struct boost::numeric::bindings::detail::property_at<cons
t boost::numeric::ublas::permutation_matrix<long unsigned int>, boost::numeric::
bindings::tag::size_type<1> >':
/home/dmitry/zfilter/boost_1_55_0/boost/numeric/bindings/detail/property_map.hpp
:40:8: required from 'struct boost::numeric::bindings::detail::is_same_at<cons
t boost::numeric::ublas::permutation_matrix<long unsigned int>, boost::numeric::
bindings::tag::size_type<1>, long int>'
/home/dmitry/zfilter/boost_1_55_0/boost/mpl/aux_/nested_type_wknd.hpp:26:31: r
equired from 'struct boost::mpl::aux::nested_type_wknd<boost::numeric::bindings:
:detail::is_same_at<const boost::numeric::ublas::permutation_matrix<long unsigne
d int>, boost::numeric::bindings::tag::size_type<1>, long int> >'
/home/dmitry/zfilter/boost_1_55_0/boost/mpl/not.hpp:39:8: required from 'struc
t boost::mpl::not_<boost::numeric::bindings::detail::is_same_at<const boost::num
eric::ublas::permutation_matrix<long unsigned int>, boost::numeric::bindings::ta
g::size_type<1>, long int> >'
/home/dmitry/zfilter/boost_1_55_0/boost/utility/enable_if.hpp:36:10: required
from 'struct boost::enable_if<boost::mpl::not_<boost::numeric::bindings::detail:
:is_same_at<const boost::numeric::ublas::permutation_matrix<long unsigned int>,
boost::numeric::bindings::tag::size_type<1>, long int> >, void>'
/home/dmitry/zfilter/boost_1_55_0/boost/numeric/bindings/detail/get.hpp:83:54:
[ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disabl
e ]
/home/dmitry/zfilter/boost_1_55_0/boost/numeric/bindings/size.hpp:80:63: requi
red from 'struct boost::numeric::bindings::result_of::size<const boost::numeric:
:ublas::permutation_matrix<long unsigned int>, boost::numeric::bindings::tag::ad
dressing_index<1> >'
/home/dmitry/zfilter/boost_1_55_0/boost/numeric/bindings/size.hpp:102:1: requi
red by substitution of 'template<class T> typename boost::enable_if<boost::mpl::
less<boost::numeric::bindings::rank<T>, mpl_::int_<2> >, typename boost::numeric
::bindings::result_of::size<const T>::type>::type boost::numeric::bindings::size
(const T&) [with T = boost::numeric::ublas::permutation_matrix<long unsigned int
>]'
/home/dmitry/zfilter/boost_1_55_0/boost/numeric/bindings/lapack/driver/gesv.hpp:
199:9: required from 'static std::ptrdiff_t boost::numeric::bindings::lapack::
gesv_impl<Value>::invoke(MatrixA&, VectorIPIV&, MatrixB&) [with MatrixA = boost:
:numeric::ublas::matrix<double>; VectorIPIV = boost::numeric::ublas::permutation
_matrix<long unsigned int>; MatrixB = boost::numeric::ublas::matrix<double>; Val
ue = double; std::ptrdiff_t = long int]'
/home/dmitry/zfilter/boost_1_55_0/boost/numeric/bindings/lapack/driver/gesv.hpp:
234:51: required from 'std::ptrdiff_t boost::numeric::bindings::lapack::gesv(M
atrixA&, VectorIPIV&, MatrixB&) [with MatrixA = boost::numeric::ublas::matrix<do
uble>; VectorIPIV = boost::numeric::ublas::permutation_matrix<long unsigned int>
; MatrixB = boost::numeric::ublas::matrix<double>; std::ptrdiff_t = long int]'
/home/dmitry/zfilter/src/tpsdemo/ludecomposition.h:87:23: required from 'int L
U_Solve(boost::numeric::ublas::matrix<T>&, boost::numeric::ublas::matrix<T>&) [with T = double]'
/home/dmitry/zfilter/src/tpsdemo/spline.cpp:110:33: required from here
/home/dmitry/zfilter/boost_1_55_0/boost/numeric/bindings/detail/property_map.hpp
:30:85: error: no type named 'property_map' in 'struct boost::numeric::bindings:
:detail::adaptor_access<const boost::numeric::ublas::permutation_matrix<long uns
igned int>, void>'
typedef typename mpl::at< typename adaptor_access<T>::property_map, Key >::
type type;
...