Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r52375 - in sandbox/numeric_bindings: boost/numeric/bindings/lapack/computational boost/numeric/bindings/lapack/driver libs/numeric/bindings/tools
From: rutger_at_[hidden]
Date: 2009-04-14 02:36:04


Author: rutger
Date: 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
New Revision: 52375
URL: http://svn.boost.org/trac/boost/changeset/52375

Log:
Improved real_type argument classification for lapack

Text files modified:
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbcon.hpp | 16 ++++++++++------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbequ.hpp | 11 +++++++----
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gecon.hpp | 13 ++++++++-----
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/geequ.hpp | 9 ++++++---
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggsvp.hpp | 21 ++++++++++++---------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hecon.hpp | 13 ++++++++-----
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/lacon.hpp | 9 +++++----
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/laebz.hpp | 26 ++++++++++++++++----------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/larz.hpp | 25 +++++++++++++++++++++++++
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/latrs.hpp | 4 ++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbcon.hpp | 16 ++++++++++------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbequ.hpp | 8 +++++---
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pocon.hpp | 16 ++++++++++------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/poequ.hpp | 6 ++++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/stebz.hpp | 34 ++++++++++++++++++++--------------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/stegr.hpp | 27 ++++++++++++++++-----------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sycon.hpp | 13 ++++++++-----
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tbcon.hpp | 7 ++++---
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsen.hpp | 32 ++++++++++++++++++++------------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsja.hpp | 16 ++++++++++------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsyl.hpp | 13 ++++++++-----
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trcon.hpp | 10 ++++++----
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trsen.hpp | 16 ++++++++++------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trsyl.hpp | 5 +++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gbsvx.hpp | 10 ++++++----
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/geesx.hpp | 29 ++++++++++++++++++-----------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/geevx.hpp | 20 ++++++++++++--------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gelsd.hpp | 9 +++++----
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gelss.hpp | 9 +++++----
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gelsy.hpp | 9 +++++----
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gesvx.hpp | 13 ++++++++-----
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggevx.hpp | 32 ++++++++++++++++++++------------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gtsvx.hpp | 10 ++++++----
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbevx.hpp | 27 ++++++++++++++++-----------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbgvx.hpp | 31 ++++++++++++++++++-------------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/heevr.hpp | 27 ++++++++++++++++-----------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/heevx.hpp | 27 ++++++++++++++++-----------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hegvx.hpp | 27 ++++++++++++++++-----------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hesvx.hpp | 10 ++++++----
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpevx.hpp | 30 ++++++++++++++++++------------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpgvx.hpp | 27 ++++++++++++++++-----------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpsvx.hpp | 10 ++++++----
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/lalsd.hpp | 9 +++++----
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/pbsvx.hpp | 13 ++++++++-----
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/posvx.hpp | 10 ++++++----
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ppsvx.hpp | 10 ++++++----
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ptsvx.hpp | 10 ++++++----
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbevx.hpp | 27 ++++++++++++++++-----------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbgvx.hpp | 31 ++++++++++++++++++-------------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spevx.hpp | 30 ++++++++++++++++++------------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spgvx.hpp | 27 ++++++++++++++++-----------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spsvx.hpp | 10 ++++++----
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/stevr.hpp | 27 ++++++++++++++++-----------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/stevx.hpp | 27 ++++++++++++++++-----------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/syevr.hpp | 27 ++++++++++++++++-----------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/syevx.hpp | 27 ++++++++++++++++-----------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sygvx.hpp | 27 ++++++++++++++++-----------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sysvx.hpp | 10 ++++++----
   sandbox/numeric_bindings/libs/numeric/bindings/tools/netlib.py | 4 ++--
   59 files changed, 639 insertions(+), 410 deletions(-)

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbcon.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbcon.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbcon.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -201,9 +201,11 @@
 template< typename MatrixAB, typename VectorIPIV, typename Workspace >
 inline integer_t gbcon( char const norm, integer_t const n,
         integer_t const kl, integer_t const ku, MatrixAB& ab,
- VectorIPIV& ipiv, typename traits::matrix_traits<
- MatrixAB >::value_type const anorm, typename traits::matrix_traits<
- MatrixAB >::value_type& rcond, Workspace work ) {
+ VectorIPIV& ipiv, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type const anorm,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type& rcond, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixAB >::value_type value_type;
     integer_t info(0);
     gbcon_impl< value_type >::invoke( norm, n, kl, ku, ab, ipiv, anorm,
@@ -215,9 +217,11 @@
 template< typename MatrixAB, typename VectorIPIV >
 inline integer_t gbcon( char const norm, integer_t const n,
         integer_t const kl, integer_t const ku, MatrixAB& ab,
- VectorIPIV& ipiv, typename traits::matrix_traits<
- MatrixAB >::value_type const anorm, typename traits::matrix_traits<
- MatrixAB >::value_type& rcond ) {
+ VectorIPIV& ipiv, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type const anorm,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type& rcond ) {
     typedef typename traits::matrix_traits< MatrixAB >::value_type value_type;
     integer_t info(0);
     gbcon_impl< value_type >::invoke( norm, n, kl, ku, ab, ipiv, anorm,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbequ.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbequ.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbequ.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -130,10 +130,13 @@
 template< typename MatrixAB, typename VectorR, typename VectorC >
 inline integer_t gbequ( integer_t const m, integer_t const n,
         integer_t const kl, integer_t const ku, MatrixAB& ab, VectorR& r,
- VectorC& c, typename traits::matrix_traits<
- MatrixAB >::value_type& rowcnd, typename traits::matrix_traits<
- MatrixAB >::value_type& colcnd, typename traits::matrix_traits<
- MatrixAB >::value_type& amax ) {
+ VectorC& c, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type& rowcnd,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type& colcnd,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type& amax ) {
     typedef typename traits::matrix_traits< MatrixAB >::value_type value_type;
     integer_t info(0);
     gbequ_impl< value_type >::invoke( m, n, kl, ku, ab, r, c, rowcnd,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gecon.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gecon.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gecon.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -182,9 +182,10 @@
 // template function to call gecon
 template< typename MatrixA, typename Workspace >
 inline integer_t gecon( char const norm, MatrixA& a,
- typename traits::matrix_traits< MatrixA >::value_type const anorm,
- typename traits::matrix_traits< MatrixA >::value_type& rcond,
- Workspace work ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const anorm,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& rcond, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     gecon_impl< value_type >::invoke( norm, a, anorm, rcond, info, work );
@@ -194,8 +195,10 @@
 // template function to call gecon, default workspace type
 template< typename MatrixA >
 inline integer_t gecon( char const norm, MatrixA& a,
- typename traits::matrix_traits< MatrixA >::value_type const anorm,
- typename traits::matrix_traits< MatrixA >::value_type& rcond ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const anorm,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& rcond ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     gecon_impl< value_type >::invoke( norm, a, anorm, rcond, info,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/geequ.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/geequ.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/geequ.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -119,9 +119,12 @@
 // template function to call geequ
 template< typename MatrixA, typename VectorR, typename VectorC >
 inline integer_t geequ( MatrixA& a, VectorR& r, VectorC& c,
- typename traits::matrix_traits< MatrixA >::value_type& rowcnd,
- typename traits::matrix_traits< MatrixA >::value_type& colcnd,
- typename traits::matrix_traits< MatrixA >::value_type& amax ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& rowcnd,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& colcnd,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& amax ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     geequ_impl< value_type >::invoke( a, r, c, rowcnd, colcnd, amax,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggsvp.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggsvp.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggsvp.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -312,11 +312,12 @@
 template< typename MatrixA, typename MatrixB, typename MatrixU,
         typename MatrixV, typename MatrixQ, typename Workspace >
 inline integer_t ggsvp( char const jobu, char const jobv,
- char const jobq, MatrixA& a, MatrixB& b,
- typename traits::matrix_traits< MatrixA >::value_type const tola,
- typename traits::matrix_traits< MatrixA >::value_type const tolb,
- integer_t& k, integer_t& l, MatrixU& u, MatrixV& v, MatrixQ& q,
- Workspace work ) {
+ char const jobq, MatrixA& a, MatrixB& b, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const tola,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const tolb, integer_t& k,
+ integer_t& l, MatrixU& u, MatrixV& v, MatrixQ& q, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     ggsvp_impl< value_type >::invoke( jobu, jobv, jobq, a, b, tola, tolb,
@@ -328,10 +329,12 @@
 template< typename MatrixA, typename MatrixB, typename MatrixU,
         typename MatrixV, typename MatrixQ >
 inline integer_t ggsvp( char const jobu, char const jobv,
- char const jobq, MatrixA& a, MatrixB& b,
- typename traits::matrix_traits< MatrixA >::value_type const tola,
- typename traits::matrix_traits< MatrixA >::value_type const tolb,
- integer_t& k, integer_t& l, MatrixU& u, MatrixV& v, MatrixQ& q ) {
+ char const jobq, MatrixA& a, MatrixB& b, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const tola,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const tolb, integer_t& k,
+ integer_t& l, MatrixU& u, MatrixV& v, MatrixQ& q ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     ggsvp_impl< value_type >::invoke( jobu, jobv, jobq, a, b, tola, tolb,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hecon.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hecon.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hecon.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -102,9 +102,10 @@
 // template function to call hecon
 template< typename MatrixA, typename VectorIPIV, typename Workspace >
 inline integer_t hecon( char const uplo, MatrixA& a, VectorIPIV& ipiv,
- typename traits::matrix_traits< MatrixA >::value_type const anorm,
- typename traits::matrix_traits< MatrixA >::value_type& rcond,
- Workspace work ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const anorm,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& rcond, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     hecon_impl< value_type >::invoke( uplo, a, ipiv, anorm, rcond, info,
@@ -115,8 +116,10 @@
 // template function to call hecon, default workspace type
 template< typename MatrixA, typename VectorIPIV >
 inline integer_t hecon( char const uplo, MatrixA& a, VectorIPIV& ipiv,
- typename traits::matrix_traits< MatrixA >::value_type const anorm,
- typename traits::matrix_traits< MatrixA >::value_type& rcond ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const anorm,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& rcond ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     hecon_impl< value_type >::invoke( uplo, a, ipiv, anorm, rcond, info,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/lacon.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/lacon.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/lacon.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -148,8 +148,9 @@
 // template function to call lacon
 template< typename VectorX, typename Workspace >
 inline integer_t lacon( integer_t const n, VectorX& x,
- typename traits::vector_traits< VectorX >::value_type& est,
- integer_t& kase, Workspace work ) {
+ typename traits::type_traits< typename traits::vector_traits<
+ VectorX >::value_type >::real_type& est, integer_t& kase,
+ Workspace work ) {
     typedef typename traits::vector_traits< VectorX >::value_type value_type;
     integer_t info(0);
     lacon_impl< value_type >::invoke( n, x, est, kase, work );
@@ -159,8 +160,8 @@
 // template function to call lacon, default workspace type
 template< typename VectorX >
 inline integer_t lacon( integer_t const n, VectorX& x,
- typename traits::vector_traits< VectorX >::value_type& est,
- integer_t& kase ) {
+ typename traits::type_traits< typename traits::vector_traits<
+ VectorX >::value_type >::real_type& est, integer_t& kase ) {
     typedef typename traits::vector_traits< VectorX >::value_type value_type;
     integer_t info(0);
     lacon_impl< value_type >::invoke( n, x, est, kase,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/laebz.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/laebz.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/laebz.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -153,11 +153,14 @@
         typename MatrixNAB, typename Workspace >
 inline integer_t laebz( integer_t const ijob, integer_t const nitmax,
         integer_t const n, integer_t const minp, integer_t const nbmin,
- typename traits::vector_traits< VectorD >::value_type const abstol,
- typename traits::vector_traits< VectorD >::value_type const reltol,
- typename traits::vector_traits< VectorD >::value_type const pivmin,
- VectorD& d, VectorE& e, VectorE2& e2, VectorNVAL& nval, MatrixAB& ab,
- VectorC& c, integer_t& mout, MatrixNAB& nab, Workspace work ) {
+ typename traits::type_traits< typename traits::vector_traits<
+ VectorD >::value_type >::real_type const abstol,
+ typename traits::type_traits< typename traits::vector_traits<
+ VectorD >::value_type >::real_type const reltol,
+ typename traits::type_traits< typename traits::vector_traits<
+ VectorD >::value_type >::real_type const pivmin, VectorD& d,
+ VectorE& e, VectorE2& e2, VectorNVAL& nval, MatrixAB& ab, VectorC& c,
+ integer_t& mout, MatrixNAB& nab, Workspace work ) {
     typedef typename traits::vector_traits< VectorD >::value_type value_type;
     integer_t info(0);
     laebz_impl< value_type >::invoke( ijob, nitmax, n, minp, nbmin,
@@ -172,11 +175,14 @@
         typename MatrixNAB >
 inline integer_t laebz( integer_t const ijob, integer_t const nitmax,
         integer_t const n, integer_t const minp, integer_t const nbmin,
- typename traits::vector_traits< VectorD >::value_type const abstol,
- typename traits::vector_traits< VectorD >::value_type const reltol,
- typename traits::vector_traits< VectorD >::value_type const pivmin,
- VectorD& d, VectorE& e, VectorE2& e2, VectorNVAL& nval, MatrixAB& ab,
- VectorC& c, integer_t& mout, MatrixNAB& nab ) {
+ typename traits::type_traits< typename traits::vector_traits<
+ VectorD >::value_type >::real_type const abstol,
+ typename traits::type_traits< typename traits::vector_traits<
+ VectorD >::value_type >::real_type const reltol,
+ typename traits::type_traits< typename traits::vector_traits<
+ VectorD >::value_type >::real_type const pivmin, VectorD& d,
+ VectorE& e, VectorE2& e2, VectorNVAL& nval, MatrixAB& ab, VectorC& c,
+ integer_t& mout, MatrixNAB& nab ) {
     typedef typename traits::vector_traits< VectorD >::value_type value_type;
     integer_t info(0);
     laebz_impl< value_type >::invoke( ijob, nitmax, n, minp, nbmin,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/larz.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/larz.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/larz.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -182,6 +182,31 @@
 // template function to call larz
 template< typename VectorV, typename MatrixC, typename Workspace >
 inline integer_t larz( char const side, integer_t const l, VectorV& v,
+ integer_t const incv, typename traits::type_traits<
+ typename traits::vector_traits<
+ VectorV >::value_type >::real_type const tau, MatrixC& c,
+ Workspace work ) {
+ typedef typename traits::vector_traits< VectorV >::value_type value_type;
+ integer_t info(0);
+ larz_impl< value_type >::invoke( side, l, v, incv, tau, c, work );
+ return info;
+}
+
+// template function to call larz, default workspace type
+template< typename VectorV, typename MatrixC >
+inline integer_t larz( char const side, integer_t const l, VectorV& v,
+ integer_t const incv, typename traits::type_traits<
+ typename traits::vector_traits<
+ VectorV >::value_type >::real_type const tau, MatrixC& c ) {
+ typedef typename traits::vector_traits< VectorV >::value_type value_type;
+ integer_t info(0);
+ larz_impl< value_type >::invoke( side, l, v, incv, tau, c,
+ optimal_workspace() );
+ return info;
+}
+// template function to call larz
+template< typename VectorV, typename MatrixC, typename Workspace >
+inline integer_t larz( char const side, integer_t const l, VectorV& v,
         integer_t const incv, typename traits::vector_traits<
         VectorV >::value_type const tau, MatrixC& c, Workspace work ) {
     typedef typename traits::vector_traits< VectorV >::value_type value_type;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/latrs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/latrs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/latrs.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -138,8 +138,8 @@
 template< typename MatrixA, typename VectorX, typename VectorCNORM >
 inline integer_t latrs( char const uplo, char const trans,
         char const diag, char const normin, MatrixA& a, VectorX& x,
- typename traits::matrix_traits< MatrixA >::value_type& scale,
- VectorCNORM& cnorm ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& scale, VectorCNORM& cnorm ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     latrs_impl< value_type >::invoke( uplo, trans, diag, normin, a, x,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbcon.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbcon.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbcon.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -182,9 +182,11 @@
 // template function to call pbcon
 template< typename MatrixAB, typename Workspace >
 inline integer_t pbcon( char const uplo, integer_t const n,
- integer_t const kd, MatrixAB& ab, typename traits::matrix_traits<
- MatrixAB >::value_type const anorm, typename traits::matrix_traits<
- MatrixAB >::value_type& rcond, Workspace work ) {
+ integer_t const kd, MatrixAB& ab, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type const anorm,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type& rcond, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixAB >::value_type value_type;
     integer_t info(0);
     pbcon_impl< value_type >::invoke( uplo, n, kd, ab, anorm, rcond,
@@ -195,9 +197,11 @@
 // template function to call pbcon, default workspace type
 template< typename MatrixAB >
 inline integer_t pbcon( char const uplo, integer_t const n,
- integer_t const kd, MatrixAB& ab, typename traits::matrix_traits<
- MatrixAB >::value_type const anorm, typename traits::matrix_traits<
- MatrixAB >::value_type& rcond ) {
+ integer_t const kd, MatrixAB& ab, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type const anorm,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type& rcond ) {
     typedef typename traits::matrix_traits< MatrixAB >::value_type value_type;
     integer_t info(0);
     pbcon_impl< value_type >::invoke( uplo, n, kd, ab, anorm, rcond,

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-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -113,9 +113,11 @@
 // template function to call pbequ
 template< typename MatrixAB, typename VectorS >
 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 ) {
+ MatrixAB& ab, VectorS& s, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type& scond,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type& amax ) {
     typedef typename traits::matrix_traits< MatrixAB >::value_type value_type;
     integer_t info(0);
     pbequ_impl< value_type >::invoke( n, kd, ab, s, scond, amax, info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pocon.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pocon.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pocon.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -179,9 +179,11 @@
 
 // template function to call pocon
 template< typename MatrixA, typename Workspace >
-inline integer_t pocon( MatrixA& a, typename traits::matrix_traits<
- MatrixA >::value_type const anorm, typename traits::matrix_traits<
- MatrixA >::value_type& rcond, Workspace work ) {
+inline integer_t pocon( MatrixA& a, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const anorm,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& rcond, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     pocon_impl< value_type >::invoke( a, anorm, rcond, info, work );
@@ -190,9 +192,11 @@
 
 // template function to call pocon, default workspace type
 template< typename MatrixA >
-inline integer_t pocon( MatrixA& a, typename traits::matrix_traits<
- MatrixA >::value_type const anorm, typename traits::matrix_traits<
- MatrixA >::value_type& rcond ) {
+inline integer_t pocon( MatrixA& a, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const anorm,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& rcond ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     pocon_impl< value_type >::invoke( a, anorm, rcond, info,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/poequ.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/poequ.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/poequ.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -107,8 +107,10 @@
 // template function to call poequ
 template< typename MatrixA, typename VectorS >
 inline integer_t poequ( MatrixA& a, VectorS& s,
- typename traits::matrix_traits< MatrixA >::value_type& scond,
- typename traits::matrix_traits< MatrixA >::value_type& amax ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& scond,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& amax ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     poequ_impl< value_type >::invoke( a, s, scond, amax, info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/stebz.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/stebz.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/stebz.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -141,13 +141,16 @@
 template< typename VectorD, typename VectorE, typename VectorW,
         typename VectorIBLOCK, typename VectorISPLIT, typename Workspace >
 inline integer_t stebz( char const range, char const order,
- integer_t const n, typename traits::vector_traits<
- VectorD >::value_type const vl, typename traits::vector_traits<
- VectorD >::value_type const vu, integer_t const il,
- integer_t const iu, typename traits::vector_traits<
- VectorD >::value_type const abstol, VectorD& d, VectorE& e,
- integer_t& m, integer_t& nsplit, VectorW& w, VectorIBLOCK& iblock,
- VectorISPLIT& isplit, Workspace work ) {
+ integer_t const n, typename traits::type_traits<
+ typename traits::vector_traits<
+ VectorD >::value_type >::real_type const vl,
+ typename traits::type_traits< typename traits::vector_traits<
+ VectorD >::value_type >::real_type const vu, integer_t const il,
+ integer_t const iu, typename traits::type_traits<
+ typename traits::vector_traits<
+ VectorD >::value_type >::real_type const abstol, VectorD& d,
+ VectorE& e, integer_t& m, integer_t& nsplit, VectorW& w,
+ VectorIBLOCK& iblock, VectorISPLIT& isplit, Workspace work ) {
     typedef typename traits::vector_traits< VectorD >::value_type value_type;
     integer_t info(0);
     stebz_impl< value_type >::invoke( range, order, n, vl, vu, il, iu,
@@ -159,13 +162,16 @@
 template< typename VectorD, typename VectorE, typename VectorW,
         typename VectorIBLOCK, typename VectorISPLIT >
 inline integer_t stebz( char const range, char const order,
- integer_t const n, typename traits::vector_traits<
- VectorD >::value_type const vl, typename traits::vector_traits<
- VectorD >::value_type const vu, integer_t const il,
- integer_t const iu, typename traits::vector_traits<
- VectorD >::value_type const abstol, VectorD& d, VectorE& e,
- integer_t& m, integer_t& nsplit, VectorW& w, VectorIBLOCK& iblock,
- VectorISPLIT& isplit ) {
+ integer_t const n, typename traits::type_traits<
+ typename traits::vector_traits<
+ VectorD >::value_type >::real_type const vl,
+ typename traits::type_traits< typename traits::vector_traits<
+ VectorD >::value_type >::real_type const vu, integer_t const il,
+ integer_t const iu, typename traits::type_traits<
+ typename traits::vector_traits<
+ VectorD >::value_type >::real_type const abstol, VectorD& d,
+ VectorE& e, integer_t& m, integer_t& nsplit, VectorW& w,
+ VectorIBLOCK& iblock, VectorISPLIT& isplit ) {
     typedef typename traits::vector_traits< VectorD >::value_type value_type;
     integer_t info(0);
     stebz_impl< value_type >::invoke( range, order, n, vl, vu, il, iu,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/stegr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/stegr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/stegr.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -285,12 +285,14 @@
         typename MatrixZ, typename VectorISUPPZ, typename Workspace >
 inline integer_t stegr( char const jobz, char const range,
         integer_t const n, VectorD& d, VectorE& e,
- typename traits::matrix_traits< MatrixZ >::value_type const vl,
- typename traits::matrix_traits< MatrixZ >::value_type const vu,
- integer_t const il, integer_t const iu,
- typename traits::matrix_traits< MatrixZ >::value_type const abstol,
- integer_t& m, VectorW& w, MatrixZ& z, VectorISUPPZ& isuppz,
- Workspace work ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixZ >::value_type >::real_type const vl,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixZ >::value_type >::real_type const vu, integer_t const il,
+ integer_t const iu, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixZ >::value_type >::real_type const abstol, integer_t& m,
+ VectorW& w, MatrixZ& z, VectorISUPPZ& isuppz, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixZ >::value_type value_type;
     integer_t info(0);
     stegr_impl< value_type >::invoke( jobz, range, n, d, e, vl, vu, il,
@@ -303,11 +305,14 @@
         typename MatrixZ, typename VectorISUPPZ >
 inline integer_t stegr( char const jobz, char const range,
         integer_t const n, VectorD& d, VectorE& e,
- typename traits::matrix_traits< MatrixZ >::value_type const vl,
- typename traits::matrix_traits< MatrixZ >::value_type const vu,
- integer_t const il, integer_t const iu,
- typename traits::matrix_traits< MatrixZ >::value_type const abstol,
- integer_t& m, VectorW& w, MatrixZ& z, VectorISUPPZ& isuppz ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixZ >::value_type >::real_type const vl,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixZ >::value_type >::real_type const vu, integer_t const il,
+ integer_t const iu, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixZ >::value_type >::real_type const abstol, integer_t& m,
+ VectorW& w, MatrixZ& z, VectorISUPPZ& isuppz ) {
     typedef typename traits::matrix_traits< MatrixZ >::value_type value_type;
     integer_t info(0);
     stegr_impl< value_type >::invoke( jobz, range, n, d, e, vl, vu, il,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sycon.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sycon.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sycon.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -181,9 +181,10 @@
 // template function to call sycon
 template< typename MatrixA, typename VectorIPIV, typename Workspace >
 inline integer_t sycon( char const uplo, MatrixA& a, VectorIPIV& ipiv,
- typename traits::matrix_traits< MatrixA >::value_type const anorm,
- typename traits::matrix_traits< MatrixA >::value_type& rcond,
- Workspace work ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const anorm,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& rcond, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     sycon_impl< value_type >::invoke( uplo, a, ipiv, anorm, rcond, info,
@@ -194,8 +195,10 @@
 // template function to call sycon, default workspace type
 template< typename MatrixA, typename VectorIPIV >
 inline integer_t sycon( char const uplo, MatrixA& a, VectorIPIV& ipiv,
- typename traits::matrix_traits< MatrixA >::value_type const anorm,
- typename traits::matrix_traits< MatrixA >::value_type& rcond ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const anorm,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& rcond ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     sycon_impl< value_type >::invoke( uplo, a, ipiv, anorm, rcond, info,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tbcon.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tbcon.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tbcon.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -191,8 +191,8 @@
 template< typename MatrixAB, typename Workspace >
 inline integer_t tbcon( char const norm, char const uplo,
         char const diag, integer_t const n, integer_t const kd, MatrixAB& ab,
- typename traits::matrix_traits< MatrixAB >::value_type& rcond,
- Workspace work ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type& rcond, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixAB >::value_type value_type;
     integer_t info(0);
     tbcon_impl< value_type >::invoke( norm, uplo, diag, n, kd, ab, rcond,
@@ -204,7 +204,8 @@
 template< typename MatrixAB >
 inline integer_t tbcon( char const norm, char const uplo,
         char const diag, integer_t const n, integer_t const kd, MatrixAB& ab,
- typename traits::matrix_traits< MatrixAB >::value_type& rcond ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type& rcond ) {
     typedef typename traits::matrix_traits< MatrixAB >::value_type value_type;
     integer_t info(0);
     tbcon_impl< value_type >::invoke( norm, uplo, diag, n, kd, ab, rcond,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsen.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsen.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsen.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -337,9 +337,11 @@
         logical_t const wantz, VectorSELECT& select, integer_t const n,
         MatrixA& a, MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
         VectorBETA& beta, MatrixQ& q, MatrixZ& z, integer_t& m,
- typename traits::matrix_traits< MatrixA >::value_type& pl,
- typename traits::matrix_traits< MatrixA >::value_type& pr,
- VectorDIF& dif, Workspace work ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& pl, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& pr, VectorDIF& dif,
+ Workspace work ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     tgsen_impl< value_type >::invoke( ijob, wantq, wantz, select, n, a,
@@ -355,9 +357,10 @@
         logical_t const wantz, VectorSELECT& select, integer_t const n,
         MatrixA& a, MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
         VectorBETA& beta, MatrixQ& q, MatrixZ& z, integer_t& m,
- typename traits::matrix_traits< MatrixA >::value_type& pl,
- typename traits::matrix_traits< MatrixA >::value_type& pr,
- VectorDIF& dif ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& pl, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& pr, VectorDIF& dif ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     tgsen_impl< value_type >::invoke( ijob, wantq, wantz, select, n, a,
@@ -372,9 +375,12 @@
 inline integer_t tgsen( integer_t const ijob, logical_t const wantq,
         logical_t const wantz, VectorSELECT& select, integer_t const n,
         MatrixA& a, MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
- MatrixQ& q, MatrixZ& z, integer_t& m, typename traits::matrix_traits<
- MatrixA >::value_type& pl, typename traits::matrix_traits<
- MatrixA >::value_type& pr, VectorDIF& dif, Workspace work ) {
+ MatrixQ& q, MatrixZ& z, integer_t& m, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& pl, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& pr, VectorDIF& dif,
+ Workspace work ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     tgsen_impl< value_type >::invoke( ijob, wantq, wantz, select, n, a,
@@ -389,9 +395,11 @@
 inline integer_t tgsen( integer_t const ijob, logical_t const wantq,
         logical_t const wantz, VectorSELECT& select, integer_t const n,
         MatrixA& a, MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
- MatrixQ& q, MatrixZ& z, integer_t& m, typename traits::matrix_traits<
- MatrixA >::value_type& pl, typename traits::matrix_traits<
- MatrixA >::value_type& pr, VectorDIF& dif ) {
+ MatrixQ& q, MatrixZ& z, integer_t& m, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& pl, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& pr, VectorDIF& dif ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     tgsen_impl< value_type >::invoke( ijob, wantq, wantz, select, n, a,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsja.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsja.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsja.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -288,9 +288,11 @@
         typename MatrixQ, typename Workspace >
 inline integer_t tgsja( char const jobu, char const jobv,
         char const jobq, integer_t const k, integer_t const l, MatrixA& a,
- MatrixB& b, typename traits::matrix_traits<
- MatrixA >::value_type const tola, typename traits::matrix_traits<
- MatrixA >::value_type const tolb, VectorALPHA& alpha,
+ MatrixB& b, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const tola,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const tolb, VectorALPHA& alpha,
         VectorBETA& beta, MatrixU& u, MatrixV& v, MatrixQ& q,
         integer_t& ncycle, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
@@ -306,9 +308,11 @@
         typename MatrixQ >
 inline integer_t tgsja( char const jobu, char const jobv,
         char const jobq, integer_t const k, integer_t const l, MatrixA& a,
- MatrixB& b, typename traits::matrix_traits<
- MatrixA >::value_type const tola, typename traits::matrix_traits<
- MatrixA >::value_type const tolb, VectorALPHA& alpha,
+ MatrixB& b, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const tola,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const tolb, VectorALPHA& alpha,
         VectorBETA& beta, MatrixU& u, MatrixV& v, MatrixQ& q,
         integer_t& ncycle ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsyl.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsyl.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsyl.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -289,9 +289,10 @@
 inline integer_t tgsyl( char const trans, integer_t const ijob,
         integer_t const m, integer_t const n, MatrixA& a, MatrixB& b,
         MatrixC& c, MatrixD& d, MatrixE& e, MatrixF& f,
- typename traits::matrix_traits< MatrixA >::value_type& scale,
- typename traits::matrix_traits< MatrixA >::value_type& dif,
- Workspace work ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& scale,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& dif, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     tgsyl_impl< value_type >::invoke( trans, ijob, m, n, a, b, c, d, e,
@@ -305,8 +306,10 @@
 inline integer_t tgsyl( char const trans, integer_t const ijob,
         integer_t const m, integer_t const n, MatrixA& a, MatrixB& b,
         MatrixC& c, MatrixD& d, MatrixE& e, MatrixF& f,
- typename traits::matrix_traits< MatrixA >::value_type& scale,
- typename traits::matrix_traits< MatrixA >::value_type& dif ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& scale,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& dif ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     tgsyl_impl< value_type >::invoke( trans, ijob, m, n, a, b, c, d, e,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trcon.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trcon.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trcon.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -188,8 +188,9 @@
 // template function to call trcon
 template< typename MatrixA, typename Workspace >
 inline integer_t trcon( char const norm, char const uplo,
- char const diag, MatrixA& a, typename traits::matrix_traits<
- MatrixA >::value_type& rcond, Workspace work ) {
+ char const diag, MatrixA& a, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& rcond, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     trcon_impl< value_type >::invoke( norm, uplo, diag, a, rcond, info,
@@ -200,8 +201,9 @@
 // template function to call trcon, default workspace type
 template< typename MatrixA >
 inline integer_t trcon( char const norm, char const uplo,
- char const diag, MatrixA& a, typename traits::matrix_traits<
- MatrixA >::value_type& rcond ) {
+ char const diag, MatrixA& a, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& rcond ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     trcon_impl< value_type >::invoke( norm, uplo, diag, a, rcond, info,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trsen.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trsen.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trsen.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -136,9 +136,11 @@
         typename VectorW, typename Workspace >
 inline integer_t trsen( char const job, char const compq,
         VectorSELECT& select, MatrixT& t, MatrixQ& q, VectorW& w,
- integer_t& m, typename traits::vector_traits<
- VectorSELECT >::value_type& s, typename traits::vector_traits<
- VectorSELECT >::value_type& sep, Workspace work ) {
+ integer_t& m, typename traits::type_traits<
+ typename traits::vector_traits<
+ VectorSELECT >::value_type >::real_type& s,
+ typename traits::type_traits< typename traits::vector_traits<
+ VectorSELECT >::value_type >::real_type& sep, Workspace work ) {
     typedef typename traits::vector_traits<
             VectorSELECT >::value_type value_type;
     integer_t info(0);
@@ -152,9 +154,11 @@
         typename VectorW >
 inline integer_t trsen( char const job, char const compq,
         VectorSELECT& select, MatrixT& t, MatrixQ& q, VectorW& w,
- integer_t& m, typename traits::vector_traits<
- VectorSELECT >::value_type& s, typename traits::vector_traits<
- VectorSELECT >::value_type& sep ) {
+ integer_t& m, typename traits::type_traits<
+ typename traits::vector_traits<
+ VectorSELECT >::value_type >::real_type& s,
+ typename traits::type_traits< typename traits::vector_traits<
+ VectorSELECT >::value_type >::real_type& sep ) {
     typedef typename traits::vector_traits<
             VectorSELECT >::value_type value_type;
     integer_t info(0);

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trsyl.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trsyl.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trsyl.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -143,8 +143,9 @@
 template< typename MatrixA, typename MatrixB, typename MatrixC >
 inline integer_t trsyl( char const trana, char const tranb,
         integer_t const isgn, integer_t const m, integer_t const n,
- MatrixA& a, MatrixB& b, MatrixC& c, typename traits::matrix_traits<
- MatrixA >::value_type& scale ) {
+ MatrixA& a, MatrixB& b, MatrixC& c, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& scale ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     trsyl_impl< value_type >::invoke( trana, tranb, isgn, m, n, a, b, c,

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 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -317,8 +317,9 @@
         integer_t const n, integer_t const kl, integer_t const ku,
         MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
         VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename traits::matrix_traits< MatrixAB >::value_type& rcond,
- VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixAB >::value_type value_type;
     integer_t info(0);
     gbsvx_impl< value_type >::invoke( fact, trans, n, kl, ku, ab, afb,
@@ -334,8 +335,9 @@
         integer_t const n, integer_t const kl, integer_t const ku,
         MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
         VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename traits::matrix_traits< MatrixAB >::value_type& rcond,
- VectorFERR& ferr, VectorBERR& berr ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     typedef typename traits::matrix_traits< MatrixAB >::value_type value_type;
     integer_t info(0);
     gbsvx_impl< value_type >::invoke( fact, trans, n, kl, ku, ab, afb,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/geesx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/geesx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/geesx.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -314,9 +314,10 @@
 inline integer_t geesx( char const jobvs, char const sort,
         logical_t* select, char const sense, MatrixA& a, integer_t& sdim,
         VectorWR& wr, VectorWI& wi, MatrixVS& vs,
- typename traits::matrix_traits< MatrixA >::value_type& rconde,
- typename traits::matrix_traits< MatrixA >::value_type& rcondv,
- Workspace work ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& rconde,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& rcondv, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     geesx_impl< value_type >::invoke( jobvs, sort, select, sense, a,
@@ -330,8 +331,10 @@
 inline integer_t geesx( char const jobvs, char const sort,
         logical_t* select, char const sense, MatrixA& a, integer_t& sdim,
         VectorWR& wr, VectorWI& wi, MatrixVS& vs,
- typename traits::matrix_traits< MatrixA >::value_type& rconde,
- typename traits::matrix_traits< MatrixA >::value_type& rcondv ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& rconde,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& rcondv ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     geesx_impl< value_type >::invoke( jobvs, sort, select, sense, a,
@@ -343,9 +346,11 @@
         typename Workspace >
 inline integer_t geesx( char const jobvs, char const sort,
         logical_t* select, char const sense, MatrixA& a, integer_t& sdim,
- VectorW& w, MatrixVS& vs, typename traits::matrix_traits<
- MatrixA >::value_type& rconde, typename traits::matrix_traits<
- MatrixA >::value_type& rcondv, Workspace work ) {
+ VectorW& w, MatrixVS& vs, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& rconde,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& rcondv, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     geesx_impl< value_type >::invoke( jobvs, sort, select, sense, a,
@@ -357,9 +362,11 @@
 template< typename MatrixA, typename VectorW, typename MatrixVS >
 inline integer_t geesx( char const jobvs, char const sort,
         logical_t* select, char const sense, MatrixA& a, integer_t& sdim,
- VectorW& w, MatrixVS& vs, typename traits::matrix_traits<
- MatrixA >::value_type& rconde, typename traits::matrix_traits<
- MatrixA >::value_type& rcondv ) {
+ VectorW& w, MatrixVS& vs, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& rconde,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& rcondv ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     geesx_impl< value_type >::invoke( jobvs, sort, select, sense, a,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/geevx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/geevx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/geevx.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -365,8 +365,9 @@
 inline integer_t geevx( char const balanc, char const jobvl,
         char const jobvr, char const sense, MatrixA& a, VectorWR& wr,
         VectorWI& wi, MatrixVL& vl, MatrixVR& vr, integer_t& ilo,
- integer_t& ihi, VectorSCALE& scale, typename traits::matrix_traits<
- MatrixA >::value_type& abnrm, VectorRCONDE& rconde,
+ integer_t& ihi, VectorSCALE& scale, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& abnrm, VectorRCONDE& rconde,
         VectorRCONDV& rcondv, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
@@ -382,8 +383,9 @@
 inline integer_t geevx( char const balanc, char const jobvl,
         char const jobvr, char const sense, MatrixA& a, VectorWR& wr,
         VectorWI& wi, MatrixVL& vl, MatrixVR& vr, integer_t& ilo,
- integer_t& ihi, VectorSCALE& scale, typename traits::matrix_traits<
- MatrixA >::value_type& abnrm, VectorRCONDE& rconde,
+ integer_t& ihi, VectorSCALE& scale, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& abnrm, VectorRCONDE& rconde,
         VectorRCONDV& rcondv ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
@@ -399,8 +401,9 @@
 inline integer_t geevx( char const balanc, char const jobvl,
         char const jobvr, char const sense, MatrixA& a, VectorW& w,
         MatrixVL& vl, MatrixVR& vr, integer_t& ilo, integer_t& ihi,
- VectorSCALE& scale, typename traits::matrix_traits<
- MatrixA >::value_type& abnrm, VectorRCONDE& rconde,
+ VectorSCALE& scale, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& abnrm, VectorRCONDE& rconde,
         VectorRCONDV& rcondv, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
@@ -416,8 +419,9 @@
 inline integer_t geevx( char const balanc, char const jobvl,
         char const jobvr, char const sense, MatrixA& a, VectorW& w,
         MatrixVL& vl, MatrixVR& vr, integer_t& ilo, integer_t& ihi,
- VectorSCALE& scale, typename traits::matrix_traits<
- MatrixA >::value_type& abnrm, VectorRCONDE& rconde,
+ VectorSCALE& scale, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& abnrm, VectorRCONDE& rconde,
         VectorRCONDV& rcondv ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gelsd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gelsd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gelsd.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -301,8 +301,9 @@
 template< typename MatrixA, typename MatrixB, typename VectorS,
         typename Workspace >
 inline integer_t gelsd( MatrixA& a, MatrixB& b, VectorS& s,
- typename traits::matrix_traits< MatrixA >::value_type const rcond,
- integer_t& rank, Workspace work ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const rcond, integer_t& rank,
+ Workspace work ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     gelsd_impl< value_type >::invoke( a, b, s, rcond, rank, info, work );
@@ -312,8 +313,8 @@
 // template function to call gelsd, default workspace type
 template< typename MatrixA, typename MatrixB, typename VectorS >
 inline integer_t gelsd( MatrixA& a, MatrixB& b, VectorS& s,
- typename traits::matrix_traits< MatrixA >::value_type const rcond,
- integer_t& rank ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const rcond, integer_t& rank ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     gelsd_impl< value_type >::invoke( a, b, s, rcond, rank, info,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gelss.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gelss.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gelss.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -251,8 +251,9 @@
 template< typename MatrixA, typename MatrixB, typename VectorS,
         typename Workspace >
 inline integer_t gelss( MatrixA& a, MatrixB& b, VectorS& s,
- typename traits::matrix_traits< MatrixA >::value_type const rcond,
- integer_t& rank, Workspace work ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const rcond, integer_t& rank,
+ Workspace work ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     gelss_impl< value_type >::invoke( a, b, s, rcond, rank, info, work );
@@ -262,8 +263,8 @@
 // template function to call gelss, default workspace type
 template< typename MatrixA, typename MatrixB, typename VectorS >
 inline integer_t gelss( MatrixA& a, MatrixB& b, VectorS& s,
- typename traits::matrix_traits< MatrixA >::value_type const rcond,
- integer_t& rank ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const rcond, integer_t& rank ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     gelss_impl< value_type >::invoke( a, b, s, rcond, rank, info,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gelsy.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gelsy.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gelsy.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -239,8 +239,9 @@
 template< typename MatrixA, typename MatrixB, typename VectorJPVT,
         typename Workspace >
 inline integer_t gelsy( MatrixA& a, MatrixB& b, VectorJPVT& jpvt,
- typename traits::matrix_traits< MatrixA >::value_type const rcond,
- integer_t& rank, Workspace work ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const rcond, integer_t& rank,
+ Workspace work ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     gelsy_impl< value_type >::invoke( a, b, jpvt, rcond, rank, info,
@@ -251,8 +252,8 @@
 // template function to call gelsy, default workspace type
 template< typename MatrixA, typename MatrixB, typename VectorJPVT >
 inline integer_t gelsy( MatrixA& a, MatrixB& b, VectorJPVT& jpvt,
- typename traits::matrix_traits< MatrixA >::value_type const rcond,
- integer_t& rank ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const rcond, integer_t& rank ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     gelsy_impl< value_type >::invoke( a, b, jpvt, rcond, rank, info,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gesvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gesvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gesvx.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -311,9 +311,10 @@
         typename Workspace >
 inline integer_t gesvx( char const fact, char const trans, MatrixA& a,
         MatrixAF& af, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
- MatrixB& b, MatrixX& x, typename traits::matrix_traits<
- MatrixA >::value_type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+ MatrixB& b, MatrixX& x, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     gesvx_impl< value_type >::invoke( fact, trans, a, af, ipiv, equed, r,
@@ -327,8 +328,10 @@
         typename MatrixX, typename VectorFERR, typename VectorBERR >
 inline integer_t gesvx( char const fact, char const trans, MatrixA& a,
         MatrixAF& af, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
- MatrixB& b, MatrixX& x, typename traits::matrix_traits<
- MatrixA >::value_type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+ MatrixB& b, MatrixX& x, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     gesvx_impl< value_type >::invoke( fact, trans, a, af, ipiv, equed, r,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggevx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggevx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggevx.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -473,9 +473,11 @@
         VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
         MatrixVL& vl, MatrixVR& vr, integer_t& ilo, integer_t& ihi,
         VectorLSCALE& lscale, VectorRSCALE& rscale,
- typename traits::matrix_traits< MatrixA >::value_type& abnrm,
- typename traits::matrix_traits< MatrixA >::value_type& bbnrm,
- VectorRCONDE& rconde, VectorRCONDV& rcondv, Workspace work ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& abnrm,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& bbnrm, VectorRCONDE& rconde,
+ VectorRCONDV& rcondv, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     ggevx_impl< value_type >::invoke( balanc, jobvl, jobvr, sense, a, b,
@@ -494,9 +496,11 @@
         VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
         MatrixVL& vl, MatrixVR& vr, integer_t& ilo, integer_t& ihi,
         VectorLSCALE& lscale, VectorRSCALE& rscale,
- typename traits::matrix_traits< MatrixA >::value_type& abnrm,
- typename traits::matrix_traits< MatrixA >::value_type& bbnrm,
- VectorRCONDE& rconde, VectorRCONDV& rcondv ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& abnrm,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& bbnrm, VectorRCONDE& rconde,
+ VectorRCONDV& rcondv ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     ggevx_impl< value_type >::invoke( balanc, jobvl, jobvr, sense, a, b,
@@ -513,9 +517,11 @@
         char const jobvr, char const sense, MatrixA& a, MatrixB& b,
         VectorALPHA& alpha, VectorBETA& beta, MatrixVL& vl, MatrixVR& vr,
         integer_t& ilo, integer_t& ihi, VectorLSCALE& lscale,
- VectorRSCALE& rscale, typename traits::matrix_traits<
- MatrixA >::value_type& abnrm, typename traits::matrix_traits<
- MatrixA >::value_type& bbnrm, VectorRCONDE& rconde,
+ VectorRSCALE& rscale, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& abnrm,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& bbnrm, VectorRCONDE& rconde,
         VectorRCONDV& rcondv, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
@@ -534,9 +540,11 @@
         char const jobvr, char const sense, MatrixA& a, MatrixB& b,
         VectorALPHA& alpha, VectorBETA& beta, MatrixVL& vl, MatrixVR& vr,
         integer_t& ilo, integer_t& ihi, VectorLSCALE& lscale,
- VectorRSCALE& rscale, typename traits::matrix_traits<
- MatrixA >::value_type& abnrm, typename traits::matrix_traits<
- MatrixA >::value_type& bbnrm, VectorRCONDE& rconde,
+ VectorRSCALE& rscale, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& abnrm,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& bbnrm, VectorRCONDE& rconde,
         VectorRCONDV& rcondv ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gtsvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gtsvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gtsvx.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -332,8 +332,9 @@
         integer_t const n, VectorDL& dl, VectorD& d, VectorDU& du,
         VectorDLF& dlf, VectorDF& df, VectorDUF& duf, VectorDU2& du2,
         VectorIPIV& ipiv, MatrixB& b, MatrixX& x,
- typename traits::vector_traits< VectorDL >::value_type& rcond,
- VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
+ typename traits::type_traits< typename traits::vector_traits<
+ VectorDL >::value_type >::real_type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     typedef typename traits::vector_traits< VectorDL >::value_type value_type;
     integer_t info(0);
     gtsvx_impl< value_type >::invoke( fact, trans, n, dl, d, du, dlf, df,
@@ -350,8 +351,9 @@
         integer_t const n, VectorDL& dl, VectorD& d, VectorDU& du,
         VectorDLF& dlf, VectorDF& df, VectorDUF& duf, VectorDU2& du2,
         VectorIPIV& ipiv, MatrixB& b, MatrixX& x,
- typename traits::vector_traits< VectorDL >::value_type& rcond,
- VectorFERR& ferr, VectorBERR& berr ) {
+ typename traits::type_traits< typename traits::vector_traits<
+ VectorDL >::value_type >::real_type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     typedef typename traits::vector_traits< VectorDL >::value_type value_type;
     integer_t info(0);
     gtsvx_impl< value_type >::invoke( fact, trans, n, dl, d, du, dlf, df,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbevx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbevx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbevx.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -156,12 +156,14 @@
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline integer_t hbevx( char const jobz, char const range,
         integer_t const n, integer_t const kd, MatrixAB& ab, MatrixQ& q,
- typename traits::matrix_traits< MatrixAB >::value_type const vl,
- typename traits::matrix_traits< MatrixAB >::value_type const vu,
- integer_t const il, integer_t const iu,
- typename traits::matrix_traits< MatrixAB >::value_type const abstol,
- integer_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail,
- Workspace work ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type const vl,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type const vu, integer_t const il,
+ integer_t const iu, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type const abstol, integer_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixAB >::value_type value_type;
     integer_t info(0);
     hbevx_impl< value_type >::invoke( jobz, range, n, kd, ab, q, vl, vu,
@@ -174,11 +176,14 @@
         typename MatrixZ, typename VectorIFAIL >
 inline integer_t hbevx( char const jobz, char const range,
         integer_t const n, integer_t const kd, MatrixAB& ab, MatrixQ& q,
- typename traits::matrix_traits< MatrixAB >::value_type const vl,
- typename traits::matrix_traits< MatrixAB >::value_type const vu,
- integer_t const il, integer_t const iu,
- typename traits::matrix_traits< MatrixAB >::value_type const abstol,
- integer_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type const vl,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type const vu, integer_t const il,
+ integer_t const iu, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type const abstol, integer_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     typedef typename traits::matrix_traits< MatrixAB >::value_type value_type;
     integer_t info(0);
     hbevx_impl< value_type >::invoke( jobz, range, n, kd, ab, q, vl, vu,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbgvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbgvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbgvx.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -168,13 +168,15 @@
         typename Workspace >
 inline integer_t hbgvx( char const jobz, char const range,
         integer_t const n, integer_t const ka, integer_t const kb,
- MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
- typename traits::matrix_traits< MatrixAB >::value_type const vl,
- typename traits::matrix_traits< MatrixAB >::value_type const vu,
- integer_t const il, integer_t const iu,
- typename traits::matrix_traits< MatrixAB >::value_type const abstol,
- integer_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail,
- Workspace work ) {
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type const vl,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type const vu, integer_t const il,
+ integer_t const iu, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type const abstol, integer_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixAB >::value_type value_type;
     integer_t info(0);
     hbgvx_impl< value_type >::invoke( jobz, range, n, ka, kb, ab, bb, q,
@@ -187,12 +189,15 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline integer_t hbgvx( char const jobz, char const range,
         integer_t const n, integer_t const ka, integer_t const kb,
- MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
- typename traits::matrix_traits< MatrixAB >::value_type const vl,
- typename traits::matrix_traits< MatrixAB >::value_type const vu,
- integer_t const il, integer_t const iu,
- typename traits::matrix_traits< MatrixAB >::value_type const abstol,
- integer_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type const vl,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type const vu, integer_t const il,
+ integer_t const iu, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type const abstol, integer_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     typedef typename traits::matrix_traits< MatrixAB >::value_type value_type;
     integer_t info(0);
     hbgvx_impl< value_type >::invoke( jobz, range, n, ka, kb, ab, bb, q,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/heevr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/heevr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/heevr.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -173,12 +173,14 @@
 template< typename MatrixA, typename VectorW, typename MatrixZ,
         typename VectorISUPPZ, typename Workspace >
 inline integer_t heevr( char const jobz, char const range, MatrixA& a,
- typename traits::matrix_traits< MatrixA >::value_type const vl,
- typename traits::matrix_traits< MatrixA >::value_type const vu,
- integer_t const il, integer_t const iu,
- typename traits::matrix_traits< MatrixA >::value_type const abstol,
- integer_t& m, VectorW& w, MatrixZ& z, VectorISUPPZ& isuppz,
- Workspace work ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const vl,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const vu, integer_t const il,
+ integer_t const iu, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const abstol, integer_t& m,
+ VectorW& w, MatrixZ& z, VectorISUPPZ& isuppz, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     heevr_impl< value_type >::invoke( jobz, range, a, vl, vu, il, iu,
@@ -190,11 +192,14 @@
 template< typename MatrixA, typename VectorW, typename MatrixZ,
         typename VectorISUPPZ >
 inline integer_t heevr( char const jobz, char const range, MatrixA& a,
- typename traits::matrix_traits< MatrixA >::value_type const vl,
- typename traits::matrix_traits< MatrixA >::value_type const vu,
- integer_t const il, integer_t const iu,
- typename traits::matrix_traits< MatrixA >::value_type const abstol,
- integer_t& m, VectorW& w, MatrixZ& z, VectorISUPPZ& isuppz ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const vl,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const vu, integer_t const il,
+ integer_t const iu, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const abstol, integer_t& m,
+ VectorW& w, MatrixZ& z, VectorISUPPZ& isuppz ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     heevr_impl< value_type >::invoke( jobz, range, a, vl, vu, il, iu,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/heevx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/heevx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/heevx.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -169,12 +169,14 @@
 template< typename MatrixA, typename VectorW, typename MatrixZ,
         typename VectorIFAIL, typename Workspace >
 inline integer_t heevx( char const jobz, char const range, MatrixA& a,
- typename traits::matrix_traits< MatrixA >::value_type const vl,
- typename traits::matrix_traits< MatrixA >::value_type const vu,
- integer_t const il, integer_t const iu,
- typename traits::matrix_traits< MatrixA >::value_type const abstol,
- integer_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail,
- Workspace work ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const vl,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const vu, integer_t const il,
+ integer_t const iu, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const abstol, integer_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     heevx_impl< value_type >::invoke( jobz, range, a, vl, vu, il, iu,
@@ -186,11 +188,14 @@
 template< typename MatrixA, typename VectorW, typename MatrixZ,
         typename VectorIFAIL >
 inline integer_t heevx( char const jobz, char const range, MatrixA& a,
- typename traits::matrix_traits< MatrixA >::value_type const vl,
- typename traits::matrix_traits< MatrixA >::value_type const vu,
- integer_t const il, integer_t const iu,
- typename traits::matrix_traits< MatrixA >::value_type const abstol,
- integer_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const vl,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const vu, integer_t const il,
+ integer_t const iu, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const abstol, integer_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     heevx_impl< value_type >::invoke( jobz, range, a, vl, vu, il, iu,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hegvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hegvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hegvx.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -175,12 +175,14 @@
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline integer_t hegvx( integer_t const itype, char const jobz,
         char const range, integer_t const n, MatrixA& a, MatrixB& b,
- typename traits::matrix_traits< MatrixA >::value_type const vl,
- typename traits::matrix_traits< MatrixA >::value_type const vu,
- integer_t const il, integer_t const iu,
- typename traits::matrix_traits< MatrixA >::value_type const abstol,
- integer_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail,
- Workspace work ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const vl,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const vu, integer_t const il,
+ integer_t const iu, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const abstol, integer_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     hegvx_impl< value_type >::invoke( itype, jobz, range, n, a, b, vl,
@@ -193,11 +195,14 @@
         typename MatrixZ, typename VectorIFAIL >
 inline integer_t hegvx( integer_t const itype, char const jobz,
         char const range, integer_t const n, MatrixA& a, MatrixB& b,
- typename traits::matrix_traits< MatrixA >::value_type const vl,
- typename traits::matrix_traits< MatrixA >::value_type const vu,
- integer_t const il, integer_t const iu,
- typename traits::matrix_traits< MatrixA >::value_type const abstol,
- integer_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const vl,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const vu, integer_t const il,
+ integer_t const iu, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const abstol, integer_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     hegvx_impl< value_type >::invoke( itype, jobz, range, n, a, b, vl,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hesvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hesvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hesvx.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -177,8 +177,9 @@
         typename VectorBERR, typename Workspace >
 inline integer_t hesvx( char const fact, MatrixA& a, MatrixAF& af,
         VectorIPIV& ipiv, MatrixB& b, MatrixX& x,
- typename traits::matrix_traits< MatrixA >::value_type& rcond,
- VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     hesvx_impl< value_type >::invoke( fact, a, af, ipiv, b, x, rcond,
@@ -192,8 +193,9 @@
         typename VectorBERR >
 inline integer_t hesvx( char const fact, MatrixA& a, MatrixAF& af,
         VectorIPIV& ipiv, MatrixB& b, MatrixX& x,
- typename traits::matrix_traits< MatrixA >::value_type& rcond,
- VectorFERR& ferr, VectorBERR& berr ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     hesvx_impl< value_type >::invoke( fact, a, af, ipiv, b, x, rcond,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpevx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpevx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpevx.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -141,12 +141,15 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL, typename Workspace >
 inline integer_t hpevx( char const jobz, char const range,
- integer_t const n, MatrixAP& ap, typename traits::matrix_traits<
- MatrixAP >::value_type const vl, typename traits::matrix_traits<
- MatrixAP >::value_type const vu, integer_t const il,
- integer_t const iu, typename traits::matrix_traits<
- MatrixAP >::value_type const abstol, integer_t& m, VectorW& w,
- MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
+ integer_t const n, MatrixAP& ap, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixAP >::value_type >::real_type const vl,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAP >::value_type >::real_type const vu, integer_t const il,
+ integer_t const iu, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixAP >::value_type >::real_type const abstol, integer_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixAP >::value_type value_type;
     integer_t info(0);
     hpevx_impl< value_type >::invoke( jobz, range, n, ap, vl, vu, il, iu,
@@ -158,12 +161,15 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL >
 inline integer_t hpevx( char const jobz, char const range,
- integer_t const n, MatrixAP& ap, typename traits::matrix_traits<
- MatrixAP >::value_type const vl, typename traits::matrix_traits<
- MatrixAP >::value_type const vu, integer_t const il,
- integer_t const iu, typename traits::matrix_traits<
- MatrixAP >::value_type const abstol, integer_t& m, VectorW& w,
- MatrixZ& z, VectorIFAIL& ifail ) {
+ integer_t const n, MatrixAP& ap, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixAP >::value_type >::real_type const vl,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAP >::value_type >::real_type const vu, integer_t const il,
+ integer_t const iu, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixAP >::value_type >::real_type const abstol, integer_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     typedef typename traits::matrix_traits< MatrixAP >::value_type value_type;
     integer_t info(0);
     hpevx_impl< value_type >::invoke( jobz, range, n, ap, vl, vu, il, iu,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpgvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpgvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpgvx.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -153,12 +153,14 @@
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline integer_t hpgvx( integer_t const itype, char const jobz,
         char const range, integer_t const n, MatrixAP& ap, MatrixBP& bp,
- typename traits::matrix_traits< MatrixAP >::value_type const vl,
- typename traits::matrix_traits< MatrixAP >::value_type const vu,
- integer_t const il, integer_t const iu,
- typename traits::matrix_traits< MatrixAP >::value_type const abstol,
- integer_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail,
- Workspace work ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAP >::value_type >::real_type const vl,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAP >::value_type >::real_type const vu, integer_t const il,
+ integer_t const iu, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixAP >::value_type >::real_type const abstol, integer_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixAP >::value_type value_type;
     integer_t info(0);
     hpgvx_impl< value_type >::invoke( itype, jobz, range, n, ap, bp, vl,
@@ -171,11 +173,14 @@
         typename MatrixZ, typename VectorIFAIL >
 inline integer_t hpgvx( integer_t const itype, char const jobz,
         char const range, integer_t const n, MatrixAP& ap, MatrixBP& bp,
- typename traits::matrix_traits< MatrixAP >::value_type const vl,
- typename traits::matrix_traits< MatrixAP >::value_type const vu,
- integer_t const il, integer_t const iu,
- typename traits::matrix_traits< MatrixAP >::value_type const abstol,
- integer_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAP >::value_type >::real_type const vl,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAP >::value_type >::real_type const vu, integer_t const il,
+ integer_t const iu, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixAP >::value_type >::real_type const abstol, integer_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     typedef typename traits::matrix_traits< MatrixAP >::value_type value_type;
     integer_t info(0);
     hpgvx_impl< value_type >::invoke( itype, jobz, range, n, ap, bp, vl,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpsvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpsvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpsvx.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -150,8 +150,9 @@
         typename VectorBERR, typename Workspace >
 inline integer_t hpsvx( char const fact, integer_t const n, MatrixAP& ap,
         MatrixAFP& afp, VectorIPIV& ipiv, MatrixB& b, MatrixX& x,
- typename traits::matrix_traits< MatrixAP >::value_type& rcond,
- VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAP >::value_type >::real_type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixAP >::value_type value_type;
     integer_t info(0);
     hpsvx_impl< value_type >::invoke( fact, n, ap, afp, ipiv, b, x,
@@ -165,8 +166,9 @@
         typename VectorBERR >
 inline integer_t hpsvx( char const fact, integer_t const n, MatrixAP& ap,
         MatrixAFP& afp, VectorIPIV& ipiv, MatrixB& b, MatrixX& x,
- typename traits::matrix_traits< MatrixAP >::value_type& rcond,
- VectorFERR& ferr, VectorBERR& berr ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAP >::value_type >::real_type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     typedef typename traits::matrix_traits< MatrixAP >::value_type value_type;
     integer_t info(0);
     hpsvx_impl< value_type >::invoke( fact, n, ap, afp, ipiv, b, x,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/lalsd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/lalsd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/lalsd.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -255,8 +255,9 @@
         typename Workspace >
 inline integer_t lalsd( char const uplo, integer_t const smlsiz,
         integer_t const n, VectorD& d, VectorE& e, MatrixB& b,
- typename traits::matrix_traits< MatrixB >::value_type const rcond,
- integer_t& rank, Workspace work ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixB >::value_type >::real_type const rcond, integer_t& rank,
+ Workspace work ) {
     typedef typename traits::matrix_traits< MatrixB >::value_type value_type;
     integer_t info(0);
     lalsd_impl< value_type >::invoke( uplo, smlsiz, n, d, e, b, rcond,
@@ -268,8 +269,8 @@
 template< typename VectorD, typename VectorE, typename MatrixB >
 inline integer_t lalsd( char const uplo, integer_t const smlsiz,
         integer_t const n, VectorD& d, VectorE& e, MatrixB& b,
- typename traits::matrix_traits< MatrixB >::value_type const rcond,
- integer_t& rank ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixB >::value_type >::real_type const rcond, integer_t& rank ) {
     typedef typename traits::matrix_traits< MatrixB >::value_type value_type;
     integer_t info(0);
     lalsd_impl< value_type >::invoke( uplo, smlsiz, n, d, e, b, rcond,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/pbsvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/pbsvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/pbsvx.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -292,9 +292,10 @@
         typename VectorBERR, typename Workspace >
 inline integer_t pbsvx( char const fact, integer_t const n,
         integer_t const kd, MatrixAB& ab, MatrixAFB& afb, char& equed,
- VectorS& s, MatrixB& b, MatrixX& x, typename traits::matrix_traits<
- MatrixAB >::value_type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+ VectorS& s, MatrixB& b, MatrixX& x, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixAB >::value_type value_type;
     integer_t info(0);
     pbsvx_impl< value_type >::invoke( fact, n, kd, ab, afb, equed, s, b,
@@ -308,8 +309,10 @@
         typename VectorBERR >
 inline integer_t pbsvx( char const fact, integer_t const n,
         integer_t const kd, MatrixAB& ab, MatrixAFB& afb, char& equed,
- VectorS& s, MatrixB& b, MatrixX& x, typename traits::matrix_traits<
- MatrixAB >::value_type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+ VectorS& s, MatrixB& b, MatrixX& x, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     typedef typename traits::matrix_traits< MatrixAB >::value_type value_type;
     integer_t info(0);
     pbsvx_impl< value_type >::invoke( fact, n, kd, ab, afb, equed, s, b,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/posvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/posvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/posvx.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -294,8 +294,9 @@
         typename VectorBERR, typename Workspace >
 inline integer_t posvx( char const fact, MatrixA& a, MatrixAF& af,
         char& equed, VectorS& s, MatrixB& b, MatrixX& x,
- typename traits::matrix_traits< MatrixA >::value_type& rcond,
- VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     posvx_impl< value_type >::invoke( fact, a, af, equed, s, b, x, rcond,
@@ -309,8 +310,9 @@
         typename VectorBERR >
 inline integer_t posvx( char const fact, MatrixA& a, MatrixAF& af,
         char& equed, VectorS& s, MatrixB& b, MatrixX& x,
- typename traits::matrix_traits< MatrixA >::value_type& rcond,
- VectorFERR& ferr, VectorBERR& berr ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     posvx_impl< value_type >::invoke( fact, a, af, equed, s, b, x, rcond,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ppsvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ppsvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ppsvx.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -280,8 +280,9 @@
         typename VectorBERR, typename Workspace >
 inline integer_t ppsvx( char const fact, MatrixAP& ap, VectorAFP& afp,
         char& equed, VectorS& s, MatrixB& b, MatrixX& x,
- typename traits::matrix_traits< MatrixAP >::value_type& rcond,
- VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAP >::value_type >::real_type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixAP >::value_type value_type;
     integer_t info(0);
     ppsvx_impl< value_type >::invoke( fact, ap, afp, equed, s, b, x,
@@ -295,8 +296,9 @@
         typename VectorBERR >
 inline integer_t ppsvx( char const fact, MatrixAP& ap, VectorAFP& afp,
         char& equed, VectorS& s, MatrixB& b, MatrixX& x,
- typename traits::matrix_traits< MatrixAP >::value_type& rcond,
- VectorFERR& ferr, VectorBERR& berr ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAP >::value_type >::real_type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     typedef typename traits::matrix_traits< MatrixAP >::value_type value_type;
     integer_t info(0);
     ppsvx_impl< value_type >::invoke( fact, ap, afp, equed, s, b, x,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ptsvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ptsvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ptsvx.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -267,8 +267,9 @@
         typename VectorFERR, typename VectorBERR, typename Workspace >
 inline integer_t ptsvx( char const fact, integer_t const n, VectorD& d,
         VectorE& e, VectorDF& df, VectorEF& ef, MatrixB& b, MatrixX& x,
- typename traits::vector_traits< VectorE >::value_type& rcond,
- VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
+ typename traits::type_traits< typename traits::vector_traits<
+ VectorE >::value_type >::real_type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     typedef typename traits::vector_traits< VectorE >::value_type value_type;
     integer_t info(0);
     ptsvx_impl< value_type >::invoke( fact, n, d, e, df, ef, b, x, rcond,
@@ -282,8 +283,9 @@
         typename VectorFERR, typename VectorBERR >
 inline integer_t ptsvx( char const fact, integer_t const n, VectorD& d,
         VectorE& e, VectorDF& df, VectorEF& ef, MatrixB& b, MatrixX& x,
- typename traits::vector_traits< VectorE >::value_type& rcond,
- VectorFERR& ferr, VectorBERR& berr ) {
+ typename traits::type_traits< typename traits::vector_traits<
+ VectorE >::value_type >::real_type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     typedef typename traits::vector_traits< VectorE >::value_type value_type;
     integer_t info(0);
     ptsvx_impl< value_type >::invoke( fact, n, d, e, df, ef, b, x, rcond,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbevx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbevx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbevx.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -147,12 +147,14 @@
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline integer_t sbevx( char const jobz, char const range,
         integer_t const n, integer_t const kd, MatrixAB& ab, MatrixQ& q,
- typename traits::matrix_traits< MatrixAB >::value_type const vl,
- typename traits::matrix_traits< MatrixAB >::value_type const vu,
- integer_t const il, integer_t const iu,
- typename traits::matrix_traits< MatrixAB >::value_type const abstol,
- integer_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail,
- Workspace work ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type const vl,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type const vu, integer_t const il,
+ integer_t const iu, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type const abstol, integer_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixAB >::value_type value_type;
     integer_t info(0);
     sbevx_impl< value_type >::invoke( jobz, range, n, kd, ab, q, vl, vu,
@@ -165,11 +167,14 @@
         typename MatrixZ, typename VectorIFAIL >
 inline integer_t sbevx( char const jobz, char const range,
         integer_t const n, integer_t const kd, MatrixAB& ab, MatrixQ& q,
- typename traits::matrix_traits< MatrixAB >::value_type const vl,
- typename traits::matrix_traits< MatrixAB >::value_type const vu,
- integer_t const il, integer_t const iu,
- typename traits::matrix_traits< MatrixAB >::value_type const abstol,
- integer_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type const vl,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type const vu, integer_t const il,
+ integer_t const iu, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type const abstol, integer_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     typedef typename traits::matrix_traits< MatrixAB >::value_type value_type;
     integer_t info(0);
     sbevx_impl< value_type >::invoke( jobz, range, n, kd, ab, q, vl, vu,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbgvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbgvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbgvx.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -156,13 +156,15 @@
         typename Workspace >
 inline integer_t sbgvx( char const jobz, char const range,
         integer_t const n, integer_t const ka, integer_t const kb,
- MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
- typename traits::matrix_traits< MatrixAB >::value_type const vl,
- typename traits::matrix_traits< MatrixAB >::value_type const vu,
- integer_t const il, integer_t const iu,
- typename traits::matrix_traits< MatrixAB >::value_type const abstol,
- integer_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail,
- Workspace work ) {
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type const vl,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type const vu, integer_t const il,
+ integer_t const iu, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type const abstol, integer_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixAB >::value_type value_type;
     integer_t info(0);
     sbgvx_impl< value_type >::invoke( jobz, range, n, ka, kb, ab, bb, q,
@@ -175,12 +177,15 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline integer_t sbgvx( char const jobz, char const range,
         integer_t const n, integer_t const ka, integer_t const kb,
- MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
- typename traits::matrix_traits< MatrixAB >::value_type const vl,
- typename traits::matrix_traits< MatrixAB >::value_type const vu,
- integer_t const il, integer_t const iu,
- typename traits::matrix_traits< MatrixAB >::value_type const abstol,
- integer_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type const vl,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type const vu, integer_t const il,
+ integer_t const iu, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixAB >::value_type >::real_type const abstol, integer_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     typedef typename traits::matrix_traits< MatrixAB >::value_type value_type;
     integer_t info(0);
     sbgvx_impl< value_type >::invoke( jobz, range, n, ka, kb, ab, bb, q,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spevx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spevx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spevx.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -132,12 +132,15 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL, typename Workspace >
 inline integer_t spevx( char const jobz, char const range,
- integer_t const n, MatrixAP& ap, typename traits::matrix_traits<
- MatrixAP >::value_type const vl, typename traits::matrix_traits<
- MatrixAP >::value_type const vu, integer_t const il,
- integer_t const iu, typename traits::matrix_traits<
- MatrixAP >::value_type const abstol, integer_t& m, VectorW& w,
- MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
+ integer_t const n, MatrixAP& ap, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixAP >::value_type >::real_type const vl,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAP >::value_type >::real_type const vu, integer_t const il,
+ integer_t const iu, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixAP >::value_type >::real_type const abstol, integer_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixAP >::value_type value_type;
     integer_t info(0);
     spevx_impl< value_type >::invoke( jobz, range, n, ap, vl, vu, il, iu,
@@ -149,12 +152,15 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL >
 inline integer_t spevx( char const jobz, char const range,
- integer_t const n, MatrixAP& ap, typename traits::matrix_traits<
- MatrixAP >::value_type const vl, typename traits::matrix_traits<
- MatrixAP >::value_type const vu, integer_t const il,
- integer_t const iu, typename traits::matrix_traits<
- MatrixAP >::value_type const abstol, integer_t& m, VectorW& w,
- MatrixZ& z, VectorIFAIL& ifail ) {
+ integer_t const n, MatrixAP& ap, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixAP >::value_type >::real_type const vl,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAP >::value_type >::real_type const vu, integer_t const il,
+ integer_t const iu, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixAP >::value_type >::real_type const abstol, integer_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     typedef typename traits::matrix_traits< MatrixAP >::value_type value_type;
     integer_t info(0);
     spevx_impl< value_type >::invoke( jobz, range, n, ap, vl, vu, il, iu,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spgvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spgvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spgvx.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -141,12 +141,14 @@
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline integer_t spgvx( integer_t const itype, char const jobz,
         char const range, integer_t const n, MatrixAP& ap, MatrixBP& bp,
- typename traits::matrix_traits< MatrixAP >::value_type const vl,
- typename traits::matrix_traits< MatrixAP >::value_type const vu,
- integer_t const il, integer_t const iu,
- typename traits::matrix_traits< MatrixAP >::value_type const abstol,
- integer_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail,
- Workspace work ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAP >::value_type >::real_type const vl,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAP >::value_type >::real_type const vu, integer_t const il,
+ integer_t const iu, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixAP >::value_type >::real_type const abstol, integer_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixAP >::value_type value_type;
     integer_t info(0);
     spgvx_impl< value_type >::invoke( itype, jobz, range, n, ap, bp, vl,
@@ -159,11 +161,14 @@
         typename MatrixZ, typename VectorIFAIL >
 inline integer_t spgvx( integer_t const itype, char const jobz,
         char const range, integer_t const n, MatrixAP& ap, MatrixBP& bp,
- typename traits::matrix_traits< MatrixAP >::value_type const vl,
- typename traits::matrix_traits< MatrixAP >::value_type const vu,
- integer_t const il, integer_t const iu,
- typename traits::matrix_traits< MatrixAP >::value_type const abstol,
- integer_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAP >::value_type >::real_type const vl,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAP >::value_type >::real_type const vu, integer_t const il,
+ integer_t const iu, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixAP >::value_type >::real_type const abstol, integer_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     typedef typename traits::matrix_traits< MatrixAP >::value_type value_type;
     integer_t info(0);
     spgvx_impl< value_type >::invoke( itype, jobz, range, n, ap, bp, vl,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spsvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spsvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spsvx.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -270,8 +270,9 @@
         typename VectorBERR, typename Workspace >
 inline integer_t spsvx( char const fact, MatrixAP& ap, MatrixAFP& afp,
         VectorIPIV& ipiv, MatrixB& b, MatrixX& x,
- typename traits::matrix_traits< MatrixAP >::value_type& rcond,
- VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAP >::value_type >::real_type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixAP >::value_type value_type;
     integer_t info(0);
     spsvx_impl< value_type >::invoke( fact, ap, afp, ipiv, b, x, rcond,
@@ -285,8 +286,9 @@
         typename VectorBERR >
 inline integer_t spsvx( char const fact, MatrixAP& ap, MatrixAFP& afp,
         VectorIPIV& ipiv, MatrixB& b, MatrixX& x,
- typename traits::matrix_traits< MatrixAP >::value_type& rcond,
- VectorFERR& ferr, VectorBERR& berr ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixAP >::value_type >::real_type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     typedef typename traits::matrix_traits< MatrixAP >::value_type value_type;
     integer_t info(0);
     spsvx_impl< value_type >::invoke( fact, ap, afp, ipiv, b, x, rcond,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/stevr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/stevr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/stevr.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -151,12 +151,14 @@
         typename MatrixZ, typename VectorISUPPZ, typename Workspace >
 inline integer_t stevr( char const jobz, char const range,
         integer_t const n, VectorD& d, VectorE& e,
- typename traits::vector_traits< VectorD >::value_type const vl,
- typename traits::vector_traits< VectorD >::value_type const vu,
- integer_t const il, integer_t const iu,
- typename traits::vector_traits< VectorD >::value_type const abstol,
- integer_t& m, VectorW& w, MatrixZ& z, VectorISUPPZ& isuppz,
- Workspace work ) {
+ typename traits::type_traits< typename traits::vector_traits<
+ VectorD >::value_type >::real_type const vl,
+ typename traits::type_traits< typename traits::vector_traits<
+ VectorD >::value_type >::real_type const vu, integer_t const il,
+ integer_t const iu, typename traits::type_traits<
+ typename traits::vector_traits<
+ VectorD >::value_type >::real_type const abstol, integer_t& m,
+ VectorW& w, MatrixZ& z, VectorISUPPZ& isuppz, Workspace work ) {
     typedef typename traits::vector_traits< VectorD >::value_type value_type;
     integer_t info(0);
     stevr_impl< value_type >::invoke( jobz, range, n, d, e, vl, vu, il,
@@ -169,11 +171,14 @@
         typename MatrixZ, typename VectorISUPPZ >
 inline integer_t stevr( char const jobz, char const range,
         integer_t const n, VectorD& d, VectorE& e,
- typename traits::vector_traits< VectorD >::value_type const vl,
- typename traits::vector_traits< VectorD >::value_type const vu,
- integer_t const il, integer_t const iu,
- typename traits::vector_traits< VectorD >::value_type const abstol,
- integer_t& m, VectorW& w, MatrixZ& z, VectorISUPPZ& isuppz ) {
+ typename traits::type_traits< typename traits::vector_traits<
+ VectorD >::value_type >::real_type const vl,
+ typename traits::type_traits< typename traits::vector_traits<
+ VectorD >::value_type >::real_type const vu, integer_t const il,
+ integer_t const iu, typename traits::type_traits<
+ typename traits::vector_traits<
+ VectorD >::value_type >::real_type const abstol, integer_t& m,
+ VectorW& w, MatrixZ& z, VectorISUPPZ& isuppz ) {
     typedef typename traits::vector_traits< VectorD >::value_type value_type;
     integer_t info(0);
     stevr_impl< value_type >::invoke( jobz, range, n, d, e, vl, vu, il,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/stevx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/stevx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/stevx.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -138,12 +138,14 @@
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline integer_t stevx( char const jobz, char const range,
         integer_t const n, VectorD& d, VectorE& e,
- typename traits::vector_traits< VectorD >::value_type const vl,
- typename traits::vector_traits< VectorD >::value_type const vu,
- integer_t const il, integer_t const iu,
- typename traits::vector_traits< VectorD >::value_type const abstol,
- integer_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail,
- Workspace work ) {
+ typename traits::type_traits< typename traits::vector_traits<
+ VectorD >::value_type >::real_type const vl,
+ typename traits::type_traits< typename traits::vector_traits<
+ VectorD >::value_type >::real_type const vu, integer_t const il,
+ integer_t const iu, typename traits::type_traits<
+ typename traits::vector_traits<
+ VectorD >::value_type >::real_type const abstol, integer_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     typedef typename traits::vector_traits< VectorD >::value_type value_type;
     integer_t info(0);
     stevx_impl< value_type >::invoke( jobz, range, n, d, e, vl, vu, il,
@@ -156,11 +158,14 @@
         typename MatrixZ, typename VectorIFAIL >
 inline integer_t stevx( char const jobz, char const range,
         integer_t const n, VectorD& d, VectorE& e,
- typename traits::vector_traits< VectorD >::value_type const vl,
- typename traits::vector_traits< VectorD >::value_type const vu,
- integer_t const il, integer_t const iu,
- typename traits::vector_traits< VectorD >::value_type const abstol,
- integer_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
+ typename traits::type_traits< typename traits::vector_traits<
+ VectorD >::value_type >::real_type const vl,
+ typename traits::type_traits< typename traits::vector_traits<
+ VectorD >::value_type >::real_type const vu, integer_t const il,
+ integer_t const iu, typename traits::type_traits<
+ typename traits::vector_traits<
+ VectorD >::value_type >::real_type const abstol, integer_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     typedef typename traits::vector_traits< VectorD >::value_type value_type;
     integer_t info(0);
     stevx_impl< value_type >::invoke( jobz, range, n, d, e, vl, vu, il,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/syevr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/syevr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/syevr.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -157,12 +157,14 @@
 template< typename MatrixA, typename VectorW, typename MatrixZ,
         typename VectorISUPPZ, typename Workspace >
 inline integer_t syevr( char const jobz, char const range, MatrixA& a,
- typename traits::matrix_traits< MatrixA >::value_type const vl,
- typename traits::matrix_traits< MatrixA >::value_type const vu,
- integer_t const il, integer_t const iu,
- typename traits::matrix_traits< MatrixA >::value_type const abstol,
- integer_t& m, VectorW& w, MatrixZ& z, VectorISUPPZ& isuppz,
- Workspace work ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const vl,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const vu, integer_t const il,
+ integer_t const iu, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const abstol, integer_t& m,
+ VectorW& w, MatrixZ& z, VectorISUPPZ& isuppz, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     syevr_impl< value_type >::invoke( jobz, range, a, vl, vu, il, iu,
@@ -174,11 +176,14 @@
 template< typename MatrixA, typename VectorW, typename MatrixZ,
         typename VectorISUPPZ >
 inline integer_t syevr( char const jobz, char const range, MatrixA& a,
- typename traits::matrix_traits< MatrixA >::value_type const vl,
- typename traits::matrix_traits< MatrixA >::value_type const vu,
- integer_t const il, integer_t const iu,
- typename traits::matrix_traits< MatrixA >::value_type const abstol,
- integer_t& m, VectorW& w, MatrixZ& z, VectorISUPPZ& isuppz ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const vl,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const vu, integer_t const il,
+ integer_t const iu, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const abstol, integer_t& m,
+ VectorW& w, MatrixZ& z, VectorISUPPZ& isuppz ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     syevr_impl< value_type >::invoke( jobz, range, a, vl, vu, il, iu,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/syevx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/syevx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/syevx.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -157,12 +157,14 @@
 template< typename MatrixA, typename VectorW, typename MatrixZ,
         typename VectorIFAIL, typename Workspace >
 inline integer_t syevx( char const jobz, char const range, MatrixA& a,
- typename traits::matrix_traits< MatrixA >::value_type const vl,
- typename traits::matrix_traits< MatrixA >::value_type const vu,
- integer_t const il, integer_t const iu,
- typename traits::matrix_traits< MatrixA >::value_type const abstol,
- integer_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail,
- Workspace work ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const vl,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const vu, integer_t const il,
+ integer_t const iu, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const abstol, integer_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     syevx_impl< value_type >::invoke( jobz, range, a, vl, vu, il, iu,
@@ -174,11 +176,14 @@
 template< typename MatrixA, typename VectorW, typename MatrixZ,
         typename VectorIFAIL >
 inline integer_t syevx( char const jobz, char const range, MatrixA& a,
- typename traits::matrix_traits< MatrixA >::value_type const vl,
- typename traits::matrix_traits< MatrixA >::value_type const vu,
- integer_t const il, integer_t const iu,
- typename traits::matrix_traits< MatrixA >::value_type const abstol,
- integer_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const vl,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const vu, integer_t const il,
+ integer_t const iu, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const abstol, integer_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     syevx_impl< value_type >::invoke( jobz, range, a, vl, vu, il, iu,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sygvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sygvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sygvx.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -162,12 +162,14 @@
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline integer_t sygvx( integer_t const itype, char const jobz,
         char const range, integer_t const n, MatrixA& a, MatrixB& b,
- typename traits::matrix_traits< MatrixA >::value_type const vl,
- typename traits::matrix_traits< MatrixA >::value_type const vu,
- integer_t const il, integer_t const iu,
- typename traits::matrix_traits< MatrixA >::value_type const abstol,
- integer_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail,
- Workspace work ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const vl,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const vu, integer_t const il,
+ integer_t const iu, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const abstol, integer_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     sygvx_impl< value_type >::invoke( itype, jobz, range, n, a, b, vl,
@@ -180,11 +182,14 @@
         typename MatrixZ, typename VectorIFAIL >
 inline integer_t sygvx( integer_t const itype, char const jobz,
         char const range, integer_t const n, MatrixA& a, MatrixB& b,
- typename traits::matrix_traits< MatrixA >::value_type const vl,
- typename traits::matrix_traits< MatrixA >::value_type const vu,
- integer_t const il, integer_t const iu,
- typename traits::matrix_traits< MatrixA >::value_type const abstol,
- integer_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const vl,
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const vu, integer_t const il,
+ integer_t const iu, typename traits::type_traits<
+ typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type const abstol, integer_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     sygvx_impl< value_type >::invoke( itype, jobz, range, n, a, b, vl,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sysvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sysvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sysvx.hpp 2009-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -317,8 +317,9 @@
         typename VectorBERR, typename Workspace >
 inline integer_t sysvx( char const fact, MatrixA& a, MatrixAF& af,
         VectorIPIV& ipiv, MatrixB& b, MatrixX& x,
- typename traits::matrix_traits< MatrixA >::value_type& rcond,
- VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     sysvx_impl< value_type >::invoke( fact, a, af, ipiv, b, x, rcond,
@@ -332,8 +333,9 @@
         typename VectorBERR >
 inline integer_t sysvx( char const fact, MatrixA& a, MatrixAF& af,
         VectorIPIV& ipiv, MatrixB& b, MatrixX& x,
- typename traits::matrix_traits< MatrixA >::value_type& rcond,
- VectorFERR& ferr, VectorBERR& berr ) {
+ typename traits::type_traits< typename traits::matrix_traits<
+ MatrixA >::value_type >::real_type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     typedef typename traits::matrix_traits< MatrixA >::value_type value_type;
     integer_t info(0);
     sysvx_impl< value_type >::invoke( fact, a, af, ipiv, b, x, rcond,

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-04-14 02:35:52 EDT (Tue, 14 Apr 2009)
@@ -159,8 +159,8 @@
 
   if result != None:
     if properties[ 'value_type' ] == 'REAL' or properties[ 'value_type' ] == 'DOUBLE PRECISION':
- result = result.replace( "real_type", "typename traits::$TYPEOF_FIRST_TYPENAME" + \
- "_traits< $FIRST_TYPENAME >::value_type" )
+ result = result.replace( "real_type", "typename traits::type_traits< typename traits::$TYPEOF_FIRST_TYPENAME" + \
+ "_traits< $FIRST_TYPENAME >::value_type >::real_type" )
     if properties[ 'value_type' ][ 0:7] == 'COMPLEX' or \
       properties[ 'value_type' ] == 'DOUBLE COMPLEX':
       result = result.replace( "value_type", "typename traits::$TYPEOF_FIRST_TYPENAME" + \


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