Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r58712 - sandbox/numeric_bindings/libs/numeric/bindings/lapack/test
From: rutger_at_[hidden]
Date: 2010-01-05 12:02:55


Author: rutger
Date: 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
New Revision: 58712
URL: http://svn.boost.org/trac/boost/changeset/58712

Log:
Sync of work on porting the LAPACK regression (about 40% passes with new bindings / new traits)

Text files modified:
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/convenience.h | 14 +++------
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/hseqr.cpp | 8 ++--
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gbsv.cpp | 10 +++---
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gees.cpp | 24 ++++++++-------
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_geev.cpp | 5 +--
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gels.cpp | 58 +++++++++++++++++++++++++--------------
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gelsd.cpp | 44 +++++++++++++++---------------
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gelss.cpp | 44 +++++++++++++++---------------
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_geqrf.cpp | 12 ++++----
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesdd.cc | 6 ++--
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesdd2.cc | 6 ++--
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesdd3.cc | 6 ++--
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesdd4.cc | 6 ++--
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesv.cc | 8 ++--
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesv2.cc | 4 +-
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesvd.cc | 6 ++--
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesvd2.cc | 6 ++--
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesvd3.cc | 6 ++--
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesvd4.cc | 6 ++--
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_getrf_getrs.cc | 4 +-
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_getrf_getrs1.cpp | 4 +-
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_hbev.cpp | 16 +++++-----
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_hbevx.cpp | 16 +++++-----
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_heev.cpp | 8 ++--
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_heev.hpp | 2
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_heevd.cpp | 8 ++--
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_heevx.cpp | 8 ++--
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_hegv.cpp | 14 ++++----
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_hesv.cc | 6 ++--
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_hetrf_hetrs.cc | 6 ++--
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_hpsv.cc | 6 ++--
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_hptrf_hptrs.cc | 6 ++--
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_posv.cc | 7 ++--
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_potrf_potrs.cc | 6 ++--
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_ppsv.cc | 6 ++--
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_pptrf_pptrs.cc | 6 ++--
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_ptsv.cpp | 6 ++--
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_spsv.cc | 6 ++--
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_sptrf_sptrs.cc | 6 ++--
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_steqr.cpp | 6 ++--
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_syev.cpp | 8 ++--
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_sysv.cc | 6 ++--
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_sytrd.cpp | 6 ++--
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_sytrf_sytrs.cc | 6 ++--
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/utils.h | 35 +++++++++++------------
   45 files changed, 253 insertions(+), 240 deletions(-)

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/convenience.h
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/convenience.h (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/convenience.h 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -18,19 +18,15 @@
 
 #include <boost/numeric/bindings/ublas/matrix.hpp>
 #include <boost/numeric/bindings/ublas/vector.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/ublas_vector.hpp>
-#include <boost/numeric/bindings/traits/matrix_traits.hpp>
-#include <boost/numeric/bindings/traits/vector_traits.hpp>
 #include <boost/numeric/ublas/matrix_proxy.hpp>
 #include <boost/numeric/ublas/vector_proxy.hpp>
 
 // included to implicitly convert a vector to an nx1 matrix
 // so that it is compatible with lapack binding
-#include <boost/numeric/bindings/traits/ublas_vector2.hpp>
+#include <boost/numeric/bindings/ublas/vector2.hpp>
 
 namespace ublas = boost::numeric::ublas;
-namespace traits = boost::numeric::bindings::traits;
+namespace bindings = boost::numeric::bindings;
 
 // single precision typedefs
 typedef float freal_t;
@@ -66,8 +62,8 @@
 template <typename StreamType, typename MatType>
 void matrix_print(StreamType& oss, const std::string& name, const MatType& mat)
 {
- const int m = traits::matrix_size1(mat);
- const int n = traits::matrix_size2(mat);
+ const int m = bindings::size_row(mat);
+ const int n = bindings::size_column(mat);
 
         oss << name << std::endl;
         for (int i=0; i < m; ++i)
@@ -83,7 +79,7 @@
 template <typename StreamType, typename VecType>
 void vector_print(StreamType& oss, const std::string& name, const VecType& vec)
 {
- const int m = traits::vector_size(vec);
+ const int m = bindings::size(vec);
 
         oss << name << std::endl;
         for (int i=0; i < m; ++i)

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/hseqr.cpp
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/hseqr.cpp (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/hseqr.cpp 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -6,8 +6,8 @@
 #include <boost/numeric/ublas/matrix.hpp>
 #include <boost/numeric/ublas/matrix_proxy.hpp>
 #include <boost/numeric/ublas/io.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/ublas_vector.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/ublas/vector.hpp>
 #include <boost/numeric/bindings/traits/detail/utils.hpp>
 #include <boost/numeric/bindings/lapack/computational/hseqr.hpp>
 #include <boost/numeric/bindings/lapack/computational/trevc.hpp>
@@ -99,8 +99,8 @@
 
     ublas::matrix<complex<double>, ublas::column_major> cVL(cZ);
     ublas::matrix<complex<double>, ublas::column_major> cVR(cZ);
- boost::numeric::bindings::traits::detail::array<complex<double> > work_c(2*n);
- boost::numeric::bindings::traits::detail::array<double> work_r(n);
+ boost::numeric::bindings::detail::array<complex<double> > work_c(2*n);
+ boost::numeric::bindings::detail::array<double> work_r(n);
     ublas::vector<bool> select_dummy(n);
     integer_t m_info(0);
     lapack::trevc('B','B',select_dummy,G,cVL,cVR,n,m_info,lapack::workspace(work_c,work_r));

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gbsv.cpp
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gbsv.cpp (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gbsv.cpp 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -1,6 +1,6 @@
-#include <boost/numeric/bindings/traits/std_vector.hpp>
-#include <boost/numeric/bindings/traits/ublas_banded.hpp>
-#include <boost/numeric/bindings/traits/ublas_vector2.hpp>
+#include <boost/numeric/bindings/std/vector.hpp>
+#include <boost/numeric/bindings/ublas/banded.hpp>
+#include <boost/numeric/bindings/ublas/vector2.hpp>
 #include <boost/numeric/bindings/lapack/computational/gbtrf.hpp>
 #include <boost/numeric/bindings/lapack/computational/gbtrs.hpp>
 #include <vector>
@@ -23,7 +23,7 @@
   integer_t const kl = traits::matrix_lower_bandwidth (a);
   integer_t const ku = traits::matrix_upper_bandwidth (a) - kl;
   std::vector<integer_t> piv(a.size1());
- int ret = lapack::gbtrf(traits::matrix_size1(a), traits::matrix_size2(a), kl, ku, a, piv);
+ int ret = lapack::gbtrf(bindings::size_row(a), bindings::size_column(a), kl, ku, a, piv);
   if (ret < 0) {
     //CStdString err;
     //err.Format("banded::Solve: argument %d in DGBTRF had an illegal value", -ret);
@@ -37,7 +37,7 @@
     throw std::runtime_error("banded::Solve: the (%d,%d) diagonal element is 0 after DGBTRF");
   }
 
- ret = lapack::gbtrs(NORMAL, traits::matrix_size1(a), kl, ku, a, piv, b);
+ ret = lapack::gbtrs(NORMAL, bindings::size_row(a), kl, ku, a, piv, b);
   if (ret < 0) {
     //CStdString err;
     //err.Format("banded::Solve: argument %d in DGBTRS had an illegal value", -ret);

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gees.cpp
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gees.cpp (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gees.cpp 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -8,12 +8,13 @@
 
 #include "../../blas/test/random.hpp"
 
+#include <boost/numeric/bindings/begin.hpp>
+#include <boost/numeric/bindings/value.hpp>
+#include <boost/numeric/bindings/remove_imaginary.hpp>
 #include <boost/numeric/bindings/ublas/matrix.hpp>
 #include <boost/numeric/bindings/ublas/vector.hpp>
 #include <boost/numeric/bindings/lapack/driver/gees.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/ublas_vector.hpp>
-#include <boost/numeric/bindings/traits/detail/utils.hpp>
+#include <boost/numeric/bindings/detail/array.hpp>
 #include <boost/numeric/ublas/io.hpp>
 #include <boost/type_traits/is_complex.hpp>
 #include <boost/mpl/if.hpp>
@@ -25,6 +26,7 @@
 namespace ublas = boost::numeric::ublas;
 namespace lapack = boost::numeric::bindings::lapack;
 namespace traits = boost::numeric::bindings::traits;
+namespace bindings = boost::numeric::bindings;
 
 struct apply_real {
   template< typename MatrixA, typename VectorW, typename MatrixVS,
@@ -32,14 +34,14 @@
   static inline integer_t gees( const char jobvs, const char sort,
         logical_t* select, MatrixA& a, integer_t& sdim, VectorW& w,
         MatrixVS& vs, Workspace work ) {
- typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
- traits::detail::array<value_type> wr(traits::vector_size(w));
- traits::detail::array<value_type> wi(traits::vector_size(w));
+ typedef typename bindings::value< MatrixA >::type value_type;
+ bindings::detail::array<value_type> wr(bindings::size(w));
+ bindings::detail::array<value_type> wi(bindings::size(w));
     integer_t info = lapack::gees_2( jobvs, sort, select, a, sdim, wr, wi, vs, work );
- traits::detail::interlace(traits::vector_storage(wr),
- traits::vector_storage(wr)+traits::vector_size(w),
- traits::vector_storage(wi),
- traits::vector_storage(w));
+ traits::detail::interlace(bindings::begin_value(wr),
+ bindings::begin_value(wr)+bindings::size(w),
+ bindings::begin_value(wi),
+ bindings::begin_value(w));
     return info;
   }
 };
@@ -77,7 +79,7 @@
 template <typename T, typename W>
 int do_memory_type(int n, W workspace) {
    typedef typename boost::mpl::if_<boost::is_complex<T>, apply_complex, apply_real>::type apply_t;
- typedef typename boost::numeric::bindings::traits::type_traits<T>::real_type real_type ;
+ typedef typename bindings::remove_imaginary< T>::type real_type ;
    typedef std::complex< real_type > complex_type ;
 
    typedef ublas::matrix<T, ublas::column_major> matrix_type ;

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_geev.cpp
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_geev.cpp (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_geev.cpp 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -1,11 +1,10 @@
 #include<iostream>
 #include<cstdlib>
 #include<complex>
-#include <boost/numeric/ublas/matrix.hpp>
 #include <boost/numeric/ublas/matrix_proxy.hpp>
 #include <boost/numeric/ublas/io.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/ublas_vector.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/ublas/vector.hpp>
 #include <boost/numeric/bindings/lapack/driver/geev.hpp>
 #include "utils.h"
 

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gels.cpp
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gels.cpp (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gels.cpp 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -8,6 +8,10 @@
 
 #include "convenience.h"
 #include <boost/numeric/bindings/lapack/driver/gels.hpp>
+#include <boost/numeric/bindings/trans.hpp>
+#include <boost/numeric/bindings/conj.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/ublas/vector.hpp>
 
 // set to 1 to write test output to file, otherwise outputs to console
 #define OUTPUT_TO_FILE 0
@@ -23,6 +27,7 @@
 #define USE_OPTIMAL_WORKSPACE 1
 #define USE_MINIMAL_WORKSPACE 1
 
+namespace bindings = boost::numeric::bindings;
 namespace lapack = boost::numeric::bindings::lapack;
 
 // test function declarations
@@ -255,20 +260,20 @@
         MatType mat(MatrixGenerator<MatType>()(row_size, col_size));
         VecType vec(VectorGenerator<VecType>()(row_size));
 
- //const int m = traits::matrix_size1(mat);
- const int n = traits::matrix_size2(mat);
+ //const int m = bindings::size_row(mat);
+ const int n = bindings::size_column(mat);
 
 #if USE_OPTIMAL_WORKSPACE
         MatType optimalmat(mat);
         VecType optimalvec(vec);
- err += lapack::gels('N', optimalmat, optimalvec, lapack::optimal_workspace());
+ err += lapack::gels( optimalmat, optimalvec, lapack::optimal_workspace());
         VecType optimalanswer(ublas::project(optimalvec, ublas::range(0, n)));
         VecType optimal_check = ublas::prod(mat, optimalanswer);
 #endif
 #if USE_MINIMAL_WORKSPACE
         MatType minimalmat(mat);
         VecType minimalvec(vec);
- err += lapack::gels('N', minimalmat, minimalvec, lapack::minimal_workspace());
+ err += lapack::gels( minimalmat, minimalvec, lapack::minimal_workspace());
         VecType minimalanswer(ublas::project(minimalvec, ublas::range(0, n)));
         VecType minimal_check = ublas::prod(mat, minimalanswer);
 #endif
@@ -311,20 +316,20 @@
         MatType mat(MatrixGenerator<MatType>()(row_range, col_size));
         VecType vec(VectorGenerator<VecType>()(row_size));
 
- //const int m = traits::matrix_size1(mat);
- const int n = traits::matrix_size2(mat);
+ //const int m = bindings::size_row(mat);
+ const int n = bindings::size_column(mat);
 
 #if USE_OPTIMAL_WORKSPACE
         MatType optimalmat(mat);
         VecType optimalvec(vec);
- err += lapack::gels('N', optimalmat, optimalvec, lapack::optimal_workspace());
+ err += lapack::gels( optimalmat, optimalvec, lapack::optimal_workspace());
         VecType optimalanswer(ublas::project(optimalvec, ublas::range(0, n)));
         VecType optimal_check = ublas::prod(mat, optimalanswer);
 #endif
 #if USE_MINIMAL_WORKSPACE
         MatType minimalmat(mat);
         VecType minimalvec(vec);
- err += lapack::gels('N', minimalmat, minimalvec, lapack::minimal_workspace());
+ err += lapack::gels( minimalmat, minimalvec, lapack::minimal_workspace());
         VecType minimalanswer(ublas::project(minimalvec, ublas::range(0, n)));
         VecType minimal_check = ublas::prod(mat, minimalanswer);
 #endif
@@ -367,20 +372,20 @@
         MatType mat(MatrixGenerator<MatType>()(row_size, col_range));
         VecType vec(VectorGenerator<VecType>()(row_size));
 
- //const int m = traits::matrix_size1(mat);
- const int n = traits::matrix_size2(mat);
+ //const int m = bindings::size_row(mat);
+ const int n = bindings::size_column(mat);
 
 #if USE_OPTIMAL_WORKSPACE
         MatType optimalmat(mat);
         VecType optimalvec(vec);
- err += lapack::gels('N', optimalmat, optimalvec, lapack::optimal_workspace());
+ err += lapack::gels( optimalmat, optimalvec, lapack::optimal_workspace());
         VecType optimalanswer(ublas::project(optimalvec, ublas::range(0, n)));
         VecType optimal_check = ublas::prod(mat, optimalanswer);
 #endif
 #if USE_MINIMAL_WORKSPACE
         MatType minimalmat(mat);
         VecType minimalvec(vec);
- err += lapack::gels('N', minimalmat, minimalvec, lapack::minimal_workspace());
+ err += lapack::gels( minimalmat, minimalvec, lapack::minimal_workspace());
         VecType minimalanswer(ublas::project(minimalvec, ublas::range(0, n)));
         VecType minimal_check = ublas::prod(mat, minimalanswer);
 #endif
@@ -425,21 +430,21 @@
         ublas::column(vec, 0) = VectorGenerator<VecType>()(mat.size1());
         ublas::column(vec, 1) = VectorGenerator<VecType>()(mat.size1());
 
- //const int m = traits::matrix_size1(mat);
- const int n = traits::matrix_size2(mat);
- const int nrhs = traits::matrix_size2(vec);
+ //const int m = bindings::size_row(mat);
+ const int n = bindings::size_column(mat);
+ const int nrhs = bindings::size_column(vec);
 
 #if USE_OPTIMAL_WORKSPACE
         MatType optimalmat(mat);
         MatType optimalvec(vec);
- err += lapack::gels('N', optimalmat, optimalvec, lapack::optimal_workspace());
+ err += lapack::gels( optimalmat, optimalvec, lapack::optimal_workspace());
         MatType optimalanswer(ublas::project(optimalvec, ublas::range(0, n), ublas::range(0, nrhs)));
         MatType optimal_check = ublas::prod(mat, optimalanswer);
 #endif
 #if USE_MINIMAL_WORKSPACE
         MatType minimalmat(mat);
         MatType minimalvec(vec);
- err += lapack::gels('N', minimalmat, minimalvec, lapack::minimal_workspace());
+ err += lapack::gels( minimalmat, minimalvec, lapack::minimal_workspace());
         MatType minimalanswer(ublas::project(minimalvec, ublas::range(0, n), ublas::range(0, nrhs)));
         MatType minimal_check = ublas::prod(mat, minimalanswer);
 #endif
@@ -481,20 +486,31 @@
         MatType mat(MatrixGenerator<MatType>()(row_size, col_size));
         VecType vec(VectorGenerator<VecType>()(row_size));
 
- //const int m = traits::matrix_size1(mat);
- const int n = traits::matrix_size2(mat);
+ //const int m = bindings::size_row(mat);
+ const int n = bindings::size_column(mat);
 
 #if USE_OPTIMAL_WORKSPACE
         MatType optimalmat(mat);
         VecType optimalvec(vec);
- err += lapack::gels(trans, optimalmat, optimalvec, lapack::optimal_workspace());
+
+ if( trans == 'T' ) {
+ err += lapack::gels( bindings::trans( optimalmat ), optimalvec, lapack::optimal_workspace());
+ }
+ if( trans == 'C' ) {
+ err += lapack::gels( bindings::conj( optimalmat ), optimalvec, lapack::optimal_workspace());
+ }
         VecType optimalanswer(ublas::project(optimalvec, ublas::range(0, n)));
         VecType optimal_check = ublas::prod(mat, optimalanswer);
 #endif
 #if USE_MINIMAL_WORKSPACE
         MatType minimalmat(mat);
         VecType minimalvec(vec);
- err += lapack::gels(trans, minimalmat, minimalvec, lapack::minimal_workspace());
+ if( trans == 'T' ) {
+ err += lapack::gels( bindings::trans( minimalmat ), minimalvec, lapack::minimal_workspace());
+ }
+ if( trans == 'C' ) {
+ err += lapack::gels( bindings::conj( minimalmat ), minimalvec, lapack::minimal_workspace());
+ }
         VecType minimalanswer(ublas::project(minimalvec, ublas::range(0, n)));
         VecType minimal_check = ublas::prod(mat, minimalanswer);
 #endif

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gelsd.cpp
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gelsd.cpp (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gelsd.cpp 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -23,7 +23,7 @@
 #define USE_MINIMAL_WORKSPACE 1
 
 namespace lapack = boost::numeric::bindings::lapack;
-namespace traits = boost::numeric::bindings::traits;
+namespace bindings = boost::numeric::bindings;
 
 // test function declarations
 template <typename StreamType, typename MatrType, typename VecType>
@@ -220,8 +220,8 @@
 template <typename StreamType, typename MatType, typename VecType>
 int test_square_gelsd(StreamType& oss)
 {
- typedef typename traits::matrix_traits<MatType>::value_type val_t;
- typedef typename traits::type_traits<val_t>::real_type real_t;
+ typedef typename bindings::value<MatType>::type val_t;
+ typedef typename bindings::remove_imaginary<val_t>::type real_t;
         const real_t rcond = -1; // use machine precision
         integer_t rank;
 
@@ -232,9 +232,9 @@
         MatType mat(MatrixGenerator<MatType>()(row_size, col_size));
         VecType vec(VectorGenerator<VecType>()(row_size));
         
- //const int m = traits::matrix_size1(mat);
- const int n = traits::matrix_size2(mat);
- traits::detail::array<real_t> s(n);
+ //const int m = bindings::size_row(mat);
+ const int n = bindings::size_column(mat);
+ bindings::detail::array<real_t> s(n);
 
 #if USE_OPTIMAL_WORKSPACE
         MatType optimalmat(mat);
@@ -281,8 +281,8 @@
 template <typename StreamType, typename MatType, typename VecType>
 int test_under_gelsd(StreamType& oss)
 {
- typedef typename traits::matrix_traits<MatType>::value_type val_t;
- typedef typename traits::type_traits<val_t>::real_type real_t;
+ typedef typename bindings::value<MatType>::type val_t;
+ typedef typename bindings::remove_imaginary<val_t>::type real_t;
         const real_t rcond = -1; // use machine precision
         integer_t rank;
 
@@ -293,9 +293,9 @@
         MatType mat(MatrixGenerator<MatType>()(row_range, col_size));
         VecType vec(VectorGenerator<VecType>()(row_size));
 
- //const int m = traits::matrix_size1(mat);
- const int n = traits::matrix_size2(mat);
- traits::detail::array<real_t> s(n);
+ //const int m = bindings::size_row(mat);
+ const int n = bindings::size_column(mat);
+ bindings::detail::array<real_t> s(n);
 
 #if USE_OPTIMAL_WORKSPACE
         MatType optimalmat(mat);
@@ -342,8 +342,8 @@
 template <typename StreamType, typename MatType, typename VecType>
 int test_over_gelsd(StreamType& oss)
 {
- typedef typename traits::matrix_traits<MatType>::value_type val_t;
- typedef typename traits::type_traits<val_t>::real_type real_t;
+ typedef typename bindings::value<MatType>::type val_t;
+ typedef typename bindings::remove_imaginary<val_t>::type real_t;
         const real_t rcond = -1; // use machine precision
         integer_t rank;
 
@@ -354,9 +354,9 @@
         MatType mat(MatrixGenerator<MatType>()(row_size, col_range));
         VecType vec(VectorGenerator<VecType>()(row_size));
 
- //const int m = traits::matrix_size1(mat);
- const int n = traits::matrix_size2(mat);
- traits::detail::array<real_t> s(n);
+ //const int m = bindings::size_row(mat);
+ const int n = bindings::size_column(mat);
+ bindings::detail::array<real_t> s(n);
 
 #if USE_OPTIMAL_WORKSPACE
         MatType optimalmat(mat);
@@ -403,8 +403,8 @@
 template <typename StreamType, typename MatType, typename VecType>
 int test_multiple_gelsd(StreamType& oss)
 {
- typedef typename traits::matrix_traits<MatType>::value_type val_t;
- typedef typename traits::type_traits<val_t>::real_type real_t;
+ typedef typename bindings::value<MatType>::type val_t;
+ typedef typename bindings::remove_imaginary<val_t>::type real_t;
         const real_t rcond = -1; // use machine precision
         integer_t rank;
 
@@ -417,10 +417,10 @@
         ublas::column(vec, 0) = VectorGenerator<VecType>()(mat.size1());
         ublas::column(vec, 1) = VectorGenerator<VecType>()(mat.size1());
 
- //const int m = traits::matrix_size1(mat);
- const int n = traits::matrix_size2(mat);
- const int nrhs = traits::matrix_size2(vec);
- traits::detail::array<real_t> s(n);
+ //const int m = bindings::size_row(mat);
+ const int n = bindings::size_column(mat);
+ const int nrhs = bindings::size_column(vec);
+ bindings::detail::array<real_t> s(n);
 
 #if USE_OPTIMAL_WORKSPACE
         MatType optimalmat(mat);

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gelss.cpp
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gelss.cpp (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gelss.cpp 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -23,7 +23,7 @@
 #define USE_MINIMAL_WORKSPACE 1
 
 namespace lapack = boost::numeric::bindings::lapack;
-namespace traits = boost::numeric::bindings::traits;
+namespace bindings = boost::numeric::bindings;
 
 // test function declarations
 template <typename StreamType, typename MatrType, typename VecType>
@@ -220,8 +220,8 @@
 template <typename StreamType, typename MatType, typename VecType>
 int test_square_gelss(StreamType& oss)
 {
- typedef typename traits::matrix_traits<MatType>::value_type val_t;
- typedef typename traits::type_traits<val_t>::real_type real_t;
+ typedef typename bindings::value<MatType>::type val_t;
+ typedef typename bindings::remove_imaginary<val_t>::type real_t;
         const real_t rcond = -1; // use machine precision
         integer_t rank;
 
@@ -232,9 +232,9 @@
         MatType mat(MatrixGenerator<MatType>()(row_size, col_size));
         VecType vec(VectorGenerator<VecType>()(row_size));
 
- //const int m = traits::matrix_size1(mat);
- const int n = traits::matrix_size2(mat);
- traits::detail::array<real_t> s(n);
+ //const int m = bindings::size_row(mat);
+ const int n = bindings::size_column(mat);
+ bindings::detail::array<real_t> s(n);
 
 #if USE_OPTIMAL_WORKSPACE
         MatType optimalmat(mat);
@@ -281,8 +281,8 @@
 template <typename StreamType, typename MatType, typename VecType>
 int test_under_gelss(StreamType& oss)
 {
- typedef typename traits::matrix_traits<MatType>::value_type val_t;
- typedef typename traits::type_traits<val_t>::real_type real_t;
+ typedef typename bindings::value<MatType>::type val_t;
+ typedef typename bindings::remove_imaginary<val_t>::type real_t;
         const real_t rcond = -1; // use machine precision
         integer_t rank;
 
@@ -293,9 +293,9 @@
         MatType mat(MatrixGenerator<MatType>()(row_range, col_size));
         VecType vec(VectorGenerator<VecType>()(row_size));
 
- //const int m = traits::matrix_size1(mat);
- const int n = traits::matrix_size2(mat);
- traits::detail::array<real_t> s(n);
+ //const int m = bindings::size_row(mat);
+ const int n = bindings::size_column(mat);
+ bindings::detail::array<real_t> s(n);
 
 #if USE_OPTIMAL_WORKSPACE
         MatType optimalmat(mat);
@@ -342,8 +342,8 @@
 template <typename StreamType, typename MatType, typename VecType>
 int test_over_gelss(StreamType& oss)
 {
- typedef typename traits::matrix_traits<MatType>::value_type val_t;
- typedef typename traits::type_traits<val_t>::real_type real_t;
+ typedef typename bindings::value<MatType>::type val_t;
+ typedef typename bindings::remove_imaginary<val_t>::type real_t;
         const real_t rcond = -1; // use machine precision
         integer_t rank;
 
@@ -354,9 +354,9 @@
         MatType mat(MatrixGenerator<MatType>()(row_size, col_range));
         VecType vec(VectorGenerator<VecType>()(row_size));
 
- //const int m = traits::matrix_size1(mat);
- const int n = traits::matrix_size2(mat);
- traits::detail::array<real_t> s(n);
+ //const int m = bindings::size_row(mat);
+ const int n = bindings::size_column(mat);
+ bindings::detail::array<real_t> s(n);
 
 #if USE_OPTIMAL_WORKSPACE
         MatType optimalmat(mat);
@@ -403,8 +403,8 @@
 template <typename StreamType, typename MatType, typename VecType>
 int test_multiple_gelss(StreamType& oss)
 {
- typedef typename traits::matrix_traits<MatType>::value_type val_t;
- typedef typename traits::type_traits<val_t>::real_type real_t;
+ typedef typename bindings::value<MatType>::type val_t;
+ typedef typename bindings::remove_imaginary<val_t>::type real_t;
         const real_t rcond = -1; // use machine precision
         integer_t rank;
 
@@ -417,10 +417,10 @@
         ublas::column(vec, 0) = VectorGenerator<VecType>()(mat.size1());
         ublas::column(vec, 1) = VectorGenerator<VecType>()(mat.size1());
 
- //const int m = traits::matrix_size1(mat);
- const int n = traits::matrix_size2(mat);
- const int nrhs = traits::matrix_size2(vec);
- traits::detail::array<real_t> s(n);
+ //const int m = bindings::size_row(mat);
+ const int n = bindings::size_column(mat);
+ const int nrhs = bindings::size_column(vec);
+ bindings::detail::array<real_t> s(n);
 
 #if USE_OPTIMAL_WORKSPACE
         MatType optimalmat(mat);

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_geqrf.cpp
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_geqrf.cpp (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_geqrf.cpp 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -15,8 +15,8 @@
 #include <boost/numeric/bindings/lapack/computational/orgqr.hpp>
 #include <boost/numeric/bindings/lapack/computational/unmqr.hpp>
 #include <boost/numeric/bindings/lapack/computational/ungqr.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/ublas_vector.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/ublas/vector.hpp>
 #include <boost/numeric/ublas/triangular.hpp>
 #include <boost/numeric/ublas/io.hpp>
 #include <boost/type_traits/is_complex.hpp>
@@ -28,7 +28,7 @@
 
 namespace ublas = boost::numeric::ublas;
 namespace lapack = boost::numeric::bindings::lapack;
-namespace traits = boost::numeric::bindings::traits;
+namespace bindings = boost::numeric::bindings;
 
 struct apply_real {
   template< typename MatrixA, typename VectorTAU, typename Workspace >
@@ -104,7 +104,7 @@
 template <typename T, typename W>
 int do_memory_type(int n, W workspace) {
    typedef typename boost::mpl::if_<boost::is_complex<T>, apply_complex, apply_real>::type apply_t;
- typedef typename boost::numeric::bindings::traits::type_traits<T>::real_type real_type ;
+ typedef typename bindings::remove_imaginary<T>::type real_type ;
    typedef std::complex< real_type > complex_type ;
 
    typedef ublas::matrix<T, ublas::column_major> matrix_type ;
@@ -122,14 +122,14 @@
    lapack::geqrf( a, tau, workspace ) ;
 
    // Apply the orthogonal transformations to a2
- apply_t::ormqr( 'L', transpose<T>::value, traits::vector_size (tau), a, tau, a2, workspace );
+ apply_t::ormqr( 'L', transpose<T>::value, bindings::size (tau), a, tau, a2, workspace );
 
    // The upper triangular parts of a and a2 must be equal.
    if (norm_frobenius( upper_part( a - a2 ) )
> std::numeric_limits<real_type>::epsilon() * 10.0 * norm_frobenius( upper_part( a ) ) ) return 255 ;
 
    // Generate orthogonal matrix
- apply_t::orgqr( traits::matrix_size1 (a), traits::matrix_size2 (a), traits::vector_size (tau), a, tau, workspace );
+ apply_t::orgqr( bindings::size_row (a), bindings::size_column (a), bindings::size (tau), a, tau, workspace );
 
    // The result of lapack::ormqr and the equivalent matrix product must be equal.
    if (norm_frobenius( a2 - prod(herm(a), a3) )

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesdd.cc
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesdd.cc (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesdd.cc 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -5,9 +5,9 @@
 #include <iostream>
 #include <algorithm>
 #include <boost/numeric/bindings/lapack/driver/gesdd.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/ublas_vector.hpp>
-#include <boost/numeric/bindings/traits/std_vector.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/ublas/vector.hpp>
+#include <boost/numeric/bindings/std/vector.hpp>
 #include "utils.h"
 
 namespace ublas = boost::numeric::ublas;

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesdd2.cc
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesdd2.cc (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesdd2.cc 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -6,9 +6,9 @@
 #include <algorithm>
 #include <complex>
 #include <boost/numeric/bindings/lapack/driver/gesdd.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/ublas_vector.hpp>
-#include <boost/numeric/bindings/traits/std_vector.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/ublas/vector.hpp>
+#include <boost/numeric/bindings/std/vector.hpp>
 #include "utils.h"
 
 namespace ublas = boost::numeric::ublas;

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesdd3.cc
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesdd3.cc (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesdd3.cc 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -5,9 +5,9 @@
 #include <iostream>
 #include <algorithm>
 #include <boost/numeric/bindings/lapack/driver/gesdd.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/ublas_vector.hpp>
-#include <boost/numeric/bindings/traits/std_vector.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/ublas/vector.hpp>
+#include <boost/numeric/bindings/std/vector.hpp>
 #include <boost/numeric/ublas/matrix_proxy.hpp>
 #include "utils.h"
 

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesdd4.cc
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesdd4.cc (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesdd4.cc 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -5,9 +5,9 @@
 #include <iostream>
 #include <algorithm>
 #include <boost/numeric/bindings/lapack/driver/gesdd.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/ublas_vector.hpp>
-#include <boost/numeric/bindings/traits/std_vector.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/ublas/vector.hpp>
+#include <boost/numeric/bindings/std/vector.hpp>
 #include <boost/numeric/ublas/matrix_proxy.hpp>
 #include "utils.h"
 

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesv.cc
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesv.cc (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesv.cc 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -6,8 +6,8 @@
 #include <iostream>
 #include <complex>
 #include <boost/numeric/bindings/lapack/driver/gesv.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/std_vector.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/std/vector.hpp>
 #include "utils.h"
 
 namespace ublas = boost::numeric::ublas;
@@ -33,7 +33,7 @@
   size_t nrhs = 2;
   m_t x (n, nrhs), b (n, nrhs); // b -- right-hand side matrix
 
- std::vector<integer_t> ipiv (n); // pivot vector
+ std::vector< fortran_int_t > ipiv (n); // pivot vector
 
   init_symm (a);
   // [n n-1 n-2 ... 1]
@@ -68,7 +68,7 @@
   cout << endl;
   cout << "complex system:" << endl << endl;
   cm_t ca (3, 3), cb (3, 1), cx (3, 1);
- std::vector<integer_t> ipiv2 (3);
+ std::vector< fortran_int_t > ipiv2 (3);
 
   ca (0, 0) = cmpx_t (3, 0);
   ca (0, 1) = cmpx_t (4, 2);

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesv2.cc
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesv2.cc (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesv2.cc 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -6,8 +6,8 @@
 #include <iostream>
 #include <vector>
 #include <boost/numeric/bindings/lapack/driver/gesv.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/std_vector.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/std/vector.hpp>
 #include <boost/numeric/ublas/matrix_proxy.hpp>
 #include "utils.h"
 

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesvd.cc
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesvd.cc (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesvd.cc 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -5,9 +5,9 @@
 #include <iostream>
 #include <algorithm>
 #include <boost/numeric/bindings/lapack/driver/gesvd.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/ublas_vector.hpp>
-#include <boost/numeric/bindings/traits/std_vector.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/ublas/vector.hpp>
+#include <boost/numeric/bindings/std/vector.hpp>
 #include "utils.h"
 
 namespace ublas = boost::numeric::ublas;

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesvd2.cc
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesvd2.cc (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesvd2.cc 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -6,9 +6,9 @@
 #include <algorithm>
 #include <complex>
 #include <boost/numeric/bindings/lapack/driver/gesvd.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/ublas_vector.hpp>
-#include <boost/numeric/bindings/traits/std_vector.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/ublas/vector.hpp>
+#include <boost/numeric/bindings/std/vector.hpp>
 #include <boost/numeric/ublas/matrix_proxy.hpp>
 #include "utils.h"
 

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesvd3.cc
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesvd3.cc (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesvd3.cc 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -5,9 +5,9 @@
 #include <iostream>
 #include <algorithm>
 #include <boost/numeric/bindings/lapack/driver/gesvd.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/ublas_vector.hpp>
-#include <boost/numeric/bindings/traits/std_vector.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/ublas/vector.hpp>
+#include <boost/numeric/bindings/std/vector.hpp>
 #include <boost/numeric/ublas/matrix_proxy.hpp>
 #include "utils.h"
 

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesvd4.cc
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesvd4.cc (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gesvd4.cc 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -3,9 +3,9 @@
 #include <iostream>
 #include <algorithm>
 #include <boost/numeric/bindings/lapack/driver/gesvd.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/ublas_vector.hpp>
-#include <boost/numeric/bindings/traits/std_vector.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/ublas/vector.hpp>
+#include <boost/numeric/bindings/std/vector.hpp>
 #include <boost/numeric/ublas/matrix_proxy.hpp>
 #include "utils.h"
 

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_getrf_getrs.cc
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_getrf_getrs.cc (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_getrf_getrs.cc 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -8,8 +8,8 @@
 #include <boost/numeric/bindings/lapack/computational/getrf.hpp>
 #include <boost/numeric/bindings/lapack/computational/getri.hpp>
 #include <boost/numeric/bindings/lapack/computational/getrs.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/std_vector.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/std/vector.hpp>
 #include <boost/numeric/ublas/matrix_proxy.hpp>
 #include "utils.h"
 

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_getrf_getrs1.cpp
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_getrf_getrs1.cpp (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_getrf_getrs1.cpp 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -2,8 +2,8 @@
 #include <boost/numeric/bindings/lapack/computational/getrf.hpp>
 #include <boost/numeric/bindings/lapack/computational/getri.hpp>
 #include <boost/numeric/bindings/lapack/computational/getrs.hpp>
-#include <boost/numeric/bindings/traits/std_vector.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
+#include <boost/numeric/bindings/std/vector.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
 
 template < typename matrix_type >
 void test_getrf_getrs(matrix_type& lu, matrix_type& x)

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_hbev.cpp
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_hbev.cpp (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_hbev.cpp 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -12,10 +12,10 @@
 #include <boost/numeric/bindings/lapack/driver/sbev.hpp>
 #include <boost/numeric/ublas/matrix_proxy.hpp>
 #include <boost/numeric/ublas/vector_proxy.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/ublas_vector.hpp>
-#include <boost/numeric/bindings/traits/ublas_banded.hpp>
-#include <boost/numeric/bindings/traits/ublas_hermitian.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/ublas/vector.hpp>
+#include <boost/numeric/bindings/ublas/banded.hpp>
+#include <boost/numeric/bindings/ublas/hermitian.hpp>
 #include <boost/numeric/ublas/hermitian.hpp>
 #include <boost/numeric/ublas/io.hpp>
 #include <boost/type_traits/is_complex.hpp>
@@ -70,7 +70,7 @@
 template <typename T, typename W, typename UPLO, typename Orientation>
 int do_memory_uplo(int n, W& workspace ) {
    typedef typename boost::mpl::if_<boost::is_complex<T>, apply_complex, apply_real>::type apply_t;
- typedef typename boost::numeric::bindings::traits::type_traits<T>::real_type real_type ;
+ typedef typename bindings::remove_imaginary<T>::type real_type ;
 
    typedef ublas::banded_matrix<T, Orientation> banded_type ;
    typedef ublas::matrix<T, ublas::column_major> matrix_type ;
@@ -88,13 +88,13 @@
    ublas::hermitian_adaptor<banded_type, UPLO> h( a ), h2( a2 );
 
    // Compute Schur decomposition.
- apply_t::hbev( 'V', traits::matrix_size2( h ), traits::matrix_upper_bandwidth( h ),
+ apply_t::hbev( 'V', bindings::size_column( h ), traits::matrix_upper_bandwidth( h ),
      h, e1, z, workspace ) ;
 
    if (check_residual( h2, e1, z )) return 255 ;
 
    matrix_type dummy_z( n, n );
- apply_t::hbev( 'N', traits::matrix_size2( h2 ), traits::matrix_upper_bandwidth( h2 ),
+ apply_t::hbev( 'N', bindings::size_column( h2 ), traits::matrix_upper_bandwidth( h2 ),
      h2, e2, dummy_z, workspace ) ;
    if (norm_2( e1 - e2 ) > n * norm_2( e1 ) * std::numeric_limits< real_type >::epsilon()) return 255 ;
 
@@ -109,7 +109,7 @@
    ublas::vector_range< vector_type> e_r( e1, r );
    ublas::matrix_range< matrix_type> z_r( z, r, r );
 
- apply_t::hbev( 'V', traits::matrix_size2( h_r ), traits::matrix_upper_bandwidth( h_r ),
+ apply_t::hbev( 'V', bindings::size_column( h_r ), traits::matrix_upper_bandwidth( h_r ),
      h_r, e_r, z_r, workspace );
 
    banded_range a2_r( a2, r, r );

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_hbevx.cpp
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_hbevx.cpp (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_hbevx.cpp 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -13,10 +13,10 @@
 #include <boost/numeric/bindings/lapack/driver/sbevx.hpp>
 #include <boost/numeric/ublas/matrix_proxy.hpp>
 #include <boost/numeric/ublas/vector_proxy.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/ublas_vector.hpp>
-#include <boost/numeric/bindings/traits/ublas_banded.hpp>
-#include <boost/numeric/bindings/traits/ublas_hermitian.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/ublas/vector.hpp>
+#include <boost/numeric/bindings/ublas/banded.hpp>
+#include <boost/numeric/bindings/ublas/hermitian.hpp>
 #include <boost/numeric/ublas/hermitian.hpp>
 #include <boost/numeric/ublas/io.hpp>
 #include <boost/type_traits/is_complex.hpp>
@@ -87,7 +87,7 @@
 template <typename T, typename W, typename UPLO, typename Orientation>
 int do_memory_uplo(int n, W& workspace ) {
    typedef typename boost::mpl::if_<boost::is_complex<T>, apply_complex, apply_real>::type apply_t;
- typedef typename boost::numeric::bindings::traits::type_traits<T>::real_type real_type ;
+ typedef typename bindings::remove_imaginary<T>::type real_type ;
 
    typedef ublas::banded_matrix<T, Orientation> banded_type ;
    typedef ublas::matrix<T, ublas::column_major> matrix_type ;
@@ -110,12 +110,12 @@
 
 
    // Compute Schur decomposition.
- apply_t::hbevx( 'V', 'A', traits::matrix_size2( h ), traits::matrix_upper_bandwidth( h ),
+ apply_t::hbevx( 'V', 'A', bindings::size_column( h ), traits::matrix_upper_bandwidth( h ),
      h, q, vl, vu, il, iu, abstol, m, e1, z, ifail, workspace ) ;
 
    if (check_residual( h2, e1, z )) return 255 ;
 
- apply_t::hbevx( 'N', 'A', traits::matrix_size2( h2 ), traits::matrix_upper_bandwidth( h2 ),
+ apply_t::hbevx( 'N', 'A', bindings::size_column( h2 ), traits::matrix_upper_bandwidth( h2 ),
      h2, q, vl, vu, il, iu, abstol, m, e2, z, ifail, workspace ) ;
    if (norm_2( e1 - e2 ) > n * norm_2( e1 ) * std::numeric_limits< real_type >::epsilon()) return 255 ;
 
@@ -131,7 +131,7 @@
    ublas::matrix_range< matrix_type> z_r( z, r, r );
    ublas::vector<integer_t> ifail_r(n-2);
 
- apply_t::hbevx( 'V', 'A', traits::matrix_size2( h_r ), traits::matrix_upper_bandwidth( h_r ),
+ apply_t::hbevx( 'V', 'A', bindings::size_column( h_r ), traits::matrix_upper_bandwidth( h_r ),
      h_r, q, vl, vu, il, iu, abstol, m, e_r, z_r, ifail_r, workspace ) ;
 
    banded_range a2_r( a2, r, r );

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_heev.cpp
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_heev.cpp (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_heev.cpp 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -9,9 +9,9 @@
 #include "ublas_heev.hpp"
 
 #include <boost/numeric/bindings/lapack/driver/heev.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/ublas_vector.hpp>
-#include <boost/numeric/bindings/traits/ublas_hermitian.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/ublas/vector.hpp>
+#include <boost/numeric/bindings/ublas/hermitian.hpp>
 #include <boost/numeric/ublas/matrix_proxy.hpp>
 #include <boost/numeric/ublas/vector_proxy.hpp>
 #include <boost/numeric/ublas/io.hpp>
@@ -25,7 +25,7 @@
 
 template <typename T, typename W, typename UPLO>
 int do_memory_uplo(int n, W& workspace ) {
- typedef typename boost::numeric::bindings::traits::type_traits<T>::real_type real_type ;
+ typedef typename bindings::remove_imaginary<T>::type real_type ;
 
    typedef ublas::matrix<T, ublas::column_major> matrix_type ;
    typedef ublas::hermitian_adaptor<matrix_type, UPLO> hermitian_type ;

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_heev.hpp
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_heev.hpp (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_heev.hpp 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -14,7 +14,7 @@
 
 #include <boost/numeric/bindings/ublas/matrix.hpp>
 #include <boost/numeric/bindings/ublas/vector.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
 #include <boost/numeric/ublas/matrix_proxy.hpp>
 
 #include <limits>

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_heevd.cpp
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_heevd.cpp (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_heevd.cpp 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -11,9 +11,9 @@
 
 #include <boost/numeric/bindings/lapack/driver/heevd.hpp>
 #include <boost/numeric/bindings/lapack/driver/syevd.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/ublas_hermitian.hpp>
-#include <boost/numeric/bindings/traits/ublas_vector.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/ublas/hermitian.hpp>
+#include <boost/numeric/bindings/ublas/vector.hpp>
 #include <boost/numeric/ublas/matrix_proxy.hpp>
 #include <boost/numeric/ublas/vector_proxy.hpp>
 #include <boost/numeric/ublas/io.hpp>
@@ -46,7 +46,7 @@
 template <typename T, typename W, typename UPLO>
 int do_memory_uplo(int n, W& workspace ) {
    typedef typename boost::mpl::if_<boost::is_complex<T>, apply_complex, apply_real>::type apply_t;
- typedef typename boost::numeric::bindings::traits::type_traits<T>::real_type real_type ;
+ typedef typename bindings::remove_imaginary<T>::type real_type ;
 
    typedef ublas::matrix<T, ublas::column_major> matrix_type ;
    typedef ublas::hermitian_adaptor<matrix_type, UPLO> hermitian_type ;

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_heevx.cpp
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_heevx.cpp (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_heevx.cpp 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -11,9 +11,9 @@
 
 #include <boost/numeric/bindings/lapack/driver/heevx.hpp>
 #include <boost/numeric/bindings/lapack/driver/syevx.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/ublas_vector.hpp>
-#include <boost/numeric/bindings/traits/ublas_hermitian.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/ublas/vector.hpp>
+#include <boost/numeric/bindings/ublas/hermitian.hpp>
 #include <boost/numeric/ublas/matrix_proxy.hpp>
 #include <boost/numeric/ublas/vector_proxy.hpp>
 #include <boost/numeric/ublas/io.hpp>
@@ -65,7 +65,7 @@
 template <typename T, typename W, typename UPLO>
 int do_memory_uplo(int n, W& workspace ) {
    typedef typename boost::mpl::if_<boost::is_complex<T>, apply_complex, apply_real>::type apply_t;
- typedef typename boost::numeric::bindings::traits::type_traits<T>::real_type real_type ;
+ typedef typename bindings::remove_imaginary<T>::type real_type ;
 
    typedef ublas::matrix<T, ublas::column_major> matrix_type ;
    typedef ublas::vector<real_type> vector_type ;

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_hegv.cpp
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_hegv.cpp (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_hegv.cpp 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -10,9 +10,9 @@
 
 #include <boost/numeric/bindings/lapack/driver/hegv.hpp>
 #include <boost/numeric/bindings/lapack/driver/sygv.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/ublas_hermitian.hpp>
-#include <boost/numeric/bindings/traits/ublas_vector.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/ublas/hermitian.hpp>
+#include <boost/numeric/bindings/ublas/vector.hpp>
 #include <boost/numeric/ublas/matrix_proxy.hpp>
 #include <boost/numeric/ublas/vector_proxy.hpp>
 #include <boost/numeric/ublas/io.hpp>
@@ -50,7 +50,7 @@
 template <typename T, typename W, typename UPLO>
 int do_memory_uplo(int n, W& workspace ) {
    typedef typename boost::mpl::if_<boost::is_complex<T>, apply_complex, apply_real>::type apply_t;
- typedef typename boost::numeric::bindings::traits::type_traits<T>::real_type real_type ;
+ typedef typename bindings::remove_imaginary<T>::type real_type ;
 
    typedef ublas::matrix<T, ublas::column_major> matrix_type ;
    typedef ublas::hermitian_adaptor<matrix_type, UPLO> hermitian_type ;
@@ -69,12 +69,12 @@
 
    // Compute eigen decomposition.
    hermitian_type h_a( a );
- apply_t::hegv( 1, 'V', traits::matrix_size2( h_a ), h_a, b, e1, workspace ) ;
+ apply_t::hegv( 1, 'V', bindings::size_column( h_a ), h_a, b, e1, workspace ) ;
 
    if (check_residual( a2, e1, a )) return 255 ;
 
    hermitian_type h_a2( a2 );
- apply_t::hegv( 1, 'N', traits::matrix_size2( h_a2 ), h_a2 , b, e2, workspace ) ;
+ apply_t::hegv( 1, 'N', bindings::size_column( h_a2 ), h_a2 , b, e2, workspace ) ;
    if (norm_2( e1 - e2 ) > n * norm_2( e1 ) * std::numeric_limits< real_type >::epsilon()) return 255 ;
 
    // Test for a matrix range
@@ -89,7 +89,7 @@
    matrix_range b_r( b, r, r );
 
    hermitian_range_type h_a_r( a_r );
- apply_t::hegv(1, 'V', traits::matrix_size2( h_a_r ), h_a_r, b_r, e_r, workspace );
+ apply_t::hegv(1, 'V', bindings::size_column( h_a_r ), h_a_r, b_r, e_r, workspace );
 
    matrix_range a2_r( a2, r, r );
    if (check_residual( a2_r, e_r, a_r )) return 255 ;

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_hesv.cc
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_hesv.cc (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_hesv.cc 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -10,9 +10,9 @@
 #include <complex>
 #include <boost/numeric/bindings/lapack/driver/hesv.hpp>
 #include <boost/numeric/ublas/matrix_proxy.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/ublas_hermitian.hpp>
-#include <boost/numeric/bindings/traits/std_vector.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/ublas/hermitian.hpp>
+#include <boost/numeric/bindings/std/vector.hpp>
 #include "utils.h"
 
 namespace ublas = boost::numeric::ublas;

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_hetrf_hetrs.cc
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_hetrf_hetrs.cc (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_hetrf_hetrs.cc 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -10,9 +10,9 @@
 #include <complex>
 #include <boost/numeric/bindings/lapack/computational/hetrf.hpp>
 #include <boost/numeric/bindings/lapack/computational/hetrs.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/ublas_hermitian.hpp>
-#include <boost/numeric/bindings/traits/std_vector.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/ublas/hermitian.hpp>
+#include <boost/numeric/bindings/std/vector.hpp>
 #include <boost/numeric/ublas/matrix_proxy.hpp>
 #include "utils.h"
 

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_hpsv.cc
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_hpsv.cc (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_hpsv.cc 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -7,9 +7,9 @@
 #include <iostream>
 #include <complex>
 #include <boost/numeric/bindings/lapack/driver/hpsv.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/ublas_hermitian.hpp>
-#include <boost/numeric/bindings/traits/std_vector.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/ublas/hermitian.hpp>
+#include <boost/numeric/bindings/std/vector.hpp>
 #include "utils.h"
 
 namespace ublas = boost::numeric::ublas;

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_hptrf_hptrs.cc
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_hptrf_hptrs.cc (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_hptrf_hptrs.cc 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -8,9 +8,9 @@
 #include <complex>
 #include <boost/numeric/bindings/lapack/computational/hptrf.hpp>
 #include <boost/numeric/bindings/lapack/computational/hptrs.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/ublas_hermitian.hpp>
-#include <boost/numeric/bindings/traits/std_vector.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/ublas/hermitian.hpp>
+#include <boost/numeric/bindings/std/vector.hpp>
 #include "utils.h"
 
 namespace ublas = boost::numeric::ublas;

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_posv.cc
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_posv.cc (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_posv.cc 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -7,9 +7,10 @@
 #include <iostream>
 #include <complex>
 #include <boost/numeric/bindings/lapack/driver/posv.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/ublas_symmetric.hpp>
-#include <boost/numeric/bindings/traits/ublas_hermitian.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/ublas/symmetric.hpp>
+#include <boost/numeric/bindings/ublas/hermitian.hpp>
+#include <boost/numeric/bindings/ublas/matrix_expression.hpp>
 #include <boost/numeric/ublas/matrix_proxy.hpp>
 #include "utils.h"
 

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_potrf_potrs.cc
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_potrf_potrs.cc (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_potrf_potrs.cc 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -8,9 +8,9 @@
 #include <complex>
 #include <boost/numeric/bindings/lapack/computational/potrf.hpp>
 #include <boost/numeric/bindings/lapack/computational/potrs.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/ublas_symmetric.hpp>
-#include <boost/numeric/bindings/traits/ublas_hermitian.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/ublas/symmetric.hpp>
+#include <boost/numeric/bindings/ublas/hermitian.hpp>
 #include "utils.h"
 
 namespace ublas = boost::numeric::ublas;

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_ppsv.cc
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_ppsv.cc (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_ppsv.cc 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -7,9 +7,9 @@
 #include <iostream>
 #include <complex>
 #include <boost/numeric/bindings/lapack/driver/ppsv.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/ublas_symmetric.hpp>
-#include <boost/numeric/bindings/traits/ublas_hermitian.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/ublas/symmetric.hpp>
+#include <boost/numeric/bindings/ublas/hermitian.hpp>
 #include "utils.h"
 
 namespace ublas = boost::numeric::ublas;

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_pptrf_pptrs.cc
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_pptrf_pptrs.cc (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_pptrf_pptrs.cc 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -9,9 +9,9 @@
 #include <boost/numeric/bindings/lapack/computational/pptrf.hpp>
 #include <boost/numeric/bindings/lapack/computational/pptri.hpp>
 #include <boost/numeric/bindings/lapack/computational/pptrs.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/ublas_symmetric.hpp>
-#include <boost/numeric/bindings/traits/ublas_hermitian.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/ublas/symmetric.hpp>
+#include <boost/numeric/bindings/ublas/hermitian.hpp>
 #include "utils.h"
 
 namespace ublas = boost::numeric::ublas;

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_ptsv.cpp
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_ptsv.cpp (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_ptsv.cpp 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -9,8 +9,8 @@
 #include "../../blas/test/random.hpp"
 
 #include <boost/numeric/bindings/lapack/ptsv.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/ublas_vector.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/ublas/vector.hpp>
 #include <boost/numeric/ublas/operation.hpp>
 #include <boost/numeric/ublas/matrix_proxy.hpp>
 #include <boost/numeric/ublas/vector_proxy.hpp>
@@ -40,7 +40,7 @@
 template <typename T>
 int do_value_type() {
    const int n = 8 ;
- typedef typename boost::numeric::bindings::traits::type_traits<T>::real_type real_type ;
+ typedef typename bindings::remove_imaginary<T>::type real_type ;
 
    typedef ublas::matrix<T, ublas::column_major> matrix_type ;
 

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_spsv.cc
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_spsv.cc (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_spsv.cc 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -7,9 +7,9 @@
 #include <iostream>
 #include <complex>
 #include <boost/numeric/bindings/lapack/driver/spsv.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/ublas_symmetric.hpp>
-#include <boost/numeric/bindings/traits/std_vector.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/ublas/symmetric.hpp>
+#include <boost/numeric/bindings/std/vector.hpp>
 #include "utils.h"
 
 namespace ublas = boost::numeric::ublas;

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_sptrf_sptrs.cc
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_sptrf_sptrs.cc (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_sptrf_sptrs.cc 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -9,9 +9,9 @@
 #include <boost/numeric/bindings/lapack/computational/sptrf.hpp>
 #include <boost/numeric/bindings/lapack/computational/sptri.hpp>
 #include <boost/numeric/bindings/lapack/computational/sptrs.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/ublas_symmetric.hpp>
-#include <boost/numeric/bindings/traits/std_vector.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/ublas/symmetric.hpp>
+#include <boost/numeric/bindings/std/vector.hpp>
 #include "utils.h"
 
 namespace ublas = boost::numeric::ublas;

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_steqr.cpp
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_steqr.cpp (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_steqr.cpp 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -9,8 +9,8 @@
 #include "../../blas/test/random.hpp"
 
 #include <boost/numeric/bindings/lapack/steqr.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/ublas_vector.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/ublas/vector.hpp>
 #include <boost/numeric/ublas/io.hpp>
 #include <algorithm>
 #include <limits>
@@ -25,7 +25,7 @@
 int do_value_type() {
    const int n = 10 ;
 
- typedef typename boost::numeric::bindings::traits::type_traits<T>::real_type real_type ;
+ typedef typename bindings::remove_imaginary<T>::type real_type ;
    typedef std::complex< real_type > complex_type ;
 
    typedef ublas::matrix<T, ublas::column_major> matrix_type ;

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_syev.cpp
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_syev.cpp (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_syev.cpp 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -9,9 +9,9 @@
 #include "ublas_heev.hpp"
 
 #include <boost/numeric/bindings/lapack/driver/syev.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/ublas_symmetric.hpp>
-#include <boost/numeric/bindings/traits/ublas_vector.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/ublas/symmetric.hpp>
+#include <boost/numeric/bindings/ublas/vector.hpp>
 #include <boost/numeric/ublas/matrix_proxy.hpp>
 #include <boost/numeric/ublas/vector_proxy.hpp>
 #include <boost/numeric/ublas/io.hpp>
@@ -38,7 +38,7 @@
 
 template <typename T, typename W, typename UPLO>
 int do_memory_uplo(int n, W& workspace ) {
- typedef typename boost::numeric::bindings::traits::type_traits<T>::real_type real_type ;
+ typedef typename bindings::remove_imaginary<T>::type real_type ;
 
    typedef ublas::matrix<T, ublas::column_major> matrix_type ;
    typedef ublas::symmetric_adaptor<matrix_type, UPLO> symmetric_type ;

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_sysv.cc
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_sysv.cc (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_sysv.cc 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -9,9 +9,9 @@
 #include <iostream>
 #include <complex>
 #include <boost/numeric/bindings/lapack/driver/sysv.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/ublas_symmetric.hpp>
-#include <boost/numeric/bindings/traits/std_vector.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/ublas/symmetric.hpp>
+#include <boost/numeric/bindings/std/vector.hpp>
 #include <boost/numeric/ublas/matrix_proxy.hpp>
 #include "utils.h"
 

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_sytrd.cpp
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_sytrd.cpp (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_sytrd.cpp 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -10,8 +10,8 @@
 #include "../../blas/test/random.hpp"
 
 #include <boost/numeric/bindings/lapack/sytrd.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/ublas_vector.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/ublas/vector.hpp>
 #include <boost/numeric/ublas/io.hpp>
 #include <algorithm>
 #include <limits>
@@ -26,7 +26,7 @@
 int do_value_type() {
    const int n = 10 ;
 
- typedef typename boost::numeric::bindings::traits::type_traits<T>::real_type real_type ;
+ typedef typename bindings::remove_imaginary<T>::type real_type ;
    typedef std::complex< real_type > complex_type ;
 
    typedef ublas::matrix<T, ublas::column_major> matrix_type ;

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_sytrf_sytrs.cc
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_sytrf_sytrs.cc (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_sytrf_sytrs.cc 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -9,9 +9,9 @@
 #include <boost/numeric/bindings/lapack/computational/sytrf.hpp>
 #include <boost/numeric/bindings/lapack/computational/sytri.hpp>
 #include <boost/numeric/bindings/lapack/computational/sytrs.hpp>
-#include <boost/numeric/bindings/traits/ublas_matrix.hpp>
-#include <boost/numeric/bindings/traits/ublas_symmetric.hpp>
-#include <boost/numeric/bindings/traits/std_vector.hpp>
+#include <boost/numeric/bindings/ublas/matrix.hpp>
+#include <boost/numeric/bindings/ublas/symmetric.hpp>
+#include <boost/numeric/bindings/std/vector.hpp>
 #include <boost/numeric/ublas/matrix_proxy.hpp>
 #include "utils.h"
 

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/utils.h
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/utils.h (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/utils.h 2010-01-05 12:02:48 EST (Tue, 05 Jan 2010)
@@ -4,7 +4,9 @@
 
 #include <stddef.h>
 #include <iostream>
-#include <boost/numeric/bindings/traits/traits.hpp>
+#include <boost/numeric/bindings/size.hpp>
+#include <boost/numeric/bindings/begin.hpp>
+#include <boost/numeric/bindings/value.hpp>
 
 
 ///////////////////////////////
@@ -14,7 +16,7 @@
 template <typename V>
 struct vct_access_traits {
   typedef typename
- boost::numeric::bindings::traits::vector_traits<V>::value_type val_t;
+ boost::numeric::bindings::value<V>::type val_t;
   typedef val_t& ref_t;
   static ref_t elem (V& v, size_t i) { return v[i]; }
 };
@@ -22,7 +24,7 @@
 template <typename V>
 struct vct_access_traits<V const> {
   typedef typename
- boost::numeric::bindings::traits::vector_traits<V>::value_type val_t;
+ boost::numeric::bindings::value<V>::type val_t;
   typedef val_t ref_t;
   static ref_t elem (V const& v, size_t i) { return v[i]; }
 };
@@ -76,7 +78,7 @@
 template <typename F, typename V>
 void init_v (V& v, F f = F()) {
   size_t sz
- = boost::numeric::bindings::traits::vector_traits<V>::size (v);
+ = boost::numeric::bindings::size( v );
   for (std::size_t i = 0; i < sz; ++i)
     elem_v (v, i) = f (i);
 }
@@ -87,7 +89,7 @@
   if (ch)
     std::cout << ch << ": ";
   size_t sz
- = boost::numeric::bindings::traits::vector_traits<V const>::size (v);
+ = boost::numeric::bindings::size( v );
   for (std::size_t i = 0; i < sz; ++i)
     std::cout << elem_v (v, i) << " ";
   std::cout << std::endl;
@@ -110,7 +112,7 @@
 template <typename M>
 struct matr_access_traits<M const> {
   typedef typename
- boost::numeric::bindings::traits::matrix_traits<M>::value_type val_t;
+ boost::numeric::bindings::value<M>::type val_t;
   typedef val_t ref_t;
   static ref_t elem (M const& m, size_t i, size_t j) { return m (i, j); }
 };
@@ -138,9 +140,9 @@
 template <typename F, typename M>
 void init_m (M& m, F f = F()) {
   size_t sz1
- = boost::numeric::bindings::traits::matrix_traits<M>::num_rows (m);
+ = boost::numeric::bindings::size_row( m );
   size_t sz2
- = boost::numeric::bindings::traits::matrix_traits<M>::num_columns (m);
+ = boost::numeric::bindings::size_column( m );
   for (std::size_t i = 0; i < sz1; ++i)
     for (std::size_t j = 0; j < sz2; ++j)
       elem_m (m, i, j) = f (i, j);
@@ -149,7 +151,7 @@
 template <typename M>
 void init_symm (M& m, char uplo = 'f') {
   size_t n
- = boost::numeric::bindings::traits::matrix_traits<M>::num_rows (m);
+ = boost::numeric::bindings::size_row( m );
   for (size_t i = 0; i < n; ++i) {
     elem_m (m, i, i) = n;
     for (size_t j = i + 1; j < n; ++j) {
@@ -169,9 +171,9 @@
   if (ch)
     std::cout << ch << ":\n";
   size_t sz1
- = boost::numeric::bindings::traits::matrix_traits<M const>::num_rows (m);
+ = boost::numeric::bindings::size_row( m );
   size_t sz2
- = boost::numeric::bindings::traits::matrix_traits<M const>::num_columns (m);
+ = boost::numeric::bindings::size_column( m );
   for (std::size_t i = 0 ; i < sz1 ; ++i) {
     for (std::size_t j = 0 ; j < sz2 ; ++j)
       std::cout << elem_m (m, i, j) << " ";
@@ -184,14 +186,11 @@
 void print_m_data (M const& m, char const* ch = 0) {
   if (ch)
     std::cout << ch << " data:\n";
- size_t sz =
- boost::numeric::bindings::traits::matrix_traits<M const>::num_rows(m)*
- boost::numeric::bindings::traits::matrix_traits<M const>::num_columns(m);
- typename
- boost::numeric::bindings::traits::matrix_traits<M const>::pointer st =
- boost::numeric::bindings::traits::matrix_traits<M const>::storage (m);
- for (std::size_t i = 0 ; i < sz ; ++i, ++st)
+ using namespace boost::numeric::bindings;
+ for( typename result_of::begin_value< const M >::type st = begin_value( m );
+ st != end_value( m ); ++st ) {
       std::cout << *st << " ";
+ }
   std::cout << std::endl;
 }
 


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk