Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r64961 - in sandbox/numeric_bindings: boost/numeric/bindings/lapack/computational boost/numeric/bindings/lapack/detail libs/numeric/bindings/doc/lapack/computational libs/numeric/bindings/tools/templates/computational
From: rutger_at_[hidden]
Date: 2010-08-23 03:29:00


Author: rutger
Date: 2010-08-23 03:28:54 EDT (Mon, 23 Aug 2010)
New Revision: 64961
URL: http://svn.boost.org/trac/boost/changeset/64961

Log:
Added an override for constness of argument A in ormql

Text files modified:
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ormql.hpp | 21 ++++++++++-----------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unmql.hpp | 21 ++++++++++-----------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/detail/lapack.h | 4 ++--
   sandbox/numeric_bindings/libs/numeric/bindings/doc/lapack/computational/ormql.qbk | 3 +--
   sandbox/numeric_bindings/libs/numeric/bindings/doc/lapack/computational/unmql.qbk | 3 +--
   sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/computational/orm.hpp | 2 ++
   6 files changed, 26 insertions(+), 28 deletions(-)

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ormql.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ormql.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ormql.hpp 2010-08-23 03:28:54 EDT (Mon, 23 Aug 2010)
@@ -56,7 +56,7 @@
 template< typename Side, typename Trans >
 inline std::ptrdiff_t ormql( const Side side, const Trans trans,
         const fortran_int_t m, const fortran_int_t n, const fortran_int_t k,
- const float* a, const fortran_int_t lda, const float* tau, float* c,
+ float* a, const fortran_int_t lda, const float* tau, float* c,
         const fortran_int_t ldc, float* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SORMQL( &lapack_option< Side >::value, &lapack_option<
@@ -73,9 +73,8 @@
 template< typename Side, typename Trans >
 inline std::ptrdiff_t ormql( const Side side, const Trans trans,
         const fortran_int_t m, const fortran_int_t n, const fortran_int_t k,
- const double* a, const fortran_int_t lda, const double* tau,
- double* c, const fortran_int_t ldc, double* work,
- const fortran_int_t lwork ) {
+ double* a, const fortran_int_t lda, const double* tau, double* c,
+ const fortran_int_t ldc, double* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DORMQL( &lapack_option< Side >::value, &lapack_option<
             Trans >::value, &m, &n, &k, a, &lda, tau, c, &ldc, work, &lwork,
@@ -102,7 +101,7 @@
     //
     template< typename Side, typename MatrixA, typename VectorTAU,
             typename MatrixC, typename WORK >
- static std::ptrdiff_t invoke( const Side side, const MatrixA& a,
+ static std::ptrdiff_t invoke( const Side side, MatrixA& a,
             const VectorTAU& tau, MatrixC& c, detail::workspace1<
             WORK > work ) {
         namespace bindings = ::boost::numeric::bindings;
@@ -116,6 +115,7 @@
                 typename bindings::value_type< MatrixA >::type >::type,
                 typename remove_const< typename bindings::value_type<
                 MatrixC >::type >::type >::value) );
+ BOOST_STATIC_ASSERT( (bindings::is_mutable< MatrixA >::value) );
         BOOST_STATIC_ASSERT( (bindings::is_mutable< MatrixC >::value) );
         BOOST_ASSERT( bindings::size(tau) >= bindings::size(tau) );
         BOOST_ASSERT( bindings::size(work.select(real_type())) >=
@@ -147,7 +147,7 @@
     //
     template< typename Side, typename MatrixA, typename VectorTAU,
             typename MatrixC >
- static std::ptrdiff_t invoke( const Side side, const MatrixA& a,
+ static std::ptrdiff_t invoke( const Side side, MatrixA& a,
             const VectorTAU& tau, MatrixC& c, minimal_workspace ) {
         namespace bindings = ::boost::numeric::bindings;
         typedef typename result_of::data_order< MatrixC >::type order;
@@ -166,7 +166,7 @@
     //
     template< typename Side, typename MatrixA, typename VectorTAU,
             typename MatrixC >
- static std::ptrdiff_t invoke( const Side side, const MatrixA& a,
+ static std::ptrdiff_t invoke( const Side side, MatrixA& a,
             const VectorTAU& tau, MatrixC& c, optimal_workspace ) {
         namespace bindings = ::boost::numeric::bindings;
         typedef typename result_of::data_order< MatrixC >::type order;
@@ -212,8 +212,8 @@
         typename MatrixC, typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-ormql( const Side side, const MatrixA& a, const VectorTAU& tau,
- MatrixC& c, Workspace work ) {
+ormql( const Side side, MatrixA& a, const VectorTAU& tau, MatrixC& c,
+ Workspace work ) {
     return ormql_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( side, a, tau, c, work );
 }
@@ -226,8 +226,7 @@
         typename MatrixC >
 inline typename boost::disable_if< detail::is_workspace< MatrixC >,
         std::ptrdiff_t >::type
-ormql( const Side side, const MatrixA& a, const VectorTAU& tau,
- MatrixC& c ) {
+ormql( const Side side, MatrixA& a, const VectorTAU& tau, MatrixC& c ) {
     return ormql_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( side, a, tau, c, optimal_workspace() );
 }

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unmql.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unmql.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unmql.hpp 2010-08-23 03:28:54 EDT (Mon, 23 Aug 2010)
@@ -59,7 +59,7 @@
 template< typename Side, typename Trans >
 inline std::ptrdiff_t unmql( const Side side, const Trans trans,
         const fortran_int_t m, const fortran_int_t n, const fortran_int_t k,
- const float* a, const fortran_int_t lda, const float* tau, float* c,
+ float* a, const fortran_int_t lda, const float* tau, float* c,
         const fortran_int_t ldc, float* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SORMQL( &lapack_option< Side >::value, &lapack_option<
@@ -76,9 +76,8 @@
 template< typename Side, typename Trans >
 inline std::ptrdiff_t unmql( const Side side, const Trans trans,
         const fortran_int_t m, const fortran_int_t n, const fortran_int_t k,
- const double* a, const fortran_int_t lda, const double* tau,
- double* c, const fortran_int_t ldc, double* work,
- const fortran_int_t lwork ) {
+ double* a, const fortran_int_t lda, const double* tau, double* c,
+ const fortran_int_t ldc, double* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DORMQL( &lapack_option< Side >::value, &lapack_option<
             Trans >::value, &m, &n, &k, a, &lda, tau, c, &ldc, work, &lwork,
@@ -149,7 +148,7 @@
     //
     template< typename Side, typename MatrixA, typename VectorTAU,
             typename MatrixC, typename WORK >
- static std::ptrdiff_t invoke( const Side side, const MatrixA& a,
+ static std::ptrdiff_t invoke( const Side side, MatrixA& a,
             const VectorTAU& tau, MatrixC& c, detail::workspace1<
             WORK > work ) {
         namespace bindings = ::boost::numeric::bindings;
@@ -163,6 +162,7 @@
                 typename bindings::value_type< MatrixA >::type >::type,
                 typename remove_const< typename bindings::value_type<
                 MatrixC >::type >::type >::value) );
+ BOOST_STATIC_ASSERT( (bindings::is_mutable< MatrixA >::value) );
         BOOST_STATIC_ASSERT( (bindings::is_mutable< MatrixC >::value) );
         BOOST_ASSERT( bindings::size(tau) >= bindings::size(tau) );
         BOOST_ASSERT( bindings::size(work.select(real_type())) >=
@@ -194,7 +194,7 @@
     //
     template< typename Side, typename MatrixA, typename VectorTAU,
             typename MatrixC >
- static std::ptrdiff_t invoke( const Side side, const MatrixA& a,
+ static std::ptrdiff_t invoke( const Side side, MatrixA& a,
             const VectorTAU& tau, MatrixC& c, minimal_workspace ) {
         namespace bindings = ::boost::numeric::bindings;
         typedef typename result_of::data_order< MatrixC >::type order;
@@ -213,7 +213,7 @@
     //
     template< typename Side, typename MatrixA, typename VectorTAU,
             typename MatrixC >
- static std::ptrdiff_t invoke( const Side side, const MatrixA& a,
+ static std::ptrdiff_t invoke( const Side side, MatrixA& a,
             const VectorTAU& tau, MatrixC& c, optimal_workspace ) {
         namespace bindings = ::boost::numeric::bindings;
         typedef typename result_of::data_order< MatrixC >::type order;
@@ -368,8 +368,8 @@
         typename MatrixC, typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-unmql( const Side side, const MatrixA& a, const VectorTAU& tau,
- MatrixC& c, Workspace work ) {
+unmql( const Side side, MatrixA& a, const VectorTAU& tau, MatrixC& c,
+ Workspace work ) {
     return unmql_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( side, a, tau, c, work );
 }
@@ -382,8 +382,7 @@
         typename MatrixC >
 inline typename boost::disable_if< detail::is_workspace< MatrixC >,
         std::ptrdiff_t >::type
-unmql( const Side side, const MatrixA& a, const VectorTAU& tau,
- MatrixC& c ) {
+unmql( const Side side, MatrixA& a, const VectorTAU& tau, MatrixC& c ) {
     return unmql_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( side, a, tau, c, optimal_workspace() );
 }

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/detail/lapack.h
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/detail/lapack.h (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/detail/lapack.h 2010-08-23 03:28:54 EDT (Mon, 23 Aug 2010)
@@ -239,12 +239,12 @@
 // Value-type variants of ormql
 void LAPACK_SORMQL( const char* side, const char* trans,
         const fortran_int_t* m, const fortran_int_t* n,
- const fortran_int_t* k, const float* a, const fortran_int_t* lda,
+ const fortran_int_t* k, float* a, const fortran_int_t* lda,
         const float* tau, float* c, const fortran_int_t* ldc, float* work,
         const fortran_int_t* lwork, fortran_int_t* info );
 void LAPACK_DORMQL( const char* side, const char* trans,
         const fortran_int_t* m, const fortran_int_t* n,
- const fortran_int_t* k, const double* a, const fortran_int_t* lda,
+ const fortran_int_t* k, double* a, const fortran_int_t* lda,
         const double* tau, double* c, const fortran_int_t* ldc, double* work,
         const fortran_int_t* lwork, fortran_int_t* info );
 

Modified: sandbox/numeric_bindings/libs/numeric/bindings/doc/lapack/computational/ormql.qbk
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/doc/lapack/computational/ormql.qbk (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/doc/lapack/computational/ormql.qbk 2010-08-23 03:28:54 EDT (Mon, 23 Aug 2010)
@@ -9,8 +9,7 @@
 [heading Prototype]
 There is one prototype of `ormql` available, please see below.
 ``
-ormql( const Side side, const MatrixA& a, const VectorTAU& tau,
- MatrixC& c );
+ormql( const Side side, MatrixA& a, const VectorTAU& tau, MatrixC& c );
 ``
 
 

Modified: sandbox/numeric_bindings/libs/numeric/bindings/doc/lapack/computational/unmql.qbk
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/doc/lapack/computational/unmql.qbk (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/doc/lapack/computational/unmql.qbk 2010-08-23 03:28:54 EDT (Mon, 23 Aug 2010)
@@ -9,8 +9,7 @@
 [heading Prototype]
 There are two prototypes of `unmql` available, please see below.
 ``
-unmql( const Side side, const MatrixA& a, const VectorTAU& tau,
- MatrixC& c );
+unmql( const Side side, MatrixA& a, const VectorTAU& tau, MatrixC& c );
 ``
 
 ``

Modified: sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/computational/orm.hpp
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/computational/orm.hpp (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/tools/templates/computational/orm.hpp 2010-08-23 03:28:54 EDT (Mon, 23 Aug 2010)
@@ -51,6 +51,8 @@
 #include <boost/numeric/bindings/detail/if_left.hpp>
 $TEMPLATE[ormtr.all.min_size_work]
 return std::max< $INTEGER_TYPE >( 1, bindings::detail::if_left( side, n, m ) );
+$TEMPLATE[ormql.all.A.io]
+input;output
 $TEMPLATE[ormql.all.K.trait]
 size,TAU
 $TEMPLATE[ormql.all.min_size_work.args]


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