$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r63402 - in sandbox/numeric_bindings: boost/numeric/bindings/lapack/computational boost/numeric/bindings/lapack/driver libs/numeric/bindings/lapack/test libs/numeric/bindings/tools libs/numeric/bindings/tools/templates/computational libs/numeric/bindings/tools/templates/driver
From: thomas.klimpel_at_[hidden]
Date: 2010-06-27 19:25:03
Author: klimpel
Date: 2010-06-27 19:25:01 EDT (Sun, 27 Jun 2010)
New Revision: 63402
URL: http://svn.boost.org/trac/boost/changeset/63402
Log:
Now gbsv, gbsvx, gbtrf and gbtrs are at least no longer worse than in bindings-v1. Whether they are good now is a totally different question.
Added:
   sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/computational/gbtrf.hpp   (contents, props changed)
Text files modified: 
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbtrf.hpp         |     8 ++++--                                  
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbtrs.hpp         |     6 +++-                                    
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gbsv.hpp                 |    12 +++++----                               
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gbsvx.hpp                |    48 +++++++++++++++++++++------------------ 
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggglm.hpp                |     8 +++---                                  
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gbsv.cpp              |     7 +----                                   
   sandbox/numeric_bindings/libs/numeric/bindings/tools/bindings.py                       |     2                                         
   sandbox/numeric_bindings/libs/numeric/bindings/tools/netlib.py                         |    11 +++++++++                               
   sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/computational/gbtrs.hpp |     2 +                                       
   sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/driver/gbsv.hpp         |     2 +                                       
   sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/driver/gbsvx.hpp        |     2 +                                       
   11 files changed, 66 insertions(+), 42 deletions(-)
Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbtrf.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbtrf.hpp	(original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbtrf.hpp	2010-06-27 19:25:01 EDT (Sun, 27 Jun 2010)
@@ -122,7 +122,8 @@
         BOOST_STATIC_ASSERT( (bindings::is_mutable< MatrixAB >::value) );
         BOOST_STATIC_ASSERT( (bindings::is_mutable< VectorIPIV >::value) );
         BOOST_ASSERT( bindings::bandwidth_lower(ab) >= 0 );
-        BOOST_ASSERT( bindings::bandwidth_upper(ab) >= 0 );
+        BOOST_ASSERT( bindings::bandwidth_upper(ab)-
+                bindings::bandwidth_lower(ab) >= 0 );
         BOOST_ASSERT( bindings::size(ipiv) >= std::min<
                 std::ptrdiff_t >(bindings::size_row(ab),
                 bindings::size_column(ab)) );
@@ -133,8 +134,9 @@
         BOOST_ASSERT( bindings::stride_major(ab) >= 2 );
         return detail::gbtrf( bindings::size_row(ab),
                 bindings::size_column(ab), bindings::bandwidth_lower(ab),
-                bindings::bandwidth_upper(ab), bindings::begin_value(ab),
-                bindings::stride_major(ab), bindings::begin_value(ipiv) );
+                bindings::bandwidth_upper(ab)-bindings::bandwidth_lower(ab),
+                bindings::begin_value(ab), bindings::stride_major(ab),
+                bindings::begin_value(ipiv) );
     }
 
 };
Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbtrs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbtrs.hpp	(original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbtrs.hpp	2010-06-27 19:25:01 EDT (Sun, 27 Jun 2010)
@@ -140,7 +140,8 @@
                 MatrixB >::type >::type >::value) );
         BOOST_STATIC_ASSERT( (bindings::is_mutable< MatrixB >::value) );
         BOOST_ASSERT( bindings::bandwidth_lower_op(ab, trans()) >= 0 );
-        BOOST_ASSERT( bindings::bandwidth_upper_op(ab, trans()) >= 0 );
+        BOOST_ASSERT( bindings::bandwidth_upper_op(ab, trans())-
+                bindings::bandwidth_lower_op(ab, trans()) >= 0 );
         BOOST_ASSERT( bindings::size(ipiv) >= bindings::size_column_op(ab,
                 trans()) );
         BOOST_ASSERT( bindings::size_column(b) >= 0 );
@@ -154,7 +155,8 @@
                 bindings::size_column_op(ab, trans())) );
         return detail::gbtrs( trans(), bindings::size_column_op(ab, trans()),
                 bindings::bandwidth_lower_op(ab, trans()),
-                bindings::bandwidth_upper_op(ab, trans()),
+                bindings::bandwidth_upper_op(ab, trans())-
+                bindings::bandwidth_lower_op(ab, trans()),
                 bindings::size_column(b), bindings::begin_value(ab),
                 bindings::stride_major(ab), bindings::begin_value(ipiv),
                 bindings::begin_value(b), bindings::stride_major(b) );
Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gbsv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gbsv.hpp	(original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gbsv.hpp	2010-06-27 19:25:01 EDT (Sun, 27 Jun 2010)
@@ -132,7 +132,8 @@
         BOOST_STATIC_ASSERT( (bindings::is_mutable< VectorIPIV >::value) );
         BOOST_STATIC_ASSERT( (bindings::is_mutable< MatrixB >::value) );
         BOOST_ASSERT( bindings::bandwidth_lower(ab) >= 0 );
-        BOOST_ASSERT( bindings::bandwidth_upper(ab) >= 0 );
+        BOOST_ASSERT( bindings::bandwidth_upper(ab)-
+                bindings::bandwidth_lower(ab) >= 0 );
         BOOST_ASSERT( bindings::size(ipiv) >= bindings::size_column(ab) );
         BOOST_ASSERT( bindings::size_column(ab) >= 0 );
         BOOST_ASSERT( bindings::size_column(b) >= 0 );
@@ -144,10 +145,11 @@
         BOOST_ASSERT( bindings::stride_major(b) >= std::max< std::ptrdiff_t >(1,
                 bindings::size_column(ab)) );
         return detail::gbsv( bindings::size_column(ab),
-                bindings::bandwidth_lower(ab), bindings::bandwidth_upper(ab),
-                bindings::size_column(b), bindings::begin_value(ab),
-                bindings::stride_major(ab), bindings::begin_value(ipiv),
-                bindings::begin_value(b), bindings::stride_major(b) );
+                bindings::bandwidth_lower(ab), bindings::bandwidth_upper(ab)-
+                bindings::bandwidth_lower(ab), bindings::size_column(b),
+                bindings::begin_value(ab), bindings::stride_major(ab),
+                bindings::begin_value(ipiv), bindings::begin_value(b),
+                bindings::stride_major(b) );
     }
 
 };
Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gbsvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gbsvx.hpp	(original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gbsvx.hpp	2010-06-27 19:25:01 EDT (Sun, 27 Jun 2010)
@@ -207,7 +207,8 @@
         BOOST_STATIC_ASSERT( (bindings::is_mutable< VectorFERR >::value) );
         BOOST_STATIC_ASSERT( (bindings::is_mutable< VectorBERR >::value) );
         BOOST_ASSERT( bindings::bandwidth_lower(ab) >= 0 );
-        BOOST_ASSERT( bindings::bandwidth_upper(ab) >= 0 );
+        BOOST_ASSERT( bindings::bandwidth_upper(ab)-
+                bindings::bandwidth_lower(ab) >= 0 );
         BOOST_ASSERT( bindings::size(berr) >= bindings::size_column(b) );
         BOOST_ASSERT( bindings::size(work.select(fortran_int_t())) >=
                 min_size_iwork( bindings::size_column(ab) ));
@@ -224,8 +225,8 @@
         BOOST_ASSERT( bindings::size_minor(x) == 1 ||
                 bindings::stride_minor(x) == 1 );
         BOOST_ASSERT( bindings::stride_major(ab) >=
-                bindings::bandwidth_lower(ab)+bindings::bandwidth_upper(ab)+
-                1 );
+                bindings::bandwidth_lower(ab)+bindings::bandwidth_upper(ab)-
+                bindings::bandwidth_lower(ab)+1 );
         BOOST_ASSERT( bindings::stride_major(afb) >= 2 );
         BOOST_ASSERT( bindings::stride_major(b) >= std::max< std::ptrdiff_t >(1,
                 bindings::size_column(ab)) );
@@ -235,14 +236,15 @@
                 equed == 'B' );
         BOOST_ASSERT( fact == 'F' || fact == 'N' || fact == 'E' );
         return detail::gbsvx( fact, trans(), bindings::size_column(ab),
-                bindings::bandwidth_lower(ab), bindings::bandwidth_upper(ab),
-                bindings::size_column(b), bindings::begin_value(ab),
-                bindings::stride_major(ab), bindings::begin_value(afb),
-                bindings::stride_major(afb), bindings::begin_value(ipiv),
-                equed, bindings::begin_value(r), bindings::begin_value(c),
-                bindings::begin_value(b), bindings::stride_major(b),
-                bindings::begin_value(x), bindings::stride_major(x), rcond,
-                bindings::begin_value(ferr), bindings::begin_value(berr),
+                bindings::bandwidth_lower(ab), bindings::bandwidth_upper(ab)-
+                bindings::bandwidth_lower(ab), bindings::size_column(b),
+                bindings::begin_value(ab), bindings::stride_major(ab),
+                bindings::begin_value(afb), bindings::stride_major(afb),
+                bindings::begin_value(ipiv), equed, bindings::begin_value(r),
+                bindings::begin_value(c), bindings::begin_value(b),
+                bindings::stride_major(b), bindings::begin_value(x),
+                bindings::stride_major(x), rcond, bindings::begin_value(ferr),
+                bindings::begin_value(berr),
                 bindings::begin_value(work.select(real_type())),
                 bindings::begin_value(work.select(fortran_int_t())) );
     }
@@ -368,7 +370,8 @@
         BOOST_STATIC_ASSERT( (bindings::is_mutable< VectorFERR >::value) );
         BOOST_STATIC_ASSERT( (bindings::is_mutable< VectorBERR >::value) );
         BOOST_ASSERT( bindings::bandwidth_lower(ab) >= 0 );
-        BOOST_ASSERT( bindings::bandwidth_upper(ab) >= 0 );
+        BOOST_ASSERT( bindings::bandwidth_upper(ab)-
+                bindings::bandwidth_lower(ab) >= 0 );
         BOOST_ASSERT( bindings::size(berr) >= bindings::size_column(b) );
         BOOST_ASSERT( bindings::size(work.select(real_type())) >=
                 min_size_rwork( bindings::size_column(ab) ));
@@ -385,8 +388,8 @@
         BOOST_ASSERT( bindings::size_minor(x) == 1 ||
                 bindings::stride_minor(x) == 1 );
         BOOST_ASSERT( bindings::stride_major(ab) >=
-                bindings::bandwidth_lower(ab)+bindings::bandwidth_upper(ab)+
-                1 );
+                bindings::bandwidth_lower(ab)+bindings::bandwidth_upper(ab)-
+                bindings::bandwidth_lower(ab)+1 );
         BOOST_ASSERT( bindings::stride_major(afb) >= 2 );
         BOOST_ASSERT( bindings::stride_major(b) >= std::max< std::ptrdiff_t >(1,
                 bindings::size_column(ab)) );
@@ -396,14 +399,15 @@
                 equed == 'B' );
         BOOST_ASSERT( fact == 'F' || fact == 'N' || fact == 'E' );
         return detail::gbsvx( fact, trans(), bindings::size_column(ab),
-                bindings::bandwidth_lower(ab), bindings::bandwidth_upper(ab),
-                bindings::size_column(b), bindings::begin_value(ab),
-                bindings::stride_major(ab), bindings::begin_value(afb),
-                bindings::stride_major(afb), bindings::begin_value(ipiv),
-                equed, bindings::begin_value(r), bindings::begin_value(c),
-                bindings::begin_value(b), bindings::stride_major(b),
-                bindings::begin_value(x), bindings::stride_major(x), rcond,
-                bindings::begin_value(ferr), bindings::begin_value(berr),
+                bindings::bandwidth_lower(ab), bindings::bandwidth_upper(ab)-
+                bindings::bandwidth_lower(ab), bindings::size_column(b),
+                bindings::begin_value(ab), bindings::stride_major(ab),
+                bindings::begin_value(afb), bindings::stride_major(afb),
+                bindings::begin_value(ipiv), equed, bindings::begin_value(r),
+                bindings::begin_value(c), bindings::begin_value(b),
+                bindings::stride_major(b), bindings::begin_value(x),
+                bindings::stride_major(x), rcond, bindings::begin_value(ferr),
+                bindings::begin_value(berr),
                 bindings::begin_value(work.select(value_type())),
                 bindings::begin_value(work.select(real_type())) );
     }
Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggglm.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggglm.hpp	(original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggglm.hpp	2010-06-27 19:25:01 EDT (Sun, 27 Jun 2010)
@@ -170,8 +170,8 @@
                 bindings::size_row(a), bindings::size_column(b) ));
         BOOST_ASSERT( bindings::size(x) >= bindings::size_column(a) );
         BOOST_ASSERT( bindings::size(y) >= bindings::size_column(b) );
-        BOOST_ASSERT( bindings::size_column(b) >=
-                bindings::size_row(a)-bindings::size_column(a) );
+        BOOST_ASSERT( bindings::size_column(b) >= bindings::size_row(a)-
+                bindings::size_column(a) );
         BOOST_ASSERT( bindings::size_minor(a) == 1 ||
                 bindings::stride_minor(a) == 1 );
         BOOST_ASSERT( bindings::size_minor(b) == 1 ||
@@ -290,8 +290,8 @@
                 bindings::size_row(a), bindings::size_column(b) ));
         BOOST_ASSERT( bindings::size(x) >= bindings::size_column(a) );
         BOOST_ASSERT( bindings::size(y) >= bindings::size_column(b) );
-        BOOST_ASSERT( bindings::size_column(b) >=
-                bindings::size_row(a)-bindings::size_column(a) );
+        BOOST_ASSERT( bindings::size_column(b) >= bindings::size_row(a)-
+                bindings::size_column(a) );
         BOOST_ASSERT( bindings::size_minor(a) == 1 ||
                 bindings::stride_minor(a) == 1 );
         BOOST_ASSERT( bindings::size_minor(b) == 1 ||
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-06-27 19:25:01 EDT (Sun, 27 Jun 2010)
@@ -12,9 +12,6 @@
 namespace lapack = boost::numeric::bindings::lapack;
 namespace bindings = boost::numeric::bindings;
 
-static const char NORMAL = 'N';
-static const char TRANSPOSE = 'T';
-
 // solves the equation Ax = B, and puts the solution in B
 // A is mutated by this routine
 template <typename MatrA, typename MatrB>
@@ -25,7 +22,7 @@
   integer_t const kl = bindings::bandwidth_lower (a);
   integer_t const ku = bindings::bandwidth_upper (a) - kl;
   std::vector<integer_t> piv(a.size1());
-  int ret = lapack::gbtrf(bindings::size_row(a), bindings::size_column(a), kl, ku, a, piv);
+  int ret = lapack::gbtrf(/*kl, ku, */a, piv);
   if (ret < 0) {
     //CStdString err;
     //err.Format("banded::Solve: argument %d in DGBTRF had an illegal value", -ret);
@@ -39,7 +36,7 @@
     throw std::runtime_error("banded::Solve: the (%d,%d) diagonal element is 0 after DGBTRF");
   }
 
-  ret = lapack::gbtrs(NORMAL, bindings::size_row(a), kl, ku, a, piv, b);
+  ret = lapack::gbtrs(/*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/tools/bindings.py
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/tools/bindings.py	(original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/tools/bindings.py	2010-06-27 19:25:01 EDT (Sun, 27 Jun 2010)
@@ -57,7 +57,7 @@
 def proper_indent( input_string ):
   max_chars = 80
   all_results = []
-  find_delim = re.compile( "([\,\+/]|\|\||>=|< |std::log\(|work\()[ ]*" )
+  find_delim = re.compile( "([\,\+\-/]|\|\||>=|< |std::log\(|work\()[ ]*" )
   for input_line in input_string.splitlines():
     result = ''
     # extra indentation size is 8
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	2010-06-27 19:25:01 EDT (Sun, 27 Jun 2010)
@@ -217,6 +217,17 @@
         result = "$NAMESPACEbandwidth_upper_op(" + properties[ 'trait_of' ][ 0 ].lower() + \
             ", " + arg_map[ properties[ 'trait_of' ][ 0 ] ][ 'ref_trans' ].lower() + "())"
 
+    if properties[ 'trait_type' ] == 'num_super_sub':
+      if 'ref_trans' not in arg_map[ properties[ 'trait_of' ][ 0 ] ]:
+        result = "$NAMESPACEbandwidth_upper(" +  properties[ 'trait_of' ][ 0 ].lower() + \
+            ")-$NAMESPACEbandwidth_lower(" +  properties[ 'trait_of' ][ 0 ].lower() + \
+            ")"
+      else:
+        result = "$NAMESPACEbandwidth_upper_op(" + properties[ 'trait_of' ][ 0 ].lower() + \
+            ", " + arg_map[ properties[ 'trait_of' ][ 0 ] ][ 'ref_trans' ].lower() + \
+            "())-$NAMESPACEbandwidth_lower_op(" + properties[ 'trait_of' ][ 0 ].lower() + \
+            ", " + arg_map[ properties[ 'trait_of' ][ 0 ] ][ 'ref_trans' ].lower() + "())"
+
     if properties[ 'trait_type' ] == 'num_super_uplo' or \
        properties[ 'trait_type' ] == 'num_sub_uplo':
         result = "$NAMESPACEbandwidth(" + properties[ 'trait_of' ][ 0 ].lower() + \
Added: sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/computational/gbtrf.hpp
==============================================================================
--- (empty file)
+++ sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/computational/gbtrf.hpp	2010-06-27 19:25:01 EDT (Sun, 27 Jun 2010)
@@ -0,0 +1,3 @@
+$TEMPLATE[gbtrf.all.KU.trait]
+num_super_sub,AB
+$TEMPLATE[end]
Modified: sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/computational/gbtrs.hpp
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/computational/gbtrs.hpp	(original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/computational/gbtrs.hpp	2010-06-27 19:25:01 EDT (Sun, 27 Jun 2010)
@@ -1,3 +1,5 @@
 $TEMPLATE[gbtrs.all.TRANS.trait_of]
 AB
+$TEMPLATE[gbtrs.all.KU.trait]
+num_super_sub,AB
 $TEMPLATE[end]
Modified: sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/driver/gbsv.hpp
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/driver/gbsv.hpp	(original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/driver/gbsv.hpp	2010-06-27 19:25:01 EDT (Sun, 27 Jun 2010)
@@ -1,5 +1,7 @@
 $TEMPLATE[gbsv.all.N.trait_of]
 AB
+$TEMPLATE[gbsv.all.KU.trait]
+num_super_sub,AB
 $TEMPLATE[gbsv.all.include_templates]
 lapack_solve_pivot1
 $TEMPLATE[end]
Modified: sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/driver/gbsvx.hpp
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/driver/gbsvx.hpp	(original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/driver/gbsvx.hpp	2010-06-27 19:25:01 EDT (Sun, 27 Jun 2010)
@@ -1,3 +1,5 @@
+$TEMPLATE[gbsvx.all.KU.trait]
+num_super_sub,AB
 $TEMPLATE[gbsvx.real.min_size_iwork.args]
 N
 $TEMPLATE[gbsvx.real.min_size_iwork]