|
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