Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r51384 - in sandbox/numeric_bindings: boost/numeric/bindings/blas/level2 boost/numeric/bindings/blas/level3 boost/numeric/bindings/lapack/computational libs/numeric/bindings/tools libs/numeric/bindings/tools/templates/level2 libs/numeric/bindings/tools/templates/level3
From: rutger_at_[hidden]
Date: 2009-02-22 04:52:16


Author: rutger
Date: 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
New Revision: 51384
URL: http://svn.boost.org/trac/boost/changeset/51384

Log:
Improved UPLO traits detection, character assert detection needs to be done next

Added:
   sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/level2/tbmv.hpp (contents, props changed)
   sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/level2/tbsv.hpp (contents, props changed)
   sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/level2/trmv.hpp (contents, props changed)
   sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/level2/trsv.hpp (contents, props changed)
   sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/level3/
   sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/level3/trmm.hpp (contents, props changed)
   sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/level3/trsm.hpp (contents, props changed)
Text files modified:
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hbmv.hpp | 18 +++++++++---------
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hemv.hpp | 20 ++++++++++----------
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/her.hpp | 17 +++++++++--------
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/her2.hpp | 20 ++++++++++----------
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hpmv.hpp | 19 +++++++++----------
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hpr.hpp | 16 ++++++++--------
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hpr2.hpp | 19 +++++++++----------
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/sbmv.hpp | 18 +++++++++---------
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/spmv.hpp | 18 +++++++++---------
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/spr.hpp | 16 ++++++++--------
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/spr2.hpp | 18 +++++++++---------
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/symv.hpp | 19 ++++++++++---------
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/syr.hpp | 17 +++++++++--------
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/syr2.hpp | 19 ++++++++++---------
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/tbmv.hpp | 17 +++++++++--------
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/tbsv.hpp | 17 +++++++++--------
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/tpmv.hpp | 16 ++++++++--------
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/tpsv.hpp | 16 ++++++++--------
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/trmv.hpp | 17 +++++++++--------
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/trsv.hpp | 17 +++++++++--------
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/hemm.hpp | 19 +++++++++----------
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/her2k.hpp | 23 +++++++++++------------
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/herk.hpp | 19 +++++++++----------
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/symm.hpp | 19 +++++++++----------
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/syr2k.hpp | 24 ++++++++++++------------
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/syrk.hpp | 18 +++++++++---------
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/trmm.hpp | 23 +++++++++++------------
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/trsm.hpp | 23 +++++++++++------------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/latrd.hpp | 28 +++++++++++++++-------------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbequ.hpp | 21 ++++++++++-----------
   sandbox/numeric_bindings/libs/numeric/bindings/tools/netlib.py | 28 ++++++++++++++++++----------
   31 files changed, 304 insertions(+), 295 deletions(-)

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hbmv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hbmv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hbmv.hpp 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -57,23 +57,23 @@
 
     // templated specialization
     template< typename MatrixA, typename VectorX, typename VectorY >
- static return_type compute( char const uplo, integer_t const k,
+ static return_type compute( integer_t const k,
             traits::complex_d const alpha, MatrixA& a, VectorX& x,
             traits::complex_d const beta, VectorY& y ) {
- detail::hbmv( uplo, traits::matrix_size2(a), k, alpha,
- traits::matrix_storage(a), traits::leading_dimension(a),
- traits::vector_storage(x), traits::vector_stride(x), beta,
- traits::vector_storage(y), traits::vector_stride(y) );
+ detail::hbmv( traits::matrix_uplo_tag(a),
+ traits::matrix_size2(a), k, alpha, traits::matrix_storage(a),
+ traits::leading_dimension(a), traits::vector_storage(x),
+ traits::vector_stride(x), beta, traits::vector_storage(y),
+ traits::vector_stride(y) );
     }
 };
 
 // template function to call hbmv
 template< typename MatrixA, typename VectorX, typename VectorY >
-inline integer_t hbmv( char const uplo, integer_t const k,
- traits::complex_d const alpha, MatrixA& a, VectorX& x,
- traits::complex_d const beta, VectorY& y ) {
+inline integer_t hbmv( integer_t const k, traits::complex_d const alpha,
+ MatrixA& a, VectorX& x, traits::complex_d const beta, VectorY& y ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
- hbmv_impl< value_type >::compute( uplo, k, alpha, a, x, beta, y );
+ hbmv_impl< value_type >::compute( k, alpha, a, x, beta, y );
 }
 
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hemv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hemv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hemv.hpp 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -57,22 +57,22 @@
 
     // templated specialization
     template< typename MatrixA, typename VectorX, typename VectorY >
- static return_type compute( char const uplo,
- traits::complex_d const alpha, MatrixA& a, VectorX& x,
- traits::complex_d const beta, VectorY& y ) {
- detail::hemv( uplo, traits::matrix_size2(a), alpha,
- traits::matrix_storage(a), traits::leading_dimension(a),
- traits::vector_storage(x), traits::vector_stride(x), beta,
- traits::vector_storage(y), traits::vector_stride(y) );
+ static return_type compute( traits::complex_d const alpha, MatrixA& a,
+ VectorX& x, traits::complex_d const beta, VectorY& y ) {
+ detail::hemv( traits::matrix_uplo_tag(a),
+ traits::matrix_size2(a), alpha, traits::matrix_storage(a),
+ traits::leading_dimension(a), traits::vector_storage(x),
+ traits::vector_stride(x), beta, traits::vector_storage(y),
+ traits::vector_stride(y) );
     }
 };
 
 // template function to call hemv
 template< typename MatrixA, typename VectorX, typename VectorY >
-inline integer_t hemv( char const uplo, traits::complex_d const alpha,
- MatrixA& a, VectorX& x, traits::complex_d const beta, VectorY& y ) {
+inline integer_t hemv( traits::complex_d const alpha, MatrixA& a,
+ VectorX& x, traits::complex_d const beta, VectorY& y ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
- hemv_impl< value_type >::compute( uplo, alpha, a, x, beta, y );
+ hemv_impl< value_type >::compute( alpha, a, x, beta, y );
 }
 
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/her.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/her.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/her.hpp 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -51,21 +51,22 @@
 
     // templated specialization
     template< typename VectorX, typename MatrixA >
- static return_type compute( char const uplo, real_type const alpha,
- VectorX& x, MatrixA& a ) {
- detail::her( uplo, traits::matrix_size2(a), alpha,
- traits::vector_storage(x), traits::vector_stride(x),
- traits::matrix_storage(a), traits::leading_dimension(a) );
+ static return_type compute( real_type const alpha, VectorX& x,
+ MatrixA& a ) {
+ detail::her( traits::matrix_uplo_tag(a),
+ traits::matrix_size2(a), alpha, traits::vector_storage(x),
+ traits::vector_stride(x), traits::matrix_storage(a),
+ traits::leading_dimension(a) );
     }
 };
 
 // template function to call her
 template< typename VectorX, typename MatrixA >
-inline integer_t her( char const uplo,
- typename traits::vector_traits< VectorX >::value_type const alpha,
+
+ inline integer_t her( typename traits::vector_traits< VectorX >::value_type const alpha,
         VectorX& x, MatrixA& a ) {
     typedef typename traits::vector_traits< VectorX >::value_type value_type;
- her_impl< value_type >::compute( uplo, alpha, x, a );
+ her_impl< value_type >::compute( alpha, x, a );
 }
 
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/her2.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/her2.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/her2.hpp 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -55,22 +55,22 @@
 
     // templated specialization
     template< typename VectorX, typename VectorY, typename MatrixA >
- static return_type compute( char const uplo,
- traits::complex_d const alpha, VectorX& x, VectorY& y,
- MatrixA& a ) {
- detail::her2( uplo, traits::matrix_size2(a), alpha,
- traits::vector_storage(x), traits::vector_stride(x),
- traits::vector_storage(y), traits::vector_stride(y),
- traits::matrix_storage(a), traits::leading_dimension(a) );
+ static return_type compute( traits::complex_d const alpha, VectorX& x,
+ VectorY& y, MatrixA& a ) {
+ detail::her2( traits::matrix_uplo_tag(a),
+ traits::matrix_size2(a), alpha, traits::vector_storage(x),
+ traits::vector_stride(x), traits::vector_storage(y),
+ traits::vector_stride(y), traits::matrix_storage(a),
+ traits::leading_dimension(a) );
     }
 };
 
 // template function to call her2
 template< typename VectorX, typename VectorY, typename MatrixA >
-inline integer_t her2( char const uplo, traits::complex_d const alpha,
- VectorX& x, VectorY& y, MatrixA& a ) {
+inline integer_t her2( traits::complex_d const alpha, VectorX& x,
+ VectorY& y, MatrixA& a ) {
     typedef typename traits::vector_traits< VectorX >::value_type value_type;
- her2_impl< value_type >::compute( uplo, alpha, x, y, a );
+ her2_impl< value_type >::compute( alpha, x, y, a );
 }
 
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hpmv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hpmv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hpmv.hpp 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -57,22 +57,21 @@
 
     // templated specialization
     template< typename MatrixAP, typename VectorX, typename VectorY >
- static return_type compute( char const uplo,
- traits::complex_d const alpha, MatrixAP& ap, VectorX& x,
- traits::complex_d const beta, VectorY& y ) {
- detail::hpmv( uplo, traits::matrix_size2(ap), alpha,
- traits::matrix_storage(ap), traits::vector_storage(x),
- traits::vector_stride(x), beta, traits::vector_storage(y),
- traits::vector_stride(y) );
+ static return_type compute( traits::complex_d const alpha, MatrixAP& ap,
+ VectorX& x, traits::complex_d const beta, VectorY& y ) {
+ detail::hpmv( traits::matrix_uplo_tag(ap),
+ traits::matrix_size2(ap), alpha, traits::matrix_storage(ap),
+ traits::vector_storage(x), traits::vector_stride(x), beta,
+ traits::vector_storage(y), traits::vector_stride(y) );
     }
 };
 
 // template function to call hpmv
 template< typename MatrixAP, typename VectorX, typename VectorY >
-inline integer_t hpmv( char const uplo, traits::complex_d const alpha,
- MatrixAP& ap, VectorX& x, traits::complex_d const beta, VectorY& y ) {
+inline integer_t hpmv( traits::complex_d const alpha, MatrixAP& ap,
+ VectorX& x, traits::complex_d const beta, VectorY& y ) {
     typedef typename traits::matrix_traits< MatrixAP >::value_type value_type;
- hpmv_impl< value_type >::compute( uplo, alpha, ap, x, beta, y );
+ hpmv_impl< value_type >::compute( alpha, ap, x, beta, y );
 }
 
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hpr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hpr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hpr.hpp 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -51,21 +51,21 @@
 
     // templated specialization
     template< typename VectorX, typename MatrixAP >
- static return_type compute( char const uplo, real_type const alpha,
- VectorX& x, MatrixAP& ap ) {
- detail::hpr( uplo, traits::matrix_size2(ap), alpha,
- traits::vector_storage(x), traits::vector_stride(x),
- traits::matrix_storage(ap) );
+ static return_type compute( real_type const alpha, VectorX& x,
+ MatrixAP& ap ) {
+ detail::hpr( traits::matrix_uplo_tag(ap),
+ traits::matrix_size2(ap), alpha, traits::vector_storage(x),
+ traits::vector_stride(x), traits::matrix_storage(ap) );
     }
 };
 
 // template function to call hpr
 template< typename VectorX, typename MatrixAP >
-inline integer_t hpr( char const uplo,
- typename traits::vector_traits< VectorX >::value_type const alpha,
+
+ inline integer_t hpr( typename traits::vector_traits< VectorX >::value_type const alpha,
         VectorX& x, MatrixAP& ap ) {
     typedef typename traits::vector_traits< VectorX >::value_type value_type;
- hpr_impl< value_type >::compute( uplo, alpha, x, ap );
+ hpr_impl< value_type >::compute( alpha, x, ap );
 }
 
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hpr2.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hpr2.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hpr2.hpp 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -55,22 +55,21 @@
 
     // templated specialization
     template< typename VectorX, typename VectorY, typename MatrixAP >
- static return_type compute( char const uplo,
- traits::complex_d const alpha, VectorX& x, VectorY& y,
- MatrixAP& ap ) {
- detail::hpr2( uplo, traits::matrix_size2(ap), alpha,
- traits::vector_storage(x), traits::vector_stride(x),
- traits::vector_storage(y), traits::vector_stride(y),
- traits::matrix_storage(ap) );
+ static return_type compute( traits::complex_d const alpha, VectorX& x,
+ VectorY& y, MatrixAP& ap ) {
+ detail::hpr2( traits::matrix_uplo_tag(ap),
+ traits::matrix_size2(ap), alpha, traits::vector_storage(x),
+ traits::vector_stride(x), traits::vector_storage(y),
+ traits::vector_stride(y), traits::matrix_storage(ap) );
     }
 };
 
 // template function to call hpr2
 template< typename VectorX, typename VectorY, typename MatrixAP >
-inline integer_t hpr2( char const uplo, traits::complex_d const alpha,
- VectorX& x, VectorY& y, MatrixAP& ap ) {
+inline integer_t hpr2( traits::complex_d const alpha, VectorX& x,
+ VectorY& y, MatrixAP& ap ) {
     typedef typename traits::vector_traits< VectorX >::value_type value_type;
- hpr2_impl< value_type >::compute( uplo, alpha, x, y, ap );
+ hpr2_impl< value_type >::compute( alpha, x, y, ap );
 }
 
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/sbmv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/sbmv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/sbmv.hpp 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -53,25 +53,25 @@
 
     // templated specialization
     template< typename MatrixA, typename VectorX, typename VectorY >
- static return_type compute( char const uplo, integer_t const k,
- real_type const alpha, MatrixA& a, VectorX& x,
- real_type const beta, VectorY& y ) {
- detail::sbmv( uplo, traits::matrix_size2(a), k, alpha,
- traits::matrix_storage(a), traits::leading_dimension(a),
- traits::vector_storage(x), traits::vector_stride(x), beta,
- traits::vector_storage(y), traits::vector_stride(y) );
+ static return_type compute( integer_t const k, real_type const alpha,
+ MatrixA& a, VectorX& x, real_type const beta, VectorY& y ) {
+ detail::sbmv( traits::matrix_uplo_tag(a),
+ traits::matrix_size2(a), k, alpha, traits::matrix_storage(a),
+ traits::leading_dimension(a), traits::vector_storage(x),
+ traits::vector_stride(x), beta, traits::vector_storage(y),
+ traits::vector_stride(y) );
     }
 };
 
 // template function to call sbmv
 template< typename MatrixA, typename VectorX, typename VectorY >
-inline integer_t sbmv( char const uplo, integer_t const k,
+inline integer_t sbmv( integer_t const k,
         typename traits::matrix_traits< MatrixA >::value_type const alpha,
         MatrixA& a, VectorX& x,
         typename traits::matrix_traits< MatrixA >::value_type const beta,
         VectorY& y ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
- sbmv_impl< value_type >::compute( uplo, k, alpha, a, x, beta, y );
+ sbmv_impl< value_type >::compute( k, alpha, a, x, beta, y );
 }
 
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/spmv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/spmv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/spmv.hpp 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -49,24 +49,24 @@
 
     // templated specialization
     template< typename MatrixAP, typename VectorX, typename VectorY >
- static return_type compute( char const uplo, real_type const alpha,
- MatrixAP& ap, VectorX& x, real_type const beta, VectorY& y ) {
- detail::spmv( uplo, traits::matrix_size2(ap), alpha,
- traits::matrix_storage(ap), traits::vector_storage(x),
- traits::vector_stride(x), beta, traits::vector_storage(y),
- traits::vector_stride(y) );
+ static return_type compute( real_type const alpha, MatrixAP& ap,
+ VectorX& x, real_type const beta, VectorY& y ) {
+ detail::spmv( traits::matrix_uplo_tag(ap),
+ traits::matrix_size2(ap), alpha, traits::matrix_storage(ap),
+ traits::vector_storage(x), traits::vector_stride(x), beta,
+ traits::vector_storage(y), traits::vector_stride(y) );
     }
 };
 
 // template function to call spmv
 template< typename MatrixAP, typename VectorX, typename VectorY >
-inline integer_t spmv( char const uplo,
- typename traits::matrix_traits< MatrixAP >::value_type const alpha,
+
+ inline integer_t spmv( typename traits::matrix_traits< MatrixAP >::value_type const alpha,
         MatrixAP& ap, VectorX& x,
         typename traits::matrix_traits< MatrixAP >::value_type const beta,
         VectorY& y ) {
     typedef typename traits::matrix_traits< MatrixAP >::value_type value_type;
- spmv_impl< value_type >::compute( uplo, alpha, ap, x, beta, y );
+ spmv_impl< value_type >::compute( alpha, ap, x, beta, y );
 }
 
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/spr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/spr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/spr.hpp 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -47,21 +47,21 @@
 
     // templated specialization
     template< typename VectorX, typename MatrixAP >
- static return_type compute( char const uplo, real_type const alpha,
- VectorX& x, MatrixAP& ap ) {
- detail::spr( uplo, traits::matrix_size2(ap), alpha,
- traits::vector_storage(x), traits::vector_stride(x),
- traits::matrix_storage(ap) );
+ static return_type compute( real_type const alpha, VectorX& x,
+ MatrixAP& ap ) {
+ detail::spr( traits::matrix_uplo_tag(ap),
+ traits::matrix_size2(ap), alpha, traits::vector_storage(x),
+ traits::vector_stride(x), traits::matrix_storage(ap) );
     }
 };
 
 // template function to call spr
 template< typename VectorX, typename MatrixAP >
-inline integer_t spr( char const uplo,
- typename traits::vector_traits< VectorX >::value_type const alpha,
+
+ inline integer_t spr( typename traits::vector_traits< VectorX >::value_type const alpha,
         VectorX& x, MatrixAP& ap ) {
     typedef typename traits::vector_traits< VectorX >::value_type value_type;
- spr_impl< value_type >::compute( uplo, alpha, x, ap );
+ spr_impl< value_type >::compute( alpha, x, ap );
 }
 
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/spr2.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/spr2.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/spr2.hpp 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -49,22 +49,22 @@
 
     // templated specialization
     template< typename VectorX, typename VectorY, typename MatrixAP >
- static return_type compute( char const uplo, real_type const alpha,
- VectorX& x, VectorY& y, MatrixAP& ap ) {
- detail::spr2( uplo, traits::matrix_size2(ap), alpha,
- traits::vector_storage(x), traits::vector_stride(x),
- traits::vector_storage(y), traits::vector_stride(y),
- traits::matrix_storage(ap) );
+ static return_type compute( real_type const alpha, VectorX& x, VectorY& y,
+ MatrixAP& ap ) {
+ detail::spr2( traits::matrix_uplo_tag(ap),
+ traits::matrix_size2(ap), alpha, traits::vector_storage(x),
+ traits::vector_stride(x), traits::vector_storage(y),
+ traits::vector_stride(y), traits::matrix_storage(ap) );
     }
 };
 
 // template function to call spr2
 template< typename VectorX, typename VectorY, typename MatrixAP >
-inline integer_t spr2( char const uplo,
- typename traits::vector_traits< VectorX >::value_type const alpha,
+
+ inline integer_t spr2( typename traits::vector_traits< VectorX >::value_type const alpha,
         VectorX& x, VectorY& y, MatrixAP& ap ) {
     typedef typename traits::vector_traits< VectorX >::value_type value_type;
- spr2_impl< value_type >::compute( uplo, alpha, x, y, ap );
+ spr2_impl< value_type >::compute( alpha, x, y, ap );
 }
 
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/symv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/symv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/symv.hpp 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -49,24 +49,25 @@
 
     // templated specialization
     template< typename MatrixA, typename VectorX, typename VectorY >
- static return_type compute( char const uplo, real_type const alpha,
- MatrixA& a, VectorX& x, real_type const beta, VectorY& y ) {
- detail::symv( uplo, traits::matrix_size2(a), alpha,
- traits::matrix_storage(a), traits::leading_dimension(a),
- traits::vector_storage(x), traits::vector_stride(x), beta,
- traits::vector_storage(y), traits::vector_stride(y) );
+ static return_type compute( real_type const alpha, MatrixA& a, VectorX& x,
+ real_type const beta, VectorY& y ) {
+ detail::symv( traits::matrix_uplo_tag(a),
+ traits::matrix_size2(a), alpha, traits::matrix_storage(a),
+ traits::leading_dimension(a), traits::vector_storage(x),
+ traits::vector_stride(x), beta, traits::vector_storage(y),
+ traits::vector_stride(y) );
     }
 };
 
 // template function to call symv
 template< typename MatrixA, typename VectorX, typename VectorY >
-inline integer_t symv( char const uplo,
- typename traits::matrix_traits< MatrixA >::value_type const alpha,
+
+ inline integer_t symv( typename traits::matrix_traits< MatrixA >::value_type const alpha,
         MatrixA& a, VectorX& x,
         typename traits::matrix_traits< MatrixA >::value_type const beta,
         VectorY& y ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
- symv_impl< value_type >::compute( uplo, alpha, a, x, beta, y );
+ symv_impl< value_type >::compute( alpha, a, x, beta, y );
 }
 
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/syr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/syr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/syr.hpp 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -47,21 +47,22 @@
 
     // templated specialization
     template< typename VectorX, typename MatrixA >
- static return_type compute( char const uplo, real_type const alpha,
- VectorX& x, MatrixA& a ) {
- detail::syr( uplo, traits::matrix_size2(a), alpha,
- traits::vector_storage(x), traits::vector_stride(x),
- traits::matrix_storage(a), traits::leading_dimension(a) );
+ static return_type compute( real_type const alpha, VectorX& x,
+ MatrixA& a ) {
+ detail::syr( traits::matrix_uplo_tag(a),
+ traits::matrix_size2(a), alpha, traits::vector_storage(x),
+ traits::vector_stride(x), traits::matrix_storage(a),
+ traits::leading_dimension(a) );
     }
 };
 
 // template function to call syr
 template< typename VectorX, typename MatrixA >
-inline integer_t syr( char const uplo,
- typename traits::vector_traits< VectorX >::value_type const alpha,
+
+ inline integer_t syr( typename traits::vector_traits< VectorX >::value_type const alpha,
         VectorX& x, MatrixA& a ) {
     typedef typename traits::vector_traits< VectorX >::value_type value_type;
- syr_impl< value_type >::compute( uplo, alpha, x, a );
+ syr_impl< value_type >::compute( alpha, x, a );
 }
 
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/syr2.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/syr2.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/syr2.hpp 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -49,22 +49,23 @@
 
     // templated specialization
     template< typename VectorX, typename VectorY, typename MatrixA >
- static return_type compute( char const uplo, real_type const alpha,
- VectorX& x, VectorY& y, MatrixA& a ) {
- detail::syr2( uplo, traits::matrix_size2(a), alpha,
- traits::vector_storage(x), traits::vector_stride(x),
- traits::vector_storage(y), traits::vector_stride(y),
- traits::matrix_storage(a), traits::leading_dimension(a) );
+ static return_type compute( real_type const alpha, VectorX& x, VectorY& y,
+ MatrixA& a ) {
+ detail::syr2( traits::matrix_uplo_tag(a),
+ traits::matrix_size2(a), alpha, traits::vector_storage(x),
+ traits::vector_stride(x), traits::vector_storage(y),
+ traits::vector_stride(y), traits::matrix_storage(a),
+ traits::leading_dimension(a) );
     }
 };
 
 // template function to call syr2
 template< typename VectorX, typename VectorY, typename MatrixA >
-inline integer_t syr2( char const uplo,
- typename traits::vector_traits< VectorX >::value_type const alpha,
+
+ inline integer_t syr2( typename traits::vector_traits< VectorX >::value_type const alpha,
         VectorX& x, VectorY& y, MatrixA& a ) {
     typedef typename traits::vector_traits< VectorX >::value_type value_type;
- syr2_impl< value_type >::compute( uplo, alpha, x, y, a );
+ syr2_impl< value_type >::compute( alpha, x, y, a );
 }
 
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/tbmv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/tbmv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/tbmv.hpp 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -61,20 +61,21 @@
 
     // templated specialization
     template< typename MatrixA, typename VectorX >
- static return_type compute( char const uplo, char const trans,
- char const diag, integer_t const k, MatrixA& a, VectorX& x ) {
- detail::tbmv( uplo, trans, diag, traits::matrix_size2(a), k,
- traits::matrix_storage(a), traits::leading_dimension(a),
- traits::vector_storage(x), traits::vector_stride(x) );
+ static return_type compute( char const trans, char const diag,
+ integer_t const k, MatrixA& a, VectorX& x ) {
+ detail::tbmv( traits::matrix_uplo_tag(a), trans, diag,
+ traits::matrix_size2(a), k, traits::matrix_storage(a),
+ traits::leading_dimension(a), traits::vector_storage(x),
+ traits::vector_stride(x) );
     }
 };
 
 // template function to call tbmv
 template< typename MatrixA, typename VectorX >
-inline integer_t tbmv( char const uplo, char const trans,
- char const diag, integer_t const k, MatrixA& a, VectorX& x ) {
+inline integer_t tbmv( char const trans, char const diag,
+ integer_t const k, MatrixA& a, VectorX& x ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
- tbmv_impl< value_type >::compute( uplo, trans, diag, k, a, x );
+ tbmv_impl< value_type >::compute( trans, diag, k, a, x );
 }
 
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/tbsv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/tbsv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/tbsv.hpp 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -61,20 +61,21 @@
 
     // templated specialization
     template< typename MatrixA, typename VectorX >
- static return_type compute( char const uplo, char const trans,
- char const diag, integer_t const k, MatrixA& a, VectorX& x ) {
- detail::tbsv( uplo, trans, diag, traits::matrix_size2(a), k,
- traits::matrix_storage(a), traits::leading_dimension(a),
- traits::vector_storage(x), traits::vector_stride(x) );
+ static return_type compute( char const trans, char const diag,
+ integer_t const k, MatrixA& a, VectorX& x ) {
+ detail::tbsv( traits::matrix_uplo_tag(a), trans, diag,
+ traits::matrix_size2(a), k, traits::matrix_storage(a),
+ traits::leading_dimension(a), traits::vector_storage(x),
+ traits::vector_stride(x) );
     }
 };
 
 // template function to call tbsv
 template< typename MatrixA, typename VectorX >
-inline integer_t tbsv( char const uplo, char const trans,
- char const diag, integer_t const k, MatrixA& a, VectorX& x ) {
+inline integer_t tbsv( char const trans, char const diag,
+ integer_t const k, MatrixA& a, VectorX& x ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
- tbsv_impl< value_type >::compute( uplo, trans, diag, k, a, x );
+ tbsv_impl< value_type >::compute( trans, diag, k, a, x );
 }
 
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/tpmv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/tpmv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/tpmv.hpp 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -59,20 +59,20 @@
 
     // templated specialization
     template< typename MatrixAP, typename VectorX >
- static return_type compute( char const uplo, char const trans,
- char const diag, MatrixAP& ap, VectorX& x ) {
- detail::tpmv( uplo, trans, diag, traits::matrix_size2(ap),
- traits::matrix_storage(ap), traits::vector_storage(x),
- traits::vector_stride(x) );
+ static return_type compute( char const trans, char const diag,
+ MatrixAP& ap, VectorX& x ) {
+ detail::tpmv( traits::matrix_uplo_tag(ap), trans, diag,
+ traits::matrix_size2(ap), traits::matrix_storage(ap),
+ traits::vector_storage(x), traits::vector_stride(x) );
     }
 };
 
 // template function to call tpmv
 template< typename MatrixAP, typename VectorX >
-inline integer_t tpmv( char const uplo, char const trans,
- char const diag, MatrixAP& ap, VectorX& x ) {
+inline integer_t tpmv( char const trans, char const diag, MatrixAP& ap,
+ VectorX& x ) {
     typedef typename traits::matrix_traits< MatrixAP >::value_type value_type;
- tpmv_impl< value_type >::compute( uplo, trans, diag, ap, x );
+ tpmv_impl< value_type >::compute( trans, diag, ap, x );
 }
 
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/tpsv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/tpsv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/tpsv.hpp 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -59,20 +59,20 @@
 
     // templated specialization
     template< typename MatrixAP, typename VectorX >
- static return_type compute( char const uplo, char const trans,
- char const diag, MatrixAP& ap, VectorX& x ) {
- detail::tpsv( uplo, trans, diag, traits::matrix_size2(ap),
- traits::matrix_storage(ap), traits::vector_storage(x),
- traits::vector_stride(x) );
+ static return_type compute( char const trans, char const diag,
+ MatrixAP& ap, VectorX& x ) {
+ detail::tpsv( traits::matrix_uplo_tag(ap), trans, diag,
+ traits::matrix_size2(ap), traits::matrix_storage(ap),
+ traits::vector_storage(x), traits::vector_stride(x) );
     }
 };
 
 // template function to call tpsv
 template< typename MatrixAP, typename VectorX >
-inline integer_t tpsv( char const uplo, char const trans,
- char const diag, MatrixAP& ap, VectorX& x ) {
+inline integer_t tpsv( char const trans, char const diag, MatrixAP& ap,
+ VectorX& x ) {
     typedef typename traits::matrix_traits< MatrixAP >::value_type value_type;
- tpsv_impl< value_type >::compute( uplo, trans, diag, ap, x );
+ tpsv_impl< value_type >::compute( trans, diag, ap, x );
 }
 
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/trmv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/trmv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/trmv.hpp 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -61,20 +61,21 @@
 
     // templated specialization
     template< typename MatrixA, typename VectorX >
- static return_type compute( char const uplo, char const trans,
- char const diag, MatrixA& a, VectorX& x ) {
- detail::trmv( uplo, trans, diag, traits::matrix_size2(a),
- traits::matrix_storage(a), traits::leading_dimension(a),
- traits::vector_storage(x), traits::vector_stride(x) );
+ static return_type compute( char const trans, char const diag, MatrixA& a,
+ VectorX& x ) {
+ detail::trmv( traits::matrix_uplo_tag(a), trans, diag,
+ traits::matrix_size2(a), traits::matrix_storage(a),
+ traits::leading_dimension(a), traits::vector_storage(x),
+ traits::vector_stride(x) );
     }
 };
 
 // template function to call trmv
 template< typename MatrixA, typename VectorX >
-inline integer_t trmv( char const uplo, char const trans,
- char const diag, MatrixA& a, VectorX& x ) {
+inline integer_t trmv( char const trans, char const diag, MatrixA& a,
+ VectorX& x ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
- trmv_impl< value_type >::compute( uplo, trans, diag, a, x );
+ trmv_impl< value_type >::compute( trans, diag, a, x );
 }
 
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/trsv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/trsv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/trsv.hpp 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -61,20 +61,21 @@
 
     // templated specialization
     template< typename MatrixA, typename VectorX >
- static return_type compute( char const uplo, char const trans,
- char const diag, MatrixA& a, VectorX& x ) {
- detail::trsv( uplo, trans, diag, traits::matrix_size2(a),
- traits::matrix_storage(a), traits::leading_dimension(a),
- traits::vector_storage(x), traits::vector_stride(x) );
+ static return_type compute( char const trans, char const diag, MatrixA& a,
+ VectorX& x ) {
+ detail::trsv( traits::matrix_uplo_tag(a), trans, diag,
+ traits::matrix_size2(a), traits::matrix_storage(a),
+ traits::leading_dimension(a), traits::vector_storage(x),
+ traits::vector_stride(x) );
     }
 };
 
 // template function to call trsv
 template< typename MatrixA, typename VectorX >
-inline integer_t trsv( char const uplo, char const trans,
- char const diag, MatrixA& a, VectorX& x ) {
+inline integer_t trsv( char const trans, char const diag, MatrixA& a,
+ VectorX& x ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
- trsv_impl< value_type >::compute( uplo, trans, diag, a, x );
+ trsv_impl< value_type >::compute( trans, diag, a, x );
 }
 
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/hemm.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/hemm.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/hemm.hpp 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -57,24 +57,23 @@
 
     // templated specialization
     template< typename MatrixA, typename MatrixB, typename MatrixC >
- static return_type compute( char const side, char const uplo,
+ static return_type compute( char const side,
             traits::complex_d const alpha, MatrixA& a, MatrixB& b,
             traits::complex_d const beta, MatrixC& c ) {
- detail::hemm( side, uplo, traits::matrix_size1(c),
- traits::matrix_size2(c), alpha, traits::matrix_storage(a),
- traits::leading_dimension(a), traits::matrix_storage(b),
- traits::leading_dimension(b), beta, traits::matrix_storage(c),
- traits::leading_dimension(c) );
+ detail::hemm( side, traits::matrix_uplo_tag(a),
+ traits::matrix_size1(c), traits::matrix_size2(c), alpha,
+ traits::matrix_storage(a), traits::leading_dimension(a),
+ traits::matrix_storage(b), traits::leading_dimension(b), beta,
+ traits::matrix_storage(c), traits::leading_dimension(c) );
     }
 };
 
 // template function to call hemm
 template< typename MatrixA, typename MatrixB, typename MatrixC >
-inline integer_t hemm( char const side, char const uplo,
- traits::complex_d const alpha, MatrixA& a, MatrixB& b,
- traits::complex_d const beta, MatrixC& c ) {
+inline integer_t hemm( char const side, traits::complex_d const alpha,
+ MatrixA& a, MatrixB& b, traits::complex_d const beta, MatrixC& c ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
- hemm_impl< value_type >::compute( side, uplo, alpha, a, b, beta, c );
+ hemm_impl< value_type >::compute( side, alpha, a, b, beta, c );
 }
 
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/her2k.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/her2k.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/her2k.hpp 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -57,26 +57,25 @@
 
     // templated specialization
     template< typename MatrixA, typename MatrixB, typename MatrixC >
- static return_type compute( char const uplo, char const trans,
- integer_t const k, traits::complex_d const alpha, MatrixA& a,
- MatrixB& b, real_type const beta, MatrixC& c ) {
- detail::her2k( uplo, trans, traits::matrix_size2(c), k, alpha,
- traits::matrix_storage(a), traits::leading_dimension(a),
- traits::matrix_storage(b), traits::leading_dimension(b), beta,
- traits::matrix_storage(c), traits::leading_dimension(c) );
+ static return_type compute( char const trans, integer_t const k,
+ traits::complex_d const alpha, MatrixA& a, MatrixB& b,
+ real_type const beta, MatrixC& c ) {
+ detail::her2k( traits::matrix_uplo_tag(c), trans,
+ traits::matrix_size2(c), k, alpha, traits::matrix_storage(a),
+ traits::leading_dimension(a), traits::matrix_storage(b),
+ traits::leading_dimension(b), beta, traits::matrix_storage(c),
+ traits::leading_dimension(c) );
     }
 };
 
 // template function to call her2k
 template< typename MatrixA, typename MatrixB, typename MatrixC >
-inline integer_t her2k( char const uplo, char const trans,
- integer_t const k, traits::complex_d const alpha, MatrixA& a,
- MatrixB& b,
+inline integer_t her2k( char const trans, integer_t const k,
+ traits::complex_d const alpha, MatrixA& a, MatrixB& b,
         typename traits::matrix_traits< MatrixA >::value_type const beta,
         MatrixC& c ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
- her2k_impl< value_type >::compute( uplo, trans, k, alpha, a, b, beta,
- c );
+ her2k_impl< value_type >::compute( trans, k, alpha, a, b, beta, c );
 }
 
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/herk.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/herk.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/herk.hpp 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -53,26 +53,25 @@
 
     // templated specialization
     template< typename MatrixA, typename MatrixC >
- static return_type compute( char const uplo, char const trans,
- integer_t const k, real_type const alpha, MatrixA& a,
- real_type const beta, MatrixC& c ) {
- detail::herk( uplo, trans, traits::matrix_size2(c), k, alpha,
- traits::matrix_storage(a), traits::leading_dimension(a), beta,
- traits::matrix_storage(c), traits::leading_dimension(c) );
+ static return_type compute( char const trans, integer_t const k,
+ real_type const alpha, MatrixA& a, real_type const beta,
+ MatrixC& c ) {
+ detail::herk( traits::matrix_uplo_tag(c), trans,
+ traits::matrix_size2(c), k, alpha, traits::matrix_storage(a),
+ traits::leading_dimension(a), beta, traits::matrix_storage(c),
+ traits::leading_dimension(c) );
     }
 };
 
 // template function to call herk
 template< typename MatrixA, typename MatrixC >
-inline integer_t herk( char const uplo, char const trans,
- integer_t const k,
+inline integer_t herk( char const trans, integer_t const k,
         typename traits::matrix_traits< MatrixA >::value_type const alpha,
         MatrixA& a,
         typename traits::matrix_traits< MatrixA >::value_type const beta,
         MatrixC& c ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
- herk_impl< value_type >::compute( uplo, trans, k, alpha, a, beta,
- c );
+ herk_impl< value_type >::compute( trans, k, alpha, a, beta, c );
 }
 
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/symm.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/symm.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/symm.hpp 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -71,24 +71,23 @@
 
     // templated specialization
     template< typename MatrixA, typename MatrixB, typename MatrixC >
- static return_type compute( char const side, char const uplo,
+ static return_type compute( char const side,
             traits::complex_d const alpha, MatrixA& a, MatrixB& b,
             traits::complex_d const beta, MatrixC& c ) {
- detail::symm( side, uplo, traits::matrix_size1(c),
- traits::matrix_size2(c), alpha, traits::matrix_storage(a),
- traits::leading_dimension(a), traits::matrix_storage(b),
- traits::leading_dimension(b), beta, traits::matrix_storage(c),
- traits::leading_dimension(c) );
+ detail::symm( side, traits::matrix_uplo_tag(a),
+ traits::matrix_size1(c), traits::matrix_size2(c), alpha,
+ traits::matrix_storage(a), traits::leading_dimension(a),
+ traits::matrix_storage(b), traits::leading_dimension(b), beta,
+ traits::matrix_storage(c), traits::leading_dimension(c) );
     }
 };
 
 // template function to call symm
 template< typename MatrixA, typename MatrixB, typename MatrixC >
-inline integer_t symm( char const side, char const uplo,
- traits::complex_d const alpha, MatrixA& a, MatrixB& b,
- traits::complex_d const beta, MatrixC& c ) {
+inline integer_t symm( char const side, traits::complex_d const alpha,
+ MatrixA& a, MatrixB& b, traits::complex_d const beta, MatrixC& c ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
- symm_impl< value_type >::compute( side, uplo, alpha, a, b, beta, c );
+ symm_impl< value_type >::compute( side, alpha, a, b, beta, c );
 }
 
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/syr2k.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/syr2k.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/syr2k.hpp 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -71,24 +71,24 @@
 
     // templated specialization
     template< typename MatrixA, typename MatrixB, typename MatrixC >
- static return_type compute( char const uplo, char const trans,
- integer_t const k, traits::complex_d const alpha, MatrixA& a,
- MatrixB& b, traits::complex_d const beta, MatrixC& c ) {
- detail::syr2k( uplo, trans, traits::matrix_size2(c), k, alpha,
- traits::matrix_storage(a), traits::leading_dimension(a),
- traits::matrix_storage(b), traits::leading_dimension(b), beta,
- traits::matrix_storage(c), traits::leading_dimension(c) );
+ static return_type compute( char const trans, integer_t const k,
+ traits::complex_d const alpha, MatrixA& a, MatrixB& b,
+ traits::complex_d const beta, MatrixC& c ) {
+ detail::syr2k( traits::matrix_uplo_tag(c), trans,
+ traits::matrix_size2(c), k, alpha, traits::matrix_storage(a),
+ traits::leading_dimension(a), traits::matrix_storage(b),
+ traits::leading_dimension(b), beta, traits::matrix_storage(c),
+ traits::leading_dimension(c) );
     }
 };
 
 // template function to call syr2k
 template< typename MatrixA, typename MatrixB, typename MatrixC >
-inline integer_t syr2k( char const uplo, char const trans,
- integer_t const k, traits::complex_d const alpha, MatrixA& a,
- MatrixB& b, traits::complex_d const beta, MatrixC& c ) {
+inline integer_t syr2k( char const trans, integer_t const k,
+ traits::complex_d const alpha, MatrixA& a, MatrixB& b,
+ traits::complex_d const beta, MatrixC& c ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
- syr2k_impl< value_type >::compute( uplo, trans, k, alpha, a, b, beta,
- c );
+ syr2k_impl< value_type >::compute( trans, k, alpha, a, b, beta, c );
 }
 
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/syrk.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/syrk.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/syrk.hpp 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -69,23 +69,23 @@
 
     // templated specialization
     template< typename MatrixA, typename MatrixC >
- static return_type compute( char const uplo, char const trans,
- integer_t const k, traits::complex_d const alpha, MatrixA& a,
+ static return_type compute( char const trans, integer_t const k,
+ traits::complex_d const alpha, MatrixA& a,
             traits::complex_d const beta, MatrixC& c ) {
- detail::syrk( uplo, trans, traits::matrix_size2(c), k, alpha,
- traits::matrix_storage(a), traits::leading_dimension(a), beta,
- traits::matrix_storage(c), traits::leading_dimension(c) );
+ detail::syrk( traits::matrix_uplo_tag(c), trans,
+ traits::matrix_size2(c), k, alpha, traits::matrix_storage(a),
+ traits::leading_dimension(a), beta, traits::matrix_storage(c),
+ traits::leading_dimension(c) );
     }
 };
 
 // template function to call syrk
 template< typename MatrixA, typename MatrixC >
-inline integer_t syrk( char const uplo, char const trans,
- integer_t const k, traits::complex_d const alpha, MatrixA& a,
+inline integer_t syrk( char const trans, integer_t const k,
+ traits::complex_d const alpha, MatrixA& a,
         traits::complex_d const beta, MatrixC& c ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
- syrk_impl< value_type >::compute( uplo, trans, k, alpha, a, beta,
- c );
+ syrk_impl< value_type >::compute( trans, k, alpha, a, beta, c );
 }
 
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/trmm.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/trmm.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/trmm.hpp 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -69,24 +69,23 @@
 
     // templated specialization
     template< typename MatrixA, typename MatrixB >
- static return_type compute( char const side, char const uplo,
- char const transa, char const diag, traits::complex_d const alpha,
- MatrixA& a, MatrixB& b ) {
- detail::trmm( side, uplo, transa, diag, traits::matrix_size1(b),
- traits::matrix_size2(b), alpha, traits::matrix_storage(a),
- traits::leading_dimension(a), traits::matrix_storage(b),
- traits::leading_dimension(b) );
+ static return_type compute( char const side, char const transa,
+ char const diag, traits::complex_d const alpha, MatrixA& a,
+ MatrixB& b ) {
+ detail::trmm( side, traits::matrix_uplo_tag(a), transa, diag,
+ traits::matrix_size1(b), traits::matrix_size2(b), alpha,
+ traits::matrix_storage(a), traits::leading_dimension(a),
+ traits::matrix_storage(b), traits::leading_dimension(b) );
     }
 };
 
 // template function to call trmm
 template< typename MatrixA, typename MatrixB >
-inline integer_t trmm( char const side, char const uplo,
- char const transa, char const diag, traits::complex_d const alpha,
- MatrixA& a, MatrixB& b ) {
+inline integer_t trmm( char const side, char const transa,
+ char const diag, traits::complex_d const alpha, MatrixA& a,
+ MatrixB& b ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
- trmm_impl< value_type >::compute( side, uplo, transa, diag, alpha,
- a, b );
+ trmm_impl< value_type >::compute( side, transa, diag, alpha, a, b );
 }
 
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/trsm.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/trsm.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/trsm.hpp 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -69,24 +69,23 @@
 
     // templated specialization
     template< typename MatrixA, typename MatrixB >
- static return_type compute( char const side, char const uplo,
- char const transa, char const diag, traits::complex_d const alpha,
- MatrixA& a, MatrixB& b ) {
- detail::trsm( side, uplo, transa, diag, traits::matrix_size1(b),
- traits::matrix_size2(b), alpha, traits::matrix_storage(a),
- traits::leading_dimension(a), traits::matrix_storage(b),
- traits::leading_dimension(b) );
+ static return_type compute( char const side, char const transa,
+ char const diag, traits::complex_d const alpha, MatrixA& a,
+ MatrixB& b ) {
+ detail::trsm( side, traits::matrix_uplo_tag(a), transa, diag,
+ traits::matrix_size1(b), traits::matrix_size2(b), alpha,
+ traits::matrix_storage(a), traits::leading_dimension(a),
+ traits::matrix_storage(b), traits::leading_dimension(b) );
     }
 };
 
 // template function to call trsm
 template< typename MatrixA, typename MatrixB >
-inline integer_t trsm( char const side, char const uplo,
- char const transa, char const diag, traits::complex_d const alpha,
- MatrixA& a, MatrixB& b ) {
+inline integer_t trsm( char const side, char const transa,
+ char const diag, traits::complex_d const alpha, MatrixA& a,
+ MatrixB& b ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
- trsm_impl< value_type >::compute( side, uplo, transa, diag, alpha,
- a, b );
+ trsm_impl< value_type >::compute( side, transa, diag, alpha, a, b );
 }
 
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/latrd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/latrd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/latrd.hpp 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -71,16 +71,17 @@
     // templated specialization
     template< typename MatrixA, typename VectorE, typename VectorTAU,
             typename MatrixW >
- static void compute( char const uplo, integer_t const nb, MatrixA& a,
- VectorE& e, VectorTAU& tau, MatrixW& w ) {
+ static void compute( integer_t const nb, MatrixA& a, VectorE& e,
+ VectorTAU& tau, MatrixW& w ) {
 #ifndef NDEBUG
- assert( uplo == 'U' || uplo == 'L' );
+ assert( traits::matrix_uplo_tag(a) == 'U' ||
+ traits::matrix_uplo_tag(a) == 'L' );
         assert( traits::leading_dimension(a) >= (ERROR) );
         assert( traits::leading_dimension(w) >= std::max(1,
                 traits::matrix_size2(a)) );
 #endif
- detail::latrd( uplo, traits::matrix_size2(a), nb,
- traits::matrix_storage(a), traits::leading_dimension(a),
+ detail::latrd( traits::matrix_uplo_tag(a), traits::matrix_size2(a),
+ nb, traits::matrix_storage(a), traits::leading_dimension(a),
                 traits::vector_storage(e), traits::vector_storage(tau),
                 traits::matrix_storage(w), traits::leading_dimension(w) );
     }
@@ -96,17 +97,18 @@
     // templated specialization
     template< typename MatrixA, typename VectorE, typename VectorTAU,
             typename MatrixW >
- static void compute( char const uplo, integer_t const nb, MatrixA& a,
- VectorE& e, VectorTAU& tau, MatrixW& w ) {
+ static void compute( integer_t const nb, MatrixA& a, VectorE& e,
+ VectorTAU& tau, MatrixW& w ) {
 #ifndef NDEBUG
- assert( uplo == 'U' || uplo == 'L' );
+ assert( traits::matrix_uplo_tag(h) == 'U' ||
+ traits::matrix_uplo_tag(h) == 'L' );
         assert( traits::leading_dimension(a) >= std::max(1,
                 traits::matrix_size2(a)) );
         assert( traits::leading_dimension(w) >= std::max(1,
                 traits::matrix_size2(a)) );
 #endif
- detail::latrd( uplo, traits::matrix_size2(a), nb,
- traits::matrix_storage(a), traits::leading_dimension(a),
+ detail::latrd( traits::matrix_uplo_tag(h), traits::matrix_size2(a),
+ nb, traits::matrix_storage(a), traits::leading_dimension(a),
                 traits::vector_storage(e), traits::vector_storage(tau),
                 traits::matrix_storage(w), traits::leading_dimension(w) );
     }
@@ -116,11 +118,11 @@
 // template function to call latrd
 template< typename MatrixA, typename VectorE, typename VectorTAU,
         typename MatrixW >
-inline integer_t latrd( char const uplo, integer_t const nb, MatrixA& a,
- VectorE& e, VectorTAU& tau, MatrixW& w ) {
+inline integer_t latrd( integer_t const nb, MatrixA& a, VectorE& e,
+ VectorTAU& tau, MatrixW& w ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
- latrd_impl< value_type >::compute( uplo, nb, a, e, tau, w );
+ latrd_impl< value_type >::compute( nb, a, e, tau, w );
     return info;
 }
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbequ.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbequ.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbequ.hpp 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -61,32 +61,31 @@
 
     // templated specialization
     template< typename MatrixAB, typename VectorS >
- static void compute( char const uplo, integer_t const n,
- integer_t const kd, MatrixAB& ab, VectorS& s, real_type& scond,
- real_type& amax, integer_t& info ) {
+ static void compute( integer_t const n, integer_t const kd, MatrixAB& ab,
+ VectorS& s, real_type& scond, real_type& amax, integer_t& info ) {
 #ifndef NDEBUG
- assert( uplo == 'U' || uplo == 'L' );
+ assert( traits::matrix_uplo_tag(a) == 'U' ||
+ traits::matrix_uplo_tag(a) == 'L' );
         assert( n >= 0 );
         assert( kd >= 0 );
         assert( traits::leading_dimension(ab) >= kd+1 );
 #endif
- detail::pbequ( uplo, n, kd, traits::matrix_storage(ab),
- traits::leading_dimension(ab), traits::vector_storage(s),
- scond, amax, info );
+ detail::pbequ( traits::matrix_uplo_tag(a), n, kd,
+ traits::matrix_storage(ab), traits::leading_dimension(ab),
+ traits::vector_storage(s), scond, amax, info );
     }
 };
 
 
 // template function to call pbequ
 template< typename MatrixAB, typename VectorS >
-inline integer_t pbequ( char const uplo, integer_t const n,
- integer_t const kd, MatrixAB& ab, VectorS& s,
+inline integer_t pbequ( integer_t const n, integer_t const kd,
+ MatrixAB& ab, VectorS& s,
         typename traits::matrix_traits< MatrixAB >::value_type& scond,
         typename traits::matrix_traits< MatrixAB >::value_type& amax ) {
     typedef typename traits::matrix_traits< MatrixAB >::value_type value_type;
     integer_t info(0);
- pbequ_impl< value_type >::compute( uplo, n, kd, ab, s, scond, amax,
- info );
+ pbequ_impl< value_type >::compute( n, kd, ab, s, scond, amax, info );
     return info;
 }
 

Modified: sandbox/numeric_bindings/libs/numeric/bindings/tools/netlib.py
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/tools/netlib.py (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/tools/netlib.py 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -995,17 +995,25 @@
             argument_properties[ 'assert_char' ] += [ letter ]
 
       if argument_name == 'UPLO':
- match_uplo = re.compile( '(Upper|Lower)(triangle|triangles|of|input|matrix|\s)+([A-Z]+)' ).findall( comment_block )
- if len( match_uplo ) == 2 and len( argument_properties[ 'assert_char' ] ) == 2 and \
- 'U' in argument_properties[ 'assert_char' ] and 'L' in argument_properties[ 'assert_char' ]:
- print "adding uplo trait"
+ # see if the traits are overruled through the template system
+ traits_key = subroutine_group_name.lower() + '.' + subroutine_value_type + '.' + argument_name + '.trait_of'
+ if my_has_key( traits_key, template_map ):
           argument_properties[ 'trait_type' ] = 'uplo'
- argument_properties[ 'trait_of' ] = match_uplo[ 0 ][ 2 ]
-
- # see if the traits are overruled through the template system
- traits_key = subroutine_group_name.lower() + '.' + subroutine_value_type + '.' + argument_name + '.trait_of'
- if my_has_key( traits_key, template_map ):
- argument_properties[ 'trait_of' ] = template_map[ my_has_key( traits_key, template_map ) ].strip()
+ argument_properties[ 'trait_of' ] = template_map[ my_has_key( traits_key, template_map ) ].strip()
+
+ else:
+ match_uplo = re.compile( '([Uu]pper|[Ll]ower)(or|triangular|triangle|triangles|part|of|the|band|hermitian|symmetric|input|matrix|\s)+([A-Z]+)', re.M ).findall( comment_block )
+ print "UPLO:", match_uplo
+ uplo_trait_of = None
+ if len( match_uplo ) > 0:
+ uplo_trait_of = match_uplo[ 0 ][ 2 ]
+ for match in match_uplo:
+ if uplo_trait_of != None and match[2] != uplo_trait_of:
+ uplo_trait_of = None
+ if uplo_trait_of != None:
+ print "adding uplo trait"
+ argument_properties[ 'trait_type' ] = 'uplo'
+ argument_properties[ 'trait_of' ] = uplo_trait_of
 
     #
     # Minimal workspace dimension recognition

Added: sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/level2/tbmv.hpp
==============================================================================
--- (empty file)
+++ sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/level2/tbmv.hpp 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -0,0 +1,3 @@
+$TEMPLATE[tbmv.all.UPLO.trait_of]
+A
+$TEMPLATE[end]

Added: sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/level2/tbsv.hpp
==============================================================================
--- (empty file)
+++ sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/level2/tbsv.hpp 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -0,0 +1,3 @@
+$TEMPLATE[tbsv.all.UPLO.trait_of]
+A
+$TEMPLATE[end]

Added: sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/level2/trmv.hpp
==============================================================================
--- (empty file)
+++ sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/level2/trmv.hpp 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -0,0 +1,3 @@
+$TEMPLATE[trmv.all.UPLO.trait_of]
+A
+$TEMPLATE[end]

Added: sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/level2/trsv.hpp
==============================================================================
--- (empty file)
+++ sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/level2/trsv.hpp 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -0,0 +1,3 @@
+$TEMPLATE[trsv.all.UPLO.trait_of]
+A
+$TEMPLATE[end]

Added: sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/level3/trmm.hpp
==============================================================================
--- (empty file)
+++ sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/level3/trmm.hpp 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -0,0 +1,3 @@
+$TEMPLATE[trmm.all.UPLO.trait_of]
+A
+$TEMPLATE[end]

Added: sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/level3/trsm.hpp
==============================================================================
--- (empty file)
+++ sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/level3/trsm.hpp 2009-02-22 04:52:12 EST (Sun, 22 Feb 2009)
@@ -0,0 +1,3 @@
+$TEMPLATE[trsm.all.UPLO.trait_of]
+A
+$TEMPLATE[end]


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