Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r64243 - in sandbox/numeric_bindings: boost/numeric/bindings/detail/config boost/numeric/bindings/lapack/computational boost/numeric/bindings/lapack/detail boost/numeric/bindings/lapack/driver libs/numeric/bindings/lapack/test libs/numeric/bindings/tools
From: thomas.klimpel_at_[hidden]
Date: 2010-07-22 03:25:26


Author: klimpel
Date: 2010-07-22 03:25:22 EDT (Thu, 22 Jul 2010)
New Revision: 64243
URL: http://svn.boost.org/trac/boost/changeset/64243

Log:
replaced logical_t by fortran_bool_t, to be consistent with fortran_int_t
Text files modified:
   sandbox/numeric_bindings/boost/numeric/bindings/detail/config/fortran.hpp | 8
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hsein.hpp | 8
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/stemr.hpp | 60 ++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgevc.hpp | 8
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgexc.hpp | 347 ++++++++++++-----------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsen.hpp | 582 ++++++++++++++++++++-------------------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsna.hpp | 8
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trevc.hpp | 8
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trsen.hpp | 4
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trsna.hpp | 8
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/detail/lapack.h | 160 +++++-----
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gees.hpp | 24
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/geesx.hpp | 25
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gges.hpp | 24
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggesx.hpp | 25
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggevx.hpp | 33 +-
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/hseqr.cpp | 2
   sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gees.cpp | 12
   sandbox/numeric_bindings/libs/numeric/bindings/tools/netlib.py | 8
   19 files changed, 697 insertions(+), 657 deletions(-)

Modified: sandbox/numeric_bindings/boost/numeric/bindings/detail/config/fortran.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/detail/config/fortran.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/detail/config/fortran.hpp 2010-07-22 03:25:22 EDT (Thu, 22 Jul 2010)
@@ -65,15 +65,15 @@
 // Looks like fortran_int_t and logical_t should be identical, the unsigned is
 // required so overloads can distinguish between logical_t and fortran_int_t.
 #ifndef BIND_FORTRAN_INTEGER_8
-typedef unsigned int logical_t;
+typedef unsigned int fortran_bool_t;
 #else
-typedef std::size_t logical_t;
+typedef std::size_t fortran_bool_t;
 #endif
 
 // This definition of external_fp is identical to the definition of L_fp from
-// f2c, and it seems to work more or less. These functions return logical_t,
+// f2c, and it seems to work more or less. These functions return fortran_bool_t,
 // but they don't all take the same type of arguments. A reinterpret_cast will
 // probably work for most compilers to extend the allowed function signatures.
-typedef logical_t (*external_fp)(...);
+typedef fortran_bool_t (*external_fp)(...);
 
 #endif // BOOST_NUMERIC_BINDINGS_TRAITS_FORTRAN_H

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hsein.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hsein.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hsein.hpp 2010-07-22 03:25:22 EDT (Thu, 22 Jul 2010)
@@ -55,7 +55,7 @@
 //
 template< typename Side >
 inline std::ptrdiff_t hsein( const Side side, const char eigsrc,
- const char initv, logical_t* select, const fortran_int_t n,
+ const char initv, fortran_bool_t* select, const fortran_int_t n,
         const float* h, const fortran_int_t ldh, float* wr, const float* wi,
         float* vl, const fortran_int_t ldvl, float* vr,
         const fortran_int_t ldvr, const fortran_int_t mm, fortran_int_t& m,
@@ -74,7 +74,7 @@
 //
 template< typename Side >
 inline std::ptrdiff_t hsein( const Side side, const char eigsrc,
- const char initv, logical_t* select, const fortran_int_t n,
+ const char initv, fortran_bool_t* select, const fortran_int_t n,
         const double* h, const fortran_int_t ldh, double* wr,
         const double* wi, double* vl, const fortran_int_t ldvl, double* vr,
         const fortran_int_t ldvr, const fortran_int_t mm, fortran_int_t& m,
@@ -93,7 +93,7 @@
 //
 template< typename Side >
 inline std::ptrdiff_t hsein( const Side side, const char eigsrc,
- const char initv, const logical_t* select, const fortran_int_t n,
+ const char initv, const fortran_bool_t* select, const fortran_int_t n,
         const std::complex<float>* h, const fortran_int_t ldh,
         std::complex<float>* w, std::complex<float>* vl,
         const fortran_int_t ldvl, std::complex<float>* vr,
@@ -114,7 +114,7 @@
 //
 template< typename Side >
 inline std::ptrdiff_t hsein( const Side side, const char eigsrc,
- const char initv, const logical_t* select, const fortran_int_t n,
+ const char initv, const fortran_bool_t* select, const fortran_int_t n,
         const std::complex<double>* h, const fortran_int_t ldh,
         std::complex<double>* w, std::complex<double>* vl,
         const fortran_int_t ldvl, std::complex<double>* vr,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/stemr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/stemr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/stemr.hpp 2010-07-22 03:25:22 EDT (Thu, 22 Jul 2010)
@@ -58,9 +58,9 @@
         const fortran_int_t n, float* d, float* e, const float vl,
         const float vu, const fortran_int_t il, const fortran_int_t iu,
         fortran_int_t& m, float* w, float* z, const fortran_int_t ldz,
- const fortran_int_t nzc, fortran_int_t* isuppz, logical_t& tryrac,
- float* work, const fortran_int_t lwork, fortran_int_t* iwork,
- const fortran_int_t liwork ) {
+ const fortran_int_t nzc, fortran_int_t* isuppz,
+ fortran_bool_t& tryrac, float* work, const fortran_int_t lwork,
+ fortran_int_t* iwork, const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_SSTEMR( &jobz, &range, &n, d, e, &vl, &vu, &il, &iu, &m, w, z,
             &ldz, &nzc, isuppz, &tryrac, work, &lwork, iwork, &liwork, &info );
@@ -76,9 +76,9 @@
         const fortran_int_t n, double* d, double* e, const double vl,
         const double vu, const fortran_int_t il, const fortran_int_t iu,
         fortran_int_t& m, double* w, double* z, const fortran_int_t ldz,
- const fortran_int_t nzc, fortran_int_t* isuppz, logical_t& tryrac,
- double* work, const fortran_int_t lwork, fortran_int_t* iwork,
- const fortran_int_t liwork ) {
+ const fortran_int_t nzc, fortran_int_t* isuppz,
+ fortran_bool_t& tryrac, double* work, const fortran_int_t lwork,
+ fortran_int_t* iwork, const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_DSTEMR( &jobz, &range, &n, d, e, &vl, &vu, &il, &iu, &m, w, z,
             &ldz, &nzc, isuppz, &tryrac, work, &lwork, iwork, &liwork, &info );
@@ -95,7 +95,7 @@
         const float vu, const fortran_int_t il, const fortran_int_t iu,
         fortran_int_t& m, float* w, std::complex<float>* z,
         const fortran_int_t ldz, const fortran_int_t nzc,
- fortran_int_t* isuppz, logical_t& tryrac, float* work,
+ fortran_int_t* isuppz, fortran_bool_t& tryrac, float* work,
         const fortran_int_t lwork, fortran_int_t* iwork,
         const fortran_int_t liwork ) {
     fortran_int_t info(0);
@@ -114,7 +114,7 @@
         const double vu, const fortran_int_t il, const fortran_int_t iu,
         fortran_int_t& m, double* w, std::complex<double>* z,
         const fortran_int_t ldz, const fortran_int_t nzc,
- fortran_int_t* isuppz, logical_t& tryrac, double* work,
+ fortran_int_t* isuppz, fortran_bool_t& tryrac, double* work,
         const fortran_int_t lwork, fortran_int_t* iwork,
         const fortran_int_t liwork ) {
     fortran_int_t info(0);
@@ -155,7 +155,7 @@
             const fortran_int_t il, const fortran_int_t iu,
             fortran_int_t& m, VectorW& w, MatrixZ& z,
             const fortran_int_t nzc, VectorISUPPZ& isuppz,
- logical_t& tryrac, detail::workspace2< WORK, IWORK > work ) {
+ fortran_bool_t& tryrac, detail::workspace2< WORK, IWORK > work ) {
         namespace bindings = ::boost::numeric::bindings;
         BOOST_STATIC_ASSERT( (bindings::is_column_major< MatrixZ >::value) );
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
@@ -212,7 +212,7 @@
             const fortran_int_t il, const fortran_int_t iu,
             fortran_int_t& m, VectorW& w, MatrixZ& z,
             const fortran_int_t nzc, VectorISUPPZ& isuppz,
- logical_t& tryrac, minimal_workspace ) {
+ fortran_bool_t& tryrac, minimal_workspace ) {
         namespace bindings = ::boost::numeric::bindings;
         bindings::detail::array< real_type > tmp_work( min_size_work( n,
                 jobz ) );
@@ -237,7 +237,7 @@
             const fortran_int_t il, const fortran_int_t iu,
             fortran_int_t& m, VectorW& w, MatrixZ& z,
             const fortran_int_t nzc, VectorISUPPZ& isuppz,
- logical_t& tryrac, optimal_workspace ) {
+ fortran_bool_t& tryrac, optimal_workspace ) {
         namespace bindings = ::boost::numeric::bindings;
         real_type opt_size_work;
         fortran_int_t opt_size_iwork;
@@ -304,7 +304,7 @@
             const fortran_int_t il, const fortran_int_t iu,
             fortran_int_t& m, VectorW& w, MatrixZ& z,
             const fortran_int_t nzc, VectorISUPPZ& isuppz,
- logical_t& tryrac, detail::workspace2< WORK, IWORK > work ) {
+ fortran_bool_t& tryrac, detail::workspace2< WORK, IWORK > work ) {
         namespace bindings = ::boost::numeric::bindings;
         BOOST_STATIC_ASSERT( (bindings::is_column_major< MatrixZ >::value) );
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
@@ -357,7 +357,7 @@
             const fortran_int_t il, const fortran_int_t iu,
             fortran_int_t& m, VectorW& w, MatrixZ& z,
             const fortran_int_t nzc, VectorISUPPZ& isuppz,
- logical_t& tryrac, minimal_workspace ) {
+ fortran_bool_t& tryrac, minimal_workspace ) {
         namespace bindings = ::boost::numeric::bindings;
         bindings::detail::array< real_type > tmp_work( min_size_work( n,
                 jobz ) );
@@ -382,7 +382,7 @@
             const fortran_int_t il, const fortran_int_t iu,
             fortran_int_t& m, VectorW& w, MatrixZ& z,
             const fortran_int_t nzc, VectorISUPPZ& isuppz,
- logical_t& tryrac, optimal_workspace ) {
+ fortran_bool_t& tryrac, optimal_workspace ) {
         namespace bindings = ::boost::numeric::bindings;
         real_type opt_size_work;
         fortran_int_t opt_size_iwork;
@@ -439,7 +439,7 @@
 //
 // Overloaded function for stemr. Its overload differs for
 // * MatrixZ&
-// * logical_t&
+// * fortran_bool_t&
 // * User-defined workspace
 //
 template< typename VectorD, typename VectorE, typename VectorW,
@@ -453,7 +453,7 @@
         MatrixZ >::type >::type vu, const fortran_int_t il,
         const fortran_int_t iu, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const fortran_int_t nzc, VectorISUPPZ& isuppz,
- logical_t& tryrac, Workspace work ) {
+ fortran_bool_t& tryrac, Workspace work ) {
     return stemr_impl< typename bindings::value_type<
             MatrixZ >::type >::invoke( jobz, range, n, d, e, vl, vu, il, iu,
             m, w, z, nzc, isuppz, tryrac, work );
@@ -462,7 +462,7 @@
 //
 // Overloaded function for stemr. Its overload differs for
 // * MatrixZ&
-// * logical_t&
+// * fortran_bool_t&
 // * Default workspace-type (optimal)
 //
 template< typename VectorD, typename VectorE, typename VectorW,
@@ -476,7 +476,7 @@
         MatrixZ >::type >::type vu, const fortran_int_t il,
         const fortran_int_t iu, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const fortran_int_t nzc, VectorISUPPZ& isuppz,
- logical_t& tryrac ) {
+ fortran_bool_t& tryrac ) {
     return stemr_impl< typename bindings::value_type<
             MatrixZ >::type >::invoke( jobz, range, n, d, e, vl, vu, il, iu,
             m, w, z, nzc, isuppz, tryrac, optimal_workspace() );
@@ -485,7 +485,7 @@
 //
 // Overloaded function for stemr. Its overload differs for
 // * const MatrixZ&
-// * logical_t&
+// * fortran_bool_t&
 // * User-defined workspace
 //
 template< typename VectorD, typename VectorE, typename VectorW,
@@ -499,7 +499,7 @@
         MatrixZ >::type >::type vu, const fortran_int_t il,
         const fortran_int_t iu, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const fortran_int_t nzc, VectorISUPPZ& isuppz,
- logical_t& tryrac, Workspace work ) {
+ fortran_bool_t& tryrac, Workspace work ) {
     return stemr_impl< typename bindings::value_type<
             MatrixZ >::type >::invoke( jobz, range, n, d, e, vl, vu, il, iu,
             m, w, z, nzc, isuppz, tryrac, work );
@@ -508,7 +508,7 @@
 //
 // Overloaded function for stemr. Its overload differs for
 // * const MatrixZ&
-// * logical_t&
+// * fortran_bool_t&
 // * Default workspace-type (optimal)
 //
 template< typename VectorD, typename VectorE, typename VectorW,
@@ -522,7 +522,7 @@
         MatrixZ >::type >::type vu, const fortran_int_t il,
         const fortran_int_t iu, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const fortran_int_t nzc, VectorISUPPZ& isuppz,
- logical_t& tryrac ) {
+ fortran_bool_t& tryrac ) {
     return stemr_impl< typename bindings::value_type<
             MatrixZ >::type >::invoke( jobz, range, n, d, e, vl, vu, il, iu,
             m, w, z, nzc, isuppz, tryrac, optimal_workspace() );
@@ -531,7 +531,7 @@
 //
 // Overloaded function for stemr. Its overload differs for
 // * MatrixZ&
-// * const logical_t&
+// * const fortran_bool_t&
 // * User-defined workspace
 //
 template< typename VectorD, typename VectorE, typename VectorW,
@@ -545,7 +545,7 @@
         MatrixZ >::type >::type vu, const fortran_int_t il,
         const fortran_int_t iu, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const fortran_int_t nzc, VectorISUPPZ& isuppz,
- const logical_t& tryrac, Workspace work ) {
+ const fortran_bool_t& tryrac, Workspace work ) {
     return stemr_impl< typename bindings::value_type<
             MatrixZ >::type >::invoke( jobz, range, n, d, e, vl, vu, il, iu,
             m, w, z, nzc, isuppz, tryrac, work );
@@ -554,7 +554,7 @@
 //
 // Overloaded function for stemr. Its overload differs for
 // * MatrixZ&
-// * const logical_t&
+// * const fortran_bool_t&
 // * Default workspace-type (optimal)
 //
 template< typename VectorD, typename VectorE, typename VectorW,
@@ -568,7 +568,7 @@
         MatrixZ >::type >::type vu, const fortran_int_t il,
         const fortran_int_t iu, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const fortran_int_t nzc, VectorISUPPZ& isuppz,
- const logical_t& tryrac ) {
+ const fortran_bool_t& tryrac ) {
     return stemr_impl< typename bindings::value_type<
             MatrixZ >::type >::invoke( jobz, range, n, d, e, vl, vu, il, iu,
             m, w, z, nzc, isuppz, tryrac, optimal_workspace() );
@@ -577,7 +577,7 @@
 //
 // Overloaded function for stemr. Its overload differs for
 // * const MatrixZ&
-// * const logical_t&
+// * const fortran_bool_t&
 // * User-defined workspace
 //
 template< typename VectorD, typename VectorE, typename VectorW,
@@ -591,7 +591,7 @@
         MatrixZ >::type >::type vu, const fortran_int_t il,
         const fortran_int_t iu, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const fortran_int_t nzc, VectorISUPPZ& isuppz,
- const logical_t& tryrac, Workspace work ) {
+ const fortran_bool_t& tryrac, Workspace work ) {
     return stemr_impl< typename bindings::value_type<
             MatrixZ >::type >::invoke( jobz, range, n, d, e, vl, vu, il, iu,
             m, w, z, nzc, isuppz, tryrac, work );
@@ -600,7 +600,7 @@
 //
 // Overloaded function for stemr. Its overload differs for
 // * const MatrixZ&
-// * const logical_t&
+// * const fortran_bool_t&
 // * Default workspace-type (optimal)
 //
 template< typename VectorD, typename VectorE, typename VectorW,
@@ -614,7 +614,7 @@
         MatrixZ >::type >::type vu, const fortran_int_t il,
         const fortran_int_t iu, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const fortran_int_t nzc, VectorISUPPZ& isuppz,
- const logical_t& tryrac ) {
+ const fortran_bool_t& tryrac ) {
     return stemr_impl< typename bindings::value_type<
             MatrixZ >::type >::invoke( jobz, range, n, d, e, vl, vu, il, iu,
             m, w, z, nzc, isuppz, tryrac, optimal_workspace() );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgevc.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgevc.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgevc.hpp 2010-07-22 03:25:22 EDT (Thu, 22 Jul 2010)
@@ -55,7 +55,7 @@
 //
 template< typename Side >
 inline std::ptrdiff_t tgevc( const Side side, const char howmny,
- const logical_t* select, const fortran_int_t n, const float* s,
+ const fortran_bool_t* select, const fortran_int_t n, const float* s,
         const fortran_int_t lds, const float* p, const fortran_int_t ldp,
         float* vl, const fortran_int_t ldvl, float* vr,
         const fortran_int_t ldvr, const fortran_int_t mm, fortran_int_t& m,
@@ -73,7 +73,7 @@
 //
 template< typename Side >
 inline std::ptrdiff_t tgevc( const Side side, const char howmny,
- const logical_t* select, const fortran_int_t n, const double* s,
+ const fortran_bool_t* select, const fortran_int_t n, const double* s,
         const fortran_int_t lds, const double* p, const fortran_int_t ldp,
         double* vl, const fortran_int_t ldvl, double* vr,
         const fortran_int_t ldvr, const fortran_int_t mm, fortran_int_t& m,
@@ -91,7 +91,7 @@
 //
 template< typename Side >
 inline std::ptrdiff_t tgevc( const Side side, const char howmny,
- const logical_t* select, const fortran_int_t n,
+ const fortran_bool_t* select, const fortran_int_t n,
         const std::complex<float>* s, const fortran_int_t lds,
         const std::complex<float>* p, const fortran_int_t ldp,
         std::complex<float>* vl, const fortran_int_t ldvl,
@@ -111,7 +111,7 @@
 //
 template< typename Side >
 inline std::ptrdiff_t tgevc( const Side side, const char howmny,
- const logical_t* select, const fortran_int_t n,
+ const fortran_bool_t* select, const fortran_int_t n,
         const std::complex<double>* s, const fortran_int_t lds,
         const std::complex<double>* p, const fortran_int_t ldp,
         std::complex<double>* vl, const fortran_int_t ldvl,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgexc.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgexc.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgexc.hpp 2010-07-22 03:25:22 EDT (Thu, 22 Jul 2010)
@@ -54,11 +54,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, float* a, const fortran_int_t lda, float* b,
- const fortran_int_t ldb, float* q, const fortran_int_t ldq, float* z,
- const fortran_int_t ldz, fortran_int_t& ifst, fortran_int_t& ilst,
- float* work, const fortran_int_t lwork ) {
+inline std::ptrdiff_t tgexc( const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const fortran_int_t n, float* a,
+ const fortran_int_t lda, float* b, const fortran_int_t ldb, float* q,
+ const fortran_int_t ldq, float* z, const fortran_int_t ldz,
+ fortran_int_t& ifst, fortran_int_t& ilst, float* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_STGEXC( &wantq, &wantz, &n, a, &lda, b, &ldb, q, &ldq, z, &ldz,
             &ifst, &ilst, work, &lwork, &info );
@@ -70,11 +71,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, double* a, const fortran_int_t lda, double* b,
- const fortran_int_t ldb, double* q, const fortran_int_t ldq,
- double* z, const fortran_int_t ldz, fortran_int_t& ifst,
- fortran_int_t& ilst, double* work, const fortran_int_t lwork ) {
+inline std::ptrdiff_t tgexc( const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const fortran_int_t n, double* a,
+ const fortran_int_t lda, double* b, const fortran_int_t ldb,
+ double* q, const fortran_int_t ldq, double* z,
+ const fortran_int_t ldz, fortran_int_t& ifst, fortran_int_t& ilst,
+ double* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DTGEXC( &wantq, &wantz, &n, a, &lda, b, &ldb, q, &ldq, z, &ldz,
             &ifst, &ilst, work, &lwork, &info );
@@ -86,13 +88,13 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, std::complex<float>* a,
- const fortran_int_t lda, std::complex<float>* b,
- const fortran_int_t ldb, std::complex<float>* q,
- const fortran_int_t ldq, std::complex<float>* z,
- const fortran_int_t ldz, const fortran_int_t ifst,
- fortran_int_t& ilst ) {
+inline std::ptrdiff_t tgexc( const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const fortran_int_t n,
+ std::complex<float>* a, const fortran_int_t lda,
+ std::complex<float>* b, const fortran_int_t ldb,
+ std::complex<float>* q, const fortran_int_t ldq,
+ std::complex<float>* z, const fortran_int_t ldz,
+ const fortran_int_t ifst, fortran_int_t& ilst ) {
     fortran_int_t info(0);
     LAPACK_CTGEXC( &wantq, &wantz, &n, a, &lda, b, &ldb, q, &ldq, z, &ldz,
             &ifst, &ilst, &info );
@@ -104,13 +106,13 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, std::complex<double>* a,
- const fortran_int_t lda, std::complex<double>* b,
- const fortran_int_t ldb, std::complex<double>* q,
- const fortran_int_t ldq, std::complex<double>* z,
- const fortran_int_t ldz, const fortran_int_t ifst,
- fortran_int_t& ilst ) {
+inline std::ptrdiff_t tgexc( const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const fortran_int_t n,
+ std::complex<double>* a, const fortran_int_t lda,
+ std::complex<double>* b, const fortran_int_t ldb,
+ std::complex<double>* q, const fortran_int_t ldq,
+ std::complex<double>* z, const fortran_int_t ldz,
+ const fortran_int_t ifst, fortran_int_t& ilst ) {
     fortran_int_t info(0);
     LAPACK_ZTGEXC( &wantq, &wantz, &n, a, &lda, b, &ldb, q, &ldq, z, &ldz,
             &ifst, &ilst, &info );
@@ -142,9 +144,9 @@
     //
     template< typename MatrixA, typename MatrixB, typename MatrixQ,
             typename MatrixZ, typename WORK >
- static std::ptrdiff_t invoke( const logical_t wantq, const logical_t wantz,
- MatrixA& a, MatrixB& b, MatrixQ& q, MatrixZ& z,
- fortran_int_t& ifst, fortran_int_t& ilst,
+ static std::ptrdiff_t invoke( const fortran_bool_t wantq,
+ const fortran_bool_t wantz, MatrixA& a, MatrixB& b, MatrixQ& q,
+ MatrixZ& z, fortran_int_t& ifst, fortran_int_t& ilst,
             detail::workspace1< WORK > work ) {
         namespace bindings = ::boost::numeric::bindings;
         BOOST_STATIC_ASSERT( (bindings::is_column_major< MatrixA >::value) );
@@ -200,9 +202,9 @@
     //
     template< typename MatrixA, typename MatrixB, typename MatrixQ,
             typename MatrixZ >
- static std::ptrdiff_t invoke( const logical_t wantq, const logical_t wantz,
- MatrixA& a, MatrixB& b, MatrixQ& q, MatrixZ& z,
- fortran_int_t& ifst, fortran_int_t& ilst,
+ static std::ptrdiff_t invoke( const fortran_bool_t wantq,
+ const fortran_bool_t wantz, MatrixA& a, MatrixB& b, MatrixQ& q,
+ MatrixZ& z, fortran_int_t& ifst, fortran_int_t& ilst,
             minimal_workspace ) {
         namespace bindings = ::boost::numeric::bindings;
         bindings::detail::array< real_type > tmp_work( min_size_work(
@@ -220,9 +222,9 @@
     //
     template< typename MatrixA, typename MatrixB, typename MatrixQ,
             typename MatrixZ >
- static std::ptrdiff_t invoke( const logical_t wantq, const logical_t wantz,
- MatrixA& a, MatrixB& b, MatrixQ& q, MatrixZ& z,
- fortran_int_t& ifst, fortran_int_t& ilst,
+ static std::ptrdiff_t invoke( const fortran_bool_t wantq,
+ const fortran_bool_t wantz, MatrixA& a, MatrixB& b, MatrixQ& q,
+ MatrixZ& z, fortran_int_t& ifst, fortran_int_t& ilst,
             optimal_workspace ) {
         namespace bindings = ::boost::numeric::bindings;
         real_type opt_size_work;
@@ -266,9 +268,10 @@
     //
     template< typename MatrixA, typename MatrixB, typename MatrixQ,
             typename MatrixZ >
- static std::ptrdiff_t invoke( const logical_t wantq, const logical_t wantz,
- MatrixA& a, MatrixB& b, MatrixQ& q, MatrixZ& z,
- const fortran_int_t ifst, fortran_int_t& ilst ) {
+ static std::ptrdiff_t invoke( const fortran_bool_t wantq,
+ const fortran_bool_t wantz, MatrixA& a, MatrixB& b, MatrixQ& q,
+ MatrixZ& z, const fortran_int_t ifst,
+ fortran_int_t& ilst ) {
         namespace bindings = ::boost::numeric::bindings;
         BOOST_STATIC_ASSERT( (bindings::is_column_major< MatrixA >::value) );
         BOOST_STATIC_ASSERT( (bindings::is_column_major< MatrixB >::value) );
@@ -335,9 +338,9 @@
         typename MatrixZ, typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgexc( const logical_t wantq, const logical_t wantz, MatrixA& a,
- MatrixB& b, MatrixQ& q, MatrixZ& z, fortran_int_t& ifst,
- fortran_int_t& ilst, Workspace work ) {
+tgexc( const fortran_bool_t wantq, const fortran_bool_t wantz,
+ MatrixA& a, MatrixB& b, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& ifst, fortran_int_t& ilst, Workspace work ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst,
             work );
@@ -355,9 +358,9 @@
         typename MatrixZ >
 inline typename boost::disable_if< detail::is_workspace< MatrixZ >,
         std::ptrdiff_t >::type
-tgexc( const logical_t wantq, const logical_t wantz, MatrixA& a,
- MatrixB& b, MatrixQ& q, MatrixZ& z, fortran_int_t& ifst,
- fortran_int_t& ilst ) {
+tgexc( const fortran_bool_t wantq, const fortran_bool_t wantz,
+ MatrixA& a, MatrixB& b, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst,
             optimal_workspace() );
@@ -375,9 +378,9 @@
         typename MatrixZ, typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgexc( const logical_t wantq, const logical_t wantz, const MatrixA& a,
- MatrixB& b, MatrixQ& q, MatrixZ& z, fortran_int_t& ifst,
- fortran_int_t& ilst, Workspace work ) {
+tgexc( const fortran_bool_t wantq, const fortran_bool_t wantz,
+ const MatrixA& a, MatrixB& b, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& ifst, fortran_int_t& ilst, Workspace work ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst,
             work );
@@ -395,9 +398,9 @@
         typename MatrixZ >
 inline typename boost::disable_if< detail::is_workspace< MatrixZ >,
         std::ptrdiff_t >::type
-tgexc( const logical_t wantq, const logical_t wantz, const MatrixA& a,
- MatrixB& b, MatrixQ& q, MatrixZ& z, fortran_int_t& ifst,
- fortran_int_t& ilst ) {
+tgexc( const fortran_bool_t wantq, const fortran_bool_t wantz,
+ const MatrixA& a, MatrixB& b, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst,
             optimal_workspace() );
@@ -415,9 +418,9 @@
         typename MatrixZ, typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgexc( const logical_t wantq, const logical_t wantz, MatrixA& a,
- const MatrixB& b, MatrixQ& q, MatrixZ& z, fortran_int_t& ifst,
- fortran_int_t& ilst, Workspace work ) {
+tgexc( const fortran_bool_t wantq, const fortran_bool_t wantz,
+ MatrixA& a, const MatrixB& b, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& ifst, fortran_int_t& ilst, Workspace work ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst,
             work );
@@ -435,9 +438,9 @@
         typename MatrixZ >
 inline typename boost::disable_if< detail::is_workspace< MatrixZ >,
         std::ptrdiff_t >::type
-tgexc( const logical_t wantq, const logical_t wantz, MatrixA& a,
- const MatrixB& b, MatrixQ& q, MatrixZ& z, fortran_int_t& ifst,
- fortran_int_t& ilst ) {
+tgexc( const fortran_bool_t wantq, const fortran_bool_t wantz,
+ MatrixA& a, const MatrixB& b, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst,
             optimal_workspace() );
@@ -455,9 +458,9 @@
         typename MatrixZ, typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgexc( const logical_t wantq, const logical_t wantz, const MatrixA& a,
- const MatrixB& b, MatrixQ& q, MatrixZ& z, fortran_int_t& ifst,
- fortran_int_t& ilst, Workspace work ) {
+tgexc( const fortran_bool_t wantq, const fortran_bool_t wantz,
+ const MatrixA& a, const MatrixB& b, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& ifst, fortran_int_t& ilst, Workspace work ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst,
             work );
@@ -475,9 +478,9 @@
         typename MatrixZ >
 inline typename boost::disable_if< detail::is_workspace< MatrixZ >,
         std::ptrdiff_t >::type
-tgexc( const logical_t wantq, const logical_t wantz, const MatrixA& a,
- const MatrixB& b, MatrixQ& q, MatrixZ& z, fortran_int_t& ifst,
- fortran_int_t& ilst ) {
+tgexc( const fortran_bool_t wantq, const fortran_bool_t wantz,
+ const MatrixA& a, const MatrixB& b, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst,
             optimal_workspace() );
@@ -495,9 +498,9 @@
         typename MatrixZ, typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgexc( const logical_t wantq, const logical_t wantz, MatrixA& a,
- MatrixB& b, const MatrixQ& q, MatrixZ& z, fortran_int_t& ifst,
- fortran_int_t& ilst, Workspace work ) {
+tgexc( const fortran_bool_t wantq, const fortran_bool_t wantz,
+ MatrixA& a, MatrixB& b, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& ifst, fortran_int_t& ilst, Workspace work ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst,
             work );
@@ -515,9 +518,9 @@
         typename MatrixZ >
 inline typename boost::disable_if< detail::is_workspace< MatrixZ >,
         std::ptrdiff_t >::type
-tgexc( const logical_t wantq, const logical_t wantz, MatrixA& a,
- MatrixB& b, const MatrixQ& q, MatrixZ& z, fortran_int_t& ifst,
- fortran_int_t& ilst ) {
+tgexc( const fortran_bool_t wantq, const fortran_bool_t wantz,
+ MatrixA& a, MatrixB& b, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst,
             optimal_workspace() );
@@ -535,9 +538,9 @@
         typename MatrixZ, typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgexc( const logical_t wantq, const logical_t wantz, const MatrixA& a,
- MatrixB& b, const MatrixQ& q, MatrixZ& z, fortran_int_t& ifst,
- fortran_int_t& ilst, Workspace work ) {
+tgexc( const fortran_bool_t wantq, const fortran_bool_t wantz,
+ const MatrixA& a, MatrixB& b, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& ifst, fortran_int_t& ilst, Workspace work ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst,
             work );
@@ -555,9 +558,9 @@
         typename MatrixZ >
 inline typename boost::disable_if< detail::is_workspace< MatrixZ >,
         std::ptrdiff_t >::type
-tgexc( const logical_t wantq, const logical_t wantz, const MatrixA& a,
- MatrixB& b, const MatrixQ& q, MatrixZ& z, fortran_int_t& ifst,
- fortran_int_t& ilst ) {
+tgexc( const fortran_bool_t wantq, const fortran_bool_t wantz,
+ const MatrixA& a, MatrixB& b, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst,
             optimal_workspace() );
@@ -575,8 +578,8 @@
         typename MatrixZ, typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgexc( const logical_t wantq, const logical_t wantz, MatrixA& a,
- const MatrixB& b, const MatrixQ& q, MatrixZ& z,
+tgexc( const fortran_bool_t wantq, const fortran_bool_t wantz,
+ MatrixA& a, const MatrixB& b, const MatrixQ& q, MatrixZ& z,
         fortran_int_t& ifst, fortran_int_t& ilst, Workspace work ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst,
@@ -595,8 +598,8 @@
         typename MatrixZ >
 inline typename boost::disable_if< detail::is_workspace< MatrixZ >,
         std::ptrdiff_t >::type
-tgexc( const logical_t wantq, const logical_t wantz, MatrixA& a,
- const MatrixB& b, const MatrixQ& q, MatrixZ& z,
+tgexc( const fortran_bool_t wantq, const fortran_bool_t wantz,
+ MatrixA& a, const MatrixB& b, const MatrixQ& q, MatrixZ& z,
         fortran_int_t& ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst,
@@ -615,8 +618,8 @@
         typename MatrixZ, typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgexc( const logical_t wantq, const logical_t wantz, const MatrixA& a,
- const MatrixB& b, const MatrixQ& q, MatrixZ& z,
+tgexc( const fortran_bool_t wantq, const fortran_bool_t wantz,
+ const MatrixA& a, const MatrixB& b, const MatrixQ& q, MatrixZ& z,
         fortran_int_t& ifst, fortran_int_t& ilst, Workspace work ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst,
@@ -635,8 +638,8 @@
         typename MatrixZ >
 inline typename boost::disable_if< detail::is_workspace< MatrixZ >,
         std::ptrdiff_t >::type
-tgexc( const logical_t wantq, const logical_t wantz, const MatrixA& a,
- const MatrixB& b, const MatrixQ& q, MatrixZ& z,
+tgexc( const fortran_bool_t wantq, const fortran_bool_t wantz,
+ const MatrixA& a, const MatrixB& b, const MatrixQ& q, MatrixZ& z,
         fortran_int_t& ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst,
@@ -655,9 +658,9 @@
         typename MatrixZ, typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgexc( const logical_t wantq, const logical_t wantz, MatrixA& a,
- MatrixB& b, MatrixQ& q, const MatrixZ& z, fortran_int_t& ifst,
- fortran_int_t& ilst, Workspace work ) {
+tgexc( const fortran_bool_t wantq, const fortran_bool_t wantz,
+ MatrixA& a, MatrixB& b, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& ifst, fortran_int_t& ilst, Workspace work ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst,
             work );
@@ -675,9 +678,9 @@
         typename MatrixZ >
 inline typename boost::disable_if< detail::is_workspace< MatrixZ >,
         std::ptrdiff_t >::type
-tgexc( const logical_t wantq, const logical_t wantz, MatrixA& a,
- MatrixB& b, MatrixQ& q, const MatrixZ& z, fortran_int_t& ifst,
- fortran_int_t& ilst ) {
+tgexc( const fortran_bool_t wantq, const fortran_bool_t wantz,
+ MatrixA& a, MatrixB& b, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst,
             optimal_workspace() );
@@ -695,9 +698,9 @@
         typename MatrixZ, typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgexc( const logical_t wantq, const logical_t wantz, const MatrixA& a,
- MatrixB& b, MatrixQ& q, const MatrixZ& z, fortran_int_t& ifst,
- fortran_int_t& ilst, Workspace work ) {
+tgexc( const fortran_bool_t wantq, const fortran_bool_t wantz,
+ const MatrixA& a, MatrixB& b, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& ifst, fortran_int_t& ilst, Workspace work ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst,
             work );
@@ -715,9 +718,9 @@
         typename MatrixZ >
 inline typename boost::disable_if< detail::is_workspace< MatrixZ >,
         std::ptrdiff_t >::type
-tgexc( const logical_t wantq, const logical_t wantz, const MatrixA& a,
- MatrixB& b, MatrixQ& q, const MatrixZ& z, fortran_int_t& ifst,
- fortran_int_t& ilst ) {
+tgexc( const fortran_bool_t wantq, const fortran_bool_t wantz,
+ const MatrixA& a, MatrixB& b, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst,
             optimal_workspace() );
@@ -735,8 +738,8 @@
         typename MatrixZ, typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgexc( const logical_t wantq, const logical_t wantz, MatrixA& a,
- const MatrixB& b, MatrixQ& q, const MatrixZ& z,
+tgexc( const fortran_bool_t wantq, const fortran_bool_t wantz,
+ MatrixA& a, const MatrixB& b, MatrixQ& q, const MatrixZ& z,
         fortran_int_t& ifst, fortran_int_t& ilst, Workspace work ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst,
@@ -755,8 +758,8 @@
         typename MatrixZ >
 inline typename boost::disable_if< detail::is_workspace< MatrixZ >,
         std::ptrdiff_t >::type
-tgexc( const logical_t wantq, const logical_t wantz, MatrixA& a,
- const MatrixB& b, MatrixQ& q, const MatrixZ& z,
+tgexc( const fortran_bool_t wantq, const fortran_bool_t wantz,
+ MatrixA& a, const MatrixB& b, MatrixQ& q, const MatrixZ& z,
         fortran_int_t& ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst,
@@ -775,8 +778,8 @@
         typename MatrixZ, typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgexc( const logical_t wantq, const logical_t wantz, const MatrixA& a,
- const MatrixB& b, MatrixQ& q, const MatrixZ& z,
+tgexc( const fortran_bool_t wantq, const fortran_bool_t wantz,
+ const MatrixA& a, const MatrixB& b, MatrixQ& q, const MatrixZ& z,
         fortran_int_t& ifst, fortran_int_t& ilst, Workspace work ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst,
@@ -795,8 +798,8 @@
         typename MatrixZ >
 inline typename boost::disable_if< detail::is_workspace< MatrixZ >,
         std::ptrdiff_t >::type
-tgexc( const logical_t wantq, const logical_t wantz, const MatrixA& a,
- const MatrixB& b, MatrixQ& q, const MatrixZ& z,
+tgexc( const fortran_bool_t wantq, const fortran_bool_t wantz,
+ const MatrixA& a, const MatrixB& b, MatrixQ& q, const MatrixZ& z,
         fortran_int_t& ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst,
@@ -815,8 +818,8 @@
         typename MatrixZ, typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgexc( const logical_t wantq, const logical_t wantz, MatrixA& a,
- MatrixB& b, const MatrixQ& q, const MatrixZ& z,
+tgexc( const fortran_bool_t wantq, const fortran_bool_t wantz,
+ MatrixA& a, MatrixB& b, const MatrixQ& q, const MatrixZ& z,
         fortran_int_t& ifst, fortran_int_t& ilst, Workspace work ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst,
@@ -835,8 +838,8 @@
         typename MatrixZ >
 inline typename boost::disable_if< detail::is_workspace< MatrixZ >,
         std::ptrdiff_t >::type
-tgexc( const logical_t wantq, const logical_t wantz, MatrixA& a,
- MatrixB& b, const MatrixQ& q, const MatrixZ& z,
+tgexc( const fortran_bool_t wantq, const fortran_bool_t wantz,
+ MatrixA& a, MatrixB& b, const MatrixQ& q, const MatrixZ& z,
         fortran_int_t& ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst,
@@ -855,8 +858,8 @@
         typename MatrixZ, typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgexc( const logical_t wantq, const logical_t wantz, const MatrixA& a,
- MatrixB& b, const MatrixQ& q, const MatrixZ& z,
+tgexc( const fortran_bool_t wantq, const fortran_bool_t wantz,
+ const MatrixA& a, MatrixB& b, const MatrixQ& q, const MatrixZ& z,
         fortran_int_t& ifst, fortran_int_t& ilst, Workspace work ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst,
@@ -875,8 +878,8 @@
         typename MatrixZ >
 inline typename boost::disable_if< detail::is_workspace< MatrixZ >,
         std::ptrdiff_t >::type
-tgexc( const logical_t wantq, const logical_t wantz, const MatrixA& a,
- MatrixB& b, const MatrixQ& q, const MatrixZ& z,
+tgexc( const fortran_bool_t wantq, const fortran_bool_t wantz,
+ const MatrixA& a, MatrixB& b, const MatrixQ& q, const MatrixZ& z,
         fortran_int_t& ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst,
@@ -895,8 +898,8 @@
         typename MatrixZ, typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgexc( const logical_t wantq, const logical_t wantz, MatrixA& a,
- const MatrixB& b, const MatrixQ& q, const MatrixZ& z,
+tgexc( const fortran_bool_t wantq, const fortran_bool_t wantz,
+ MatrixA& a, const MatrixB& b, const MatrixQ& q, const MatrixZ& z,
         fortran_int_t& ifst, fortran_int_t& ilst, Workspace work ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst,
@@ -915,8 +918,8 @@
         typename MatrixZ >
 inline typename boost::disable_if< detail::is_workspace< MatrixZ >,
         std::ptrdiff_t >::type
-tgexc( const logical_t wantq, const logical_t wantz, MatrixA& a,
- const MatrixB& b, const MatrixQ& q, const MatrixZ& z,
+tgexc( const fortran_bool_t wantq, const fortran_bool_t wantz,
+ MatrixA& a, const MatrixB& b, const MatrixQ& q, const MatrixZ& z,
         fortran_int_t& ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst,
@@ -935,9 +938,10 @@
         typename MatrixZ, typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgexc( const logical_t wantq, const logical_t wantz, const MatrixA& a,
- const MatrixB& b, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& ifst, fortran_int_t& ilst, Workspace work ) {
+tgexc( const fortran_bool_t wantq, const fortran_bool_t wantz,
+ const MatrixA& a, const MatrixB& b, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& ifst, fortran_int_t& ilst,
+ Workspace work ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst,
             work );
@@ -955,9 +959,9 @@
         typename MatrixZ >
 inline typename boost::disable_if< detail::is_workspace< MatrixZ >,
         std::ptrdiff_t >::type
-tgexc( const logical_t wantq, const logical_t wantz, const MatrixA& a,
- const MatrixB& b, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& ifst, fortran_int_t& ilst ) {
+tgexc( const fortran_bool_t wantq, const fortran_bool_t wantz,
+ const MatrixA& a, const MatrixB& b, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst,
             optimal_workspace() );
@@ -971,9 +975,9 @@
 //
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
-inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- MatrixA& a, MatrixB& b, MatrixQ& q, MatrixZ& z,
- const fortran_int_t ifst, fortran_int_t& ilst ) {
+inline std::ptrdiff_t tgexc( const fortran_bool_t wantq,
+ const fortran_bool_t wantz, MatrixA& a, MatrixB& b, MatrixQ& q,
+ MatrixZ& z, const fortran_int_t ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst );
 }
@@ -987,9 +991,9 @@
 //
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
-inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const MatrixA& a, MatrixB& b, MatrixQ& q, MatrixZ& z,
- const fortran_int_t ifst, fortran_int_t& ilst ) {
+inline std::ptrdiff_t tgexc( const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const MatrixA& a, MatrixB& b, MatrixQ& q,
+ MatrixZ& z, const fortran_int_t ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst );
 }
@@ -1003,9 +1007,9 @@
 //
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
-inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- MatrixA& a, const MatrixB& b, MatrixQ& q, MatrixZ& z,
- const fortran_int_t ifst, fortran_int_t& ilst ) {
+inline std::ptrdiff_t tgexc( const fortran_bool_t wantq,
+ const fortran_bool_t wantz, MatrixA& a, const MatrixB& b, MatrixQ& q,
+ MatrixZ& z, const fortran_int_t ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst );
 }
@@ -1019,9 +1023,10 @@
 //
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
-inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const MatrixA& a, const MatrixB& b, MatrixQ& q, MatrixZ& z,
- const fortran_int_t ifst, fortran_int_t& ilst ) {
+inline std::ptrdiff_t tgexc( const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const MatrixA& a, const MatrixB& b,
+ MatrixQ& q, MatrixZ& z, const fortran_int_t ifst,
+ fortran_int_t& ilst ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst );
 }
@@ -1035,9 +1040,9 @@
 //
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
-inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- MatrixA& a, MatrixB& b, const MatrixQ& q, MatrixZ& z,
- const fortran_int_t ifst, fortran_int_t& ilst ) {
+inline std::ptrdiff_t tgexc( const fortran_bool_t wantq,
+ const fortran_bool_t wantz, MatrixA& a, MatrixB& b, const MatrixQ& q,
+ MatrixZ& z, const fortran_int_t ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst );
 }
@@ -1051,9 +1056,10 @@
 //
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
-inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const MatrixA& a, MatrixB& b, const MatrixQ& q, MatrixZ& z,
- const fortran_int_t ifst, fortran_int_t& ilst ) {
+inline std::ptrdiff_t tgexc( const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const MatrixA& a, MatrixB& b,
+ const MatrixQ& q, MatrixZ& z, const fortran_int_t ifst,
+ fortran_int_t& ilst ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst );
 }
@@ -1067,9 +1073,10 @@
 //
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
-inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- MatrixA& a, const MatrixB& b, const MatrixQ& q, MatrixZ& z,
- const fortran_int_t ifst, fortran_int_t& ilst ) {
+inline std::ptrdiff_t tgexc( const fortran_bool_t wantq,
+ const fortran_bool_t wantz, MatrixA& a, const MatrixB& b,
+ const MatrixQ& q, MatrixZ& z, const fortran_int_t ifst,
+ fortran_int_t& ilst ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst );
 }
@@ -1083,9 +1090,10 @@
 //
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
-inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const MatrixA& a, const MatrixB& b, const MatrixQ& q, MatrixZ& z,
- const fortran_int_t ifst, fortran_int_t& ilst ) {
+inline std::ptrdiff_t tgexc( const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const MatrixA& a, const MatrixB& b,
+ const MatrixQ& q, MatrixZ& z, const fortran_int_t ifst,
+ fortran_int_t& ilst ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst );
 }
@@ -1099,9 +1107,10 @@
 //
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
-inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- MatrixA& a, MatrixB& b, MatrixQ& q, const MatrixZ& z,
- const fortran_int_t ifst, fortran_int_t& ilst ) {
+inline std::ptrdiff_t tgexc( const fortran_bool_t wantq,
+ const fortran_bool_t wantz, MatrixA& a, MatrixB& b, MatrixQ& q,
+ const MatrixZ& z, const fortran_int_t ifst,
+ fortran_int_t& ilst ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst );
 }
@@ -1115,9 +1124,10 @@
 //
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
-inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const MatrixA& a, MatrixB& b, MatrixQ& q, const MatrixZ& z,
- const fortran_int_t ifst, fortran_int_t& ilst ) {
+inline std::ptrdiff_t tgexc( const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const MatrixA& a, MatrixB& b, MatrixQ& q,
+ const MatrixZ& z, const fortran_int_t ifst,
+ fortran_int_t& ilst ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst );
 }
@@ -1131,9 +1141,10 @@
 //
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
-inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- MatrixA& a, const MatrixB& b, MatrixQ& q, const MatrixZ& z,
- const fortran_int_t ifst, fortran_int_t& ilst ) {
+inline std::ptrdiff_t tgexc( const fortran_bool_t wantq,
+ const fortran_bool_t wantz, MatrixA& a, const MatrixB& b, MatrixQ& q,
+ const MatrixZ& z, const fortran_int_t ifst,
+ fortran_int_t& ilst ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst );
 }
@@ -1147,9 +1158,10 @@
 //
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
-inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const MatrixA& a, const MatrixB& b, MatrixQ& q, const MatrixZ& z,
- const fortran_int_t ifst, fortran_int_t& ilst ) {
+inline std::ptrdiff_t tgexc( const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const MatrixA& a, const MatrixB& b,
+ MatrixQ& q, const MatrixZ& z, const fortran_int_t ifst,
+ fortran_int_t& ilst ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst );
 }
@@ -1163,9 +1175,10 @@
 //
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
-inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- MatrixA& a, MatrixB& b, const MatrixQ& q, const MatrixZ& z,
- const fortran_int_t ifst, fortran_int_t& ilst ) {
+inline std::ptrdiff_t tgexc( const fortran_bool_t wantq,
+ const fortran_bool_t wantz, MatrixA& a, MatrixB& b, const MatrixQ& q,
+ const MatrixZ& z, const fortran_int_t ifst,
+ fortran_int_t& ilst ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst );
 }
@@ -1179,9 +1192,10 @@
 //
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
-inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const MatrixA& a, MatrixB& b, const MatrixQ& q, const MatrixZ& z,
- const fortran_int_t ifst, fortran_int_t& ilst ) {
+inline std::ptrdiff_t tgexc( const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const MatrixA& a, MatrixB& b,
+ const MatrixQ& q, const MatrixZ& z, const fortran_int_t ifst,
+ fortran_int_t& ilst ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst );
 }
@@ -1195,9 +1209,10 @@
 //
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
-inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- MatrixA& a, const MatrixB& b, const MatrixQ& q, const MatrixZ& z,
- const fortran_int_t ifst, fortran_int_t& ilst ) {
+inline std::ptrdiff_t tgexc( const fortran_bool_t wantq,
+ const fortran_bool_t wantz, MatrixA& a, const MatrixB& b,
+ const MatrixQ& q, const MatrixZ& z, const fortran_int_t ifst,
+ fortran_int_t& ilst ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst );
 }
@@ -1211,9 +1226,9 @@
 //
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
-inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const MatrixA& a, const MatrixB& b, const MatrixQ& q,
- const MatrixZ& z, const fortran_int_t ifst,
+inline std::ptrdiff_t tgexc( const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const MatrixA& a, const MatrixB& b,
+ const MatrixQ& q, const MatrixZ& z, const fortran_int_t ifst,
         fortran_int_t& ilst ) {
     return tgexc_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( wantq, wantz, a, b, q, z, ifst, ilst );

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 2010-07-22 03:25:22 EDT (Thu, 22 Jul 2010)
@@ -54,9 +54,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const logical_t* select, const fortran_int_t n,
- float* a, const fortran_int_t lda, float* b, const fortran_int_t ldb,
+inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
+ const fortran_bool_t wantq, const fortran_bool_t wantz,
+ const fortran_bool_t* select, const fortran_int_t n, float* a,
+ const fortran_int_t lda, float* b, const fortran_int_t ldb,
         float* alphar, float* alphai, float* beta, float* q,
         const fortran_int_t ldq, float* z, const fortran_int_t ldz,
         fortran_int_t& m, float& pl, float& pr, float* dif, float* work,
@@ -74,14 +75,15 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const logical_t* select, const fortran_int_t n,
- double* a, const fortran_int_t lda, double* b,
- const fortran_int_t ldb, double* alphar, double* alphai, double* beta,
- double* q, const fortran_int_t ldq, double* z,
- const fortran_int_t ldz, fortran_int_t& m, double& pl, double& pr,
- double* dif, double* work, const fortran_int_t lwork,
- fortran_int_t* iwork, const fortran_int_t liwork ) {
+inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
+ const fortran_bool_t wantq, const fortran_bool_t wantz,
+ const fortran_bool_t* select, const fortran_int_t n, double* a,
+ const fortran_int_t lda, double* b, const fortran_int_t ldb,
+ double* alphar, double* alphai, double* beta, double* q,
+ const fortran_int_t ldq, double* z, const fortran_int_t ldz,
+ fortran_int_t& m, double& pl, double& pr, double* dif, double* work,
+ const fortran_int_t lwork, fortran_int_t* iwork,
+ const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_DTGSEN( &ijob, &wantq, &wantz, select, &n, a, &lda, b, &ldb,
             alphar, alphai, beta, q, &ldq, z, &ldz, &m, &pl, &pr, dif, work,
@@ -94,8 +96,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const logical_t* select, const fortran_int_t n,
+inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
+ const fortran_bool_t wantq, const fortran_bool_t wantz,
+ const fortran_bool_t* select, const fortran_int_t n,
         std::complex<float>* a, const fortran_int_t lda,
         std::complex<float>* b, const fortran_int_t ldb,
         std::complex<float>* alpha, std::complex<float>* beta,
@@ -116,8 +119,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const logical_t* select, const fortran_int_t n,
+inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
+ const fortran_bool_t wantq, const fortran_bool_t wantz,
+ const fortran_bool_t* select, const fortran_int_t n,
         std::complex<double>* a, const fortran_int_t lda,
         std::complex<double>* b, const fortran_int_t ldb,
         std::complex<double>* alpha, std::complex<double>* beta,
@@ -161,7 +165,7 @@
             typename MatrixQ, typename MatrixZ, typename VectorDIF,
             typename WORK, typename IWORK >
     static std::ptrdiff_t invoke( const fortran_int_t ijob,
- const logical_t wantq, const logical_t wantz,
+ const fortran_bool_t wantq, const fortran_bool_t wantz,
             const VectorSELECT& select, MatrixA& a, MatrixB& b,
             VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
             MatrixQ& q, MatrixZ& z, fortran_int_t& m, real_type& pl,
@@ -254,7 +258,7 @@
             typename VectorALPHAR, typename VectorALPHAI, typename VectorBETA,
             typename MatrixQ, typename MatrixZ, typename VectorDIF >
     static std::ptrdiff_t invoke( const fortran_int_t ijob,
- const logical_t wantq, const logical_t wantz,
+ const fortran_bool_t wantq, const fortran_bool_t wantz,
             const VectorSELECT& select, MatrixA& a, MatrixB& b,
             VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
             MatrixQ& q, MatrixZ& z, fortran_int_t& m, real_type& pl,
@@ -279,7 +283,7 @@
             typename VectorALPHAR, typename VectorALPHAI, typename VectorBETA,
             typename MatrixQ, typename MatrixZ, typename VectorDIF >
     static std::ptrdiff_t invoke( const fortran_int_t ijob,
- const logical_t wantq, const logical_t wantz,
+ const fortran_bool_t wantq, const fortran_bool_t wantz,
             const VectorSELECT& select, MatrixA& a, MatrixB& b,
             VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
             MatrixQ& q, MatrixZ& z, fortran_int_t& m, real_type& pl,
@@ -348,7 +352,7 @@
             typename MatrixZ, typename VectorDIF, typename WORK,
             typename IWORK >
     static std::ptrdiff_t invoke( const fortran_int_t ijob,
- const logical_t wantq, const logical_t wantz,
+ const fortran_bool_t wantq, const fortran_bool_t wantz,
             const VectorSELECT& select, MatrixA& a, MatrixB& b,
             VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
             fortran_int_t& m, real_type& pl, real_type& pr,
@@ -429,7 +433,7 @@
             typename VectorALPHA, typename VectorBETA, typename MatrixQ,
             typename MatrixZ, typename VectorDIF >
     static std::ptrdiff_t invoke( const fortran_int_t ijob,
- const logical_t wantq, const logical_t wantz,
+ const fortran_bool_t wantq, const fortran_bool_t wantz,
             const VectorSELECT& select, MatrixA& a, MatrixB& b,
             VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
             fortran_int_t& m, real_type& pl, real_type& pr,
@@ -454,7 +458,7 @@
             typename VectorALPHA, typename VectorBETA, typename MatrixQ,
             typename MatrixZ, typename VectorDIF >
     static std::ptrdiff_t invoke( const fortran_int_t ijob,
- const logical_t wantq, const logical_t wantz,
+ const fortran_bool_t wantq, const fortran_bool_t wantz,
             const VectorSELECT& select, MatrixA& a, MatrixB& b,
             VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
             fortran_int_t& m, real_type& pl, real_type& pr,
@@ -528,8 +532,8 @@
         typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, MatrixA& a,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select, MatrixA& a,
         MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
         VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename bindings::value_type<
@@ -554,8 +558,8 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline typename boost::disable_if< detail::is_workspace< VectorDIF >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, MatrixA& a,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select, MatrixA& a,
         MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
         VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename bindings::value_type<
@@ -581,14 +585,14 @@
         typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, const MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select,
+ const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
+ VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary<
+ typename bindings::value_type< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename bindings::value_type<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename bindings::value_type< MatrixA >::type >::type& pr,
- VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( ijob, wantq, wantz, select, a, b,
             alphar, alphai, beta, q, z, m, pl, pr, dif, work );
@@ -607,14 +611,14 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline typename boost::disable_if< detail::is_workspace< VectorDIF >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, const MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select,
+ const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
+ VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary<
+ typename bindings::value_type< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename bindings::value_type<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename bindings::value_type< MatrixA >::type >::type& pr,
- VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( ijob, wantq, wantz, select, a, b,
             alphar, alphai, beta, q, z, m, pl, pr, dif, optimal_workspace() );
@@ -634,8 +638,8 @@
         typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, MatrixA& a,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select, MatrixA& a,
         const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
         VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename bindings::value_type<
@@ -660,8 +664,8 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline typename boost::disable_if< detail::is_workspace< VectorDIF >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, MatrixA& a,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select, MatrixA& a,
         const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
         VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename bindings::value_type<
@@ -687,14 +691,14 @@
         typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, const MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select,
+ const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
+ VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary<
+ typename bindings::value_type< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename bindings::value_type<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename bindings::value_type< MatrixA >::type >::type& pr,
- VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( ijob, wantq, wantz, select, a, b,
             alphar, alphai, beta, q, z, m, pl, pr, dif, work );
@@ -713,14 +717,14 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline typename boost::disable_if< detail::is_workspace< VectorDIF >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, const MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select,
+ const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
+ VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary<
+ typename bindings::value_type< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename bindings::value_type<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename bindings::value_type< MatrixA >::type >::type& pr,
- VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( ijob, wantq, wantz, select, a, b,
             alphar, alphai, beta, q, z, m, pl, pr, dif, optimal_workspace() );
@@ -740,8 +744,8 @@
         typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, MatrixA& a,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select, MatrixA& a,
         MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
         VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename bindings::value_type<
@@ -766,8 +770,8 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline typename boost::disable_if< detail::is_workspace< VectorDIF >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, MatrixA& a,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select, MatrixA& a,
         MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
         VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename bindings::value_type<
@@ -793,14 +797,14 @@
         typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, const MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select,
+ const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
+ VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary<
+ typename bindings::value_type< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename bindings::value_type<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename bindings::value_type< MatrixA >::type >::type& pr,
- VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( ijob, wantq, wantz, select, a, b,
             alphar, alphai, beta, q, z, m, pl, pr, dif, work );
@@ -819,14 +823,14 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline typename boost::disable_if< detail::is_workspace< VectorDIF >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, const MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select,
+ const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
+ VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary<
+ typename bindings::value_type< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename bindings::value_type<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename bindings::value_type< MatrixA >::type >::type& pr,
- VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( ijob, wantq, wantz, select, a, b,
             alphar, alphai, beta, q, z, m, pl, pr, dif, optimal_workspace() );
@@ -846,8 +850,8 @@
         typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, MatrixA& a,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select, MatrixA& a,
         const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
         VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename bindings::value_type<
@@ -872,8 +876,8 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline typename boost::disable_if< detail::is_workspace< VectorDIF >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, MatrixA& a,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select, MatrixA& a,
         const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
         VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename bindings::value_type<
@@ -899,14 +903,14 @@
         typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, const MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select,
+ const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
+ VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary<
+ typename bindings::value_type< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename bindings::value_type<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename bindings::value_type< MatrixA >::type >::type& pr,
- VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( ijob, wantq, wantz, select, a, b,
             alphar, alphai, beta, q, z, m, pl, pr, dif, work );
@@ -925,14 +929,14 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline typename boost::disable_if< detail::is_workspace< VectorDIF >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, const MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select,
+ const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
+ VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary<
+ typename bindings::value_type< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename bindings::value_type<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename bindings::value_type< MatrixA >::type >::type& pr,
- VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( ijob, wantq, wantz, select, a, b,
             alphar, alphai, beta, q, z, m, pl, pr, dif, optimal_workspace() );
@@ -952,8 +956,8 @@
         typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, MatrixA& a,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select, MatrixA& a,
         MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
         VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename bindings::value_type<
@@ -978,8 +982,8 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline typename boost::disable_if< detail::is_workspace< VectorDIF >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, MatrixA& a,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select, MatrixA& a,
         MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
         VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename bindings::value_type<
@@ -1005,14 +1009,14 @@
         typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, const MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select,
+ const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
+ VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary<
+ typename bindings::value_type< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename bindings::value_type<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename bindings::value_type< MatrixA >::type >::type& pr,
- VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( ijob, wantq, wantz, select, a, b,
             alphar, alphai, beta, q, z, m, pl, pr, dif, work );
@@ -1031,14 +1035,14 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline typename boost::disable_if< detail::is_workspace< VectorDIF >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, const MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select,
+ const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
+ VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary<
+ typename bindings::value_type< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename bindings::value_type<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename bindings::value_type< MatrixA >::type >::type& pr,
- VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( ijob, wantq, wantz, select, a, b,
             alphar, alphai, beta, q, z, m, pl, pr, dif, optimal_workspace() );
@@ -1058,8 +1062,8 @@
         typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, MatrixA& a,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select, MatrixA& a,
         const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
         VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename bindings::value_type<
@@ -1084,8 +1088,8 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline typename boost::disable_if< detail::is_workspace< VectorDIF >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, MatrixA& a,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select, MatrixA& a,
         const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
         VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename bindings::value_type<
@@ -1111,14 +1115,14 @@
         typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, const MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select,
+ const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
+ VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary<
+ typename bindings::value_type< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename bindings::value_type<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename bindings::value_type< MatrixA >::type >::type& pr,
- VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( ijob, wantq, wantz, select, a, b,
             alphar, alphai, beta, q, z, m, pl, pr, dif, work );
@@ -1137,14 +1141,14 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline typename boost::disable_if< detail::is_workspace< VectorDIF >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, const MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select,
+ const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
+ VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary<
+ typename bindings::value_type< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename bindings::value_type<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename bindings::value_type< MatrixA >::type >::type& pr,
- VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( ijob, wantq, wantz, select, a, b,
             alphar, alphai, beta, q, z, m, pl, pr, dif, optimal_workspace() );
@@ -1164,8 +1168,8 @@
         typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, MatrixA& a,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select, MatrixA& a,
         MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
         VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary<
@@ -1190,8 +1194,8 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline typename boost::disable_if< detail::is_workspace< VectorDIF >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, MatrixA& a,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select, MatrixA& a,
         MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
         VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary<
@@ -1217,11 +1221,11 @@
         typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, const MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary<
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select,
+ const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
+ VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
         typename bindings::value_type< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename bindings::value_type<
         MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
@@ -1243,11 +1247,11 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline typename boost::disable_if< detail::is_workspace< VectorDIF >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, const MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary<
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select,
+ const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
+ VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
         typename bindings::value_type< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename bindings::value_type<
         MatrixA >::type >::type& pr, VectorDIF& dif ) {
@@ -1270,8 +1274,8 @@
         typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, MatrixA& a,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select, MatrixA& a,
         const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
         VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary<
@@ -1296,8 +1300,8 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline typename boost::disable_if< detail::is_workspace< VectorDIF >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, MatrixA& a,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select, MatrixA& a,
         const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
         VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary<
@@ -1323,11 +1327,11 @@
         typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, const MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary<
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select,
+ const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
+ VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
         typename bindings::value_type< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename bindings::value_type<
         MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
@@ -1349,11 +1353,11 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline typename boost::disable_if< detail::is_workspace< VectorDIF >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, const MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary<
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select,
+ const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
+ VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
         typename bindings::value_type< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename bindings::value_type<
         MatrixA >::type >::type& pr, VectorDIF& dif ) {
@@ -1374,8 +1378,8 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, MatrixA& a,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select, MatrixA& a,
         MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
         MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
         typename bindings::value_type< MatrixA >::type >::type& pl,
@@ -1399,8 +1403,8 @@
         typename MatrixZ, typename VectorDIF >
 inline typename boost::disable_if< detail::is_workspace< VectorDIF >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, MatrixA& a,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select, MatrixA& a,
         MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
         MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
         typename bindings::value_type< MatrixA >::type >::type& pl,
@@ -1424,13 +1428,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, const MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename bindings::value_type< MatrixA >::type >::type& pl,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select,
+ const MatrixA& a, MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename bindings::value_type<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename bindings::value_type< MatrixA >::type >::type& pr,
+ VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( ijob, wantq, wantz, select, a, b,
             alpha, beta, q, z, m, pl, pr, dif, work );
@@ -1449,13 +1454,14 @@
         typename MatrixZ, typename VectorDIF >
 inline typename boost::disable_if< detail::is_workspace< VectorDIF >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, const MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename bindings::value_type< MatrixA >::type >::type& pl,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select,
+ const MatrixA& a, MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename bindings::value_type<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename bindings::value_type< MatrixA >::type >::type& pr,
+ VectorDIF& dif ) {
     return tgsen_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( ijob, wantq, wantz, select, a, b,
             alpha, beta, q, z, m, pl, pr, dif, optimal_workspace() );
@@ -1474,8 +1480,8 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, MatrixA& a,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select, MatrixA& a,
         const MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
         MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
         typename bindings::value_type< MatrixA >::type >::type& pl,
@@ -1499,8 +1505,8 @@
         typename MatrixZ, typename VectorDIF >
 inline typename boost::disable_if< detail::is_workspace< VectorDIF >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, MatrixA& a,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select, MatrixA& a,
         const MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
         MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
         typename bindings::value_type< MatrixA >::type >::type& pl,
@@ -1524,13 +1530,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, const MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename bindings::value_type< MatrixA >::type >::type& pl,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select,
+ const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
+ VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename bindings::value_type<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename bindings::value_type< MatrixA >::type >::type& pr,
+ VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( ijob, wantq, wantz, select, a, b,
             alpha, beta, q, z, m, pl, pr, dif, work );
@@ -1549,13 +1556,14 @@
         typename MatrixZ, typename VectorDIF >
 inline typename boost::disable_if< detail::is_workspace< VectorDIF >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, const MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename bindings::value_type< MatrixA >::type >::type& pl,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select,
+ const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
+ VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename bindings::value_type<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename bindings::value_type< MatrixA >::type >::type& pr,
+ VectorDIF& dif ) {
     return tgsen_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( ijob, wantq, wantz, select, a, b,
             alpha, beta, q, z, m, pl, pr, dif, optimal_workspace() );
@@ -1574,8 +1582,8 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, MatrixA& a,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select, MatrixA& a,
         MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
         MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
         typename bindings::value_type< MatrixA >::type >::type& pl,
@@ -1599,8 +1607,8 @@
         typename MatrixZ, typename VectorDIF >
 inline typename boost::disable_if< detail::is_workspace< VectorDIF >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, MatrixA& a,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select, MatrixA& a,
         MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
         MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
         typename bindings::value_type< MatrixA >::type >::type& pl,
@@ -1624,13 +1632,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, const MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename bindings::value_type< MatrixA >::type >::type& pl,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select,
+ const MatrixA& a, MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename bindings::value_type<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename bindings::value_type< MatrixA >::type >::type& pr,
+ VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( ijob, wantq, wantz, select, a, b,
             alpha, beta, q, z, m, pl, pr, dif, work );
@@ -1649,13 +1658,14 @@
         typename MatrixZ, typename VectorDIF >
 inline typename boost::disable_if< detail::is_workspace< VectorDIF >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, const MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename bindings::value_type< MatrixA >::type >::type& pl,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select,
+ const MatrixA& a, MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename bindings::value_type<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename bindings::value_type< MatrixA >::type >::type& pr,
+ VectorDIF& dif ) {
     return tgsen_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( ijob, wantq, wantz, select, a, b,
             alpha, beta, q, z, m, pl, pr, dif, optimal_workspace() );
@@ -1674,8 +1684,8 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, MatrixA& a,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select, MatrixA& a,
         const MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
         const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename bindings::value_type<
@@ -1700,8 +1710,8 @@
         typename MatrixZ, typename VectorDIF >
 inline typename boost::disable_if< detail::is_workspace< VectorDIF >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, MatrixA& a,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select, MatrixA& a,
         const MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
         const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename bindings::value_type<
@@ -1726,10 +1736,10 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, const MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select,
+ const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
+ VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename bindings::value_type<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename bindings::value_type< MatrixA >::type >::type& pr,
@@ -1752,10 +1762,10 @@
         typename MatrixZ, typename VectorDIF >
 inline typename boost::disable_if< detail::is_workspace< VectorDIF >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, const MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select,
+ const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
+ VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename bindings::value_type<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename bindings::value_type< MatrixA >::type >::type& pr,
@@ -1778,8 +1788,8 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, MatrixA& a,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select, MatrixA& a,
         MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
         const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
         typename bindings::value_type< MatrixA >::type >::type& pl,
@@ -1803,8 +1813,8 @@
         typename MatrixZ, typename VectorDIF >
 inline typename boost::disable_if< detail::is_workspace< VectorDIF >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, MatrixA& a,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select, MatrixA& a,
         MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
         const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
         typename bindings::value_type< MatrixA >::type >::type& pl,
@@ -1828,13 +1838,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, const MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename bindings::value_type< MatrixA >::type >::type& pl,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select,
+ const MatrixA& a, MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename bindings::value_type<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename bindings::value_type< MatrixA >::type >::type& pr,
+ VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( ijob, wantq, wantz, select, a, b,
             alpha, beta, q, z, m, pl, pr, dif, work );
@@ -1853,13 +1864,14 @@
         typename MatrixZ, typename VectorDIF >
 inline typename boost::disable_if< detail::is_workspace< VectorDIF >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, const MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename bindings::value_type< MatrixA >::type >::type& pl,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select,
+ const MatrixA& a, MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename bindings::value_type<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename bindings::value_type< MatrixA >::type >::type& pr,
+ VectorDIF& dif ) {
     return tgsen_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( ijob, wantq, wantz, select, a, b,
             alpha, beta, q, z, m, pl, pr, dif, optimal_workspace() );
@@ -1878,8 +1890,8 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, MatrixA& a,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select, MatrixA& a,
         const MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
         const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
         typename bindings::value_type< MatrixA >::type >::type& pl,
@@ -1903,8 +1915,8 @@
         typename MatrixZ, typename VectorDIF >
 inline typename boost::disable_if< detail::is_workspace< VectorDIF >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, MatrixA& a,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select, MatrixA& a,
         const MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
         const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
         typename bindings::value_type< MatrixA >::type >::type& pl,
@@ -1928,13 +1940,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, const MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename bindings::value_type< MatrixA >::type >::type& pl,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select,
+ const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
+ VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename bindings::value_type<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename bindings::value_type< MatrixA >::type >::type& pr,
+ VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( ijob, wantq, wantz, select, a, b,
             alpha, beta, q, z, m, pl, pr, dif, work );
@@ -1953,13 +1966,14 @@
         typename MatrixZ, typename VectorDIF >
 inline typename boost::disable_if< detail::is_workspace< VectorDIF >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, const MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename bindings::value_type< MatrixA >::type >::type& pl,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select,
+ const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
+ VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename bindings::value_type<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename bindings::value_type< MatrixA >::type >::type& pr,
+ VectorDIF& dif ) {
     return tgsen_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( ijob, wantq, wantz, select, a, b,
             alpha, beta, q, z, m, pl, pr, dif, optimal_workspace() );
@@ -1978,8 +1992,8 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, MatrixA& a,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select, MatrixA& a,
         MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
         const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
         typename bindings::value_type< MatrixA >::type >::type& pl,
@@ -2003,8 +2017,8 @@
         typename MatrixZ, typename VectorDIF >
 inline typename boost::disable_if< detail::is_workspace< VectorDIF >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, MatrixA& a,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select, MatrixA& a,
         MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
         const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
         typename bindings::value_type< MatrixA >::type >::type& pl,
@@ -2028,13 +2042,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, const MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename bindings::value_type< MatrixA >::type >::type& pl,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select,
+ const MatrixA& a, MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename bindings::value_type<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename bindings::value_type< MatrixA >::type >::type& pr,
+ VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( ijob, wantq, wantz, select, a, b,
             alpha, beta, q, z, m, pl, pr, dif, work );
@@ -2053,13 +2068,14 @@
         typename MatrixZ, typename VectorDIF >
 inline typename boost::disable_if< detail::is_workspace< VectorDIF >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, const MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename bindings::value_type< MatrixA >::type >::type& pl,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select,
+ const MatrixA& a, MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename bindings::value_type<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename bindings::value_type< MatrixA >::type >::type& pr,
+ VectorDIF& dif ) {
     return tgsen_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( ijob, wantq, wantz, select, a, b,
             alpha, beta, q, z, m, pl, pr, dif, optimal_workspace() );
@@ -2078,8 +2094,8 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, MatrixA& a,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select, MatrixA& a,
         const MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
         const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename bindings::value_type<
@@ -2104,8 +2120,8 @@
         typename MatrixZ, typename VectorDIF >
 inline typename boost::disable_if< detail::is_workspace< VectorDIF >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, MatrixA& a,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select, MatrixA& a,
         const MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
         const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename bindings::value_type<
@@ -2130,14 +2146,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline typename boost::enable_if< detail::is_workspace< Workspace >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, const MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select,
+ const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
+ VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary<
+ typename bindings::value_type< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename bindings::value_type<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename bindings::value_type< MatrixA >::type >::type& pr,
- VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( ijob, wantq, wantz, select, a, b,
             alpha, beta, q, z, m, pl, pr, dif, work );
@@ -2156,14 +2172,14 @@
         typename MatrixZ, typename VectorDIF >
 inline typename boost::disable_if< detail::is_workspace< VectorDIF >,
         std::ptrdiff_t >::type
-tgsen( const fortran_int_t ijob, const logical_t wantq,
- const logical_t wantz, const VectorSELECT& select, const MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+tgsen( const fortran_int_t ijob, const fortran_bool_t wantq,
+ const fortran_bool_t wantz, const VectorSELECT& select,
+ const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
+ VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary<
+ typename bindings::value_type< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename bindings::value_type<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename bindings::value_type< MatrixA >::type >::type& pr,
- VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename bindings::value_type<
             MatrixA >::type >::invoke( ijob, wantq, wantz, select, a, b,
             alpha, beta, q, z, m, pl, pr, dif, optimal_workspace() );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsna.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsna.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsna.hpp 2010-07-22 03:25:22 EDT (Thu, 22 Jul 2010)
@@ -55,7 +55,7 @@
 // * float value-type.
 //
 inline std::ptrdiff_t tgsna( const char job, const char howmny,
- const logical_t* select, const fortran_int_t n, const float* a,
+ const fortran_bool_t* select, const fortran_int_t n, const float* a,
         const fortran_int_t lda, const float* b, const fortran_int_t ldb,
         const float* vl, const fortran_int_t ldvl, const float* vr,
         const fortran_int_t ldvr, float* s, float* dif,
@@ -73,7 +73,7 @@
 // * double value-type.
 //
 inline std::ptrdiff_t tgsna( const char job, const char howmny,
- const logical_t* select, const fortran_int_t n, const double* a,
+ const fortran_bool_t* select, const fortran_int_t n, const double* a,
         const fortran_int_t lda, const double* b, const fortran_int_t ldb,
         const double* vl, const fortran_int_t ldvl, const double* vr,
         const fortran_int_t ldvr, double* s, double* dif,
@@ -91,7 +91,7 @@
 // * complex<float> value-type.
 //
 inline std::ptrdiff_t tgsna( const char job, const char howmny,
- const logical_t* select, const fortran_int_t n,
+ const fortran_bool_t* select, const fortran_int_t n,
         const std::complex<float>* a, const fortran_int_t lda,
         const std::complex<float>* b, const fortran_int_t ldb,
         const std::complex<float>* vl, const fortran_int_t ldvl,
@@ -111,7 +111,7 @@
 // * complex<double> value-type.
 //
 inline std::ptrdiff_t tgsna( const char job, const char howmny,
- const logical_t* select, const fortran_int_t n,
+ const fortran_bool_t* select, const fortran_int_t n,
         const std::complex<double>* a, const fortran_int_t lda,
         const std::complex<double>* b, const fortran_int_t ldb,
         const std::complex<double>* vl, const fortran_int_t ldvl,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trevc.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trevc.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trevc.hpp 2010-07-22 03:25:22 EDT (Thu, 22 Jul 2010)
@@ -55,7 +55,7 @@
 //
 template< typename Side >
 inline std::ptrdiff_t trevc( const Side side, const char howmny,
- logical_t* select, const fortran_int_t n, const float* t,
+ fortran_bool_t* select, const fortran_int_t n, const float* t,
         const fortran_int_t ldt, float* vl, const fortran_int_t ldvl,
         float* vr, const fortran_int_t ldvr, const fortran_int_t mm,
         fortran_int_t& m, float* work ) {
@@ -72,7 +72,7 @@
 //
 template< typename Side >
 inline std::ptrdiff_t trevc( const Side side, const char howmny,
- logical_t* select, const fortran_int_t n, const double* t,
+ fortran_bool_t* select, const fortran_int_t n, const double* t,
         const fortran_int_t ldt, double* vl, const fortran_int_t ldvl,
         double* vr, const fortran_int_t ldvr, const fortran_int_t mm,
         fortran_int_t& m, double* work ) {
@@ -89,7 +89,7 @@
 //
 template< typename Side >
 inline std::ptrdiff_t trevc( const Side side, const char howmny,
- const logical_t* select, const fortran_int_t n,
+ const fortran_bool_t* select, const fortran_int_t n,
         std::complex<float>* t, const fortran_int_t ldt,
         std::complex<float>* vl, const fortran_int_t ldvl,
         std::complex<float>* vr, const fortran_int_t ldvr,
@@ -108,7 +108,7 @@
 //
 template< typename Side >
 inline std::ptrdiff_t trevc( const Side side, const char howmny,
- const logical_t* select, const fortran_int_t n,
+ const fortran_bool_t* select, const fortran_int_t n,
         std::complex<double>* t, const fortran_int_t ldt,
         std::complex<double>* vl, const fortran_int_t ldvl,
         std::complex<double>* vr, const fortran_int_t ldvr,

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 2010-07-22 03:25:22 EDT (Thu, 22 Jul 2010)
@@ -52,7 +52,7 @@
 // * complex<float> value-type.
 //
 inline std::ptrdiff_t trsen( const char job, const char compq,
- const logical_t* select, const fortran_int_t n,
+ const fortran_bool_t* select, const fortran_int_t n,
         std::complex<float>* t, const fortran_int_t ldt,
         std::complex<float>* q, const fortran_int_t ldq,
         std::complex<float>* w, fortran_int_t& m, float& s, float& sep,
@@ -69,7 +69,7 @@
 // * complex<double> value-type.
 //
 inline std::ptrdiff_t trsen( const char job, const char compq,
- const logical_t* select, const fortran_int_t n,
+ const fortran_bool_t* select, const fortran_int_t n,
         std::complex<double>* t, const fortran_int_t ldt,
         std::complex<double>* q, const fortran_int_t ldq,
         std::complex<double>* w, fortran_int_t& m, double& s, double& sep,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trsna.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trsna.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trsna.hpp 2010-07-22 03:25:22 EDT (Thu, 22 Jul 2010)
@@ -54,7 +54,7 @@
 // * float value-type.
 //
 inline std::ptrdiff_t trsna( const char job, const char howmny,
- const logical_t* select, const fortran_int_t n, const float* t,
+ const fortran_bool_t* select, const fortran_int_t n, const float* t,
         const fortran_int_t ldt, const float* vl, const fortran_int_t ldvl,
         const float* vr, const fortran_int_t ldvr, float* s, float* sep,
         const fortran_int_t mm, fortran_int_t& m, float* work,
@@ -71,7 +71,7 @@
 // * double value-type.
 //
 inline std::ptrdiff_t trsna( const char job, const char howmny,
- const logical_t* select, const fortran_int_t n, const double* t,
+ const fortran_bool_t* select, const fortran_int_t n, const double* t,
         const fortran_int_t ldt, const double* vl, const fortran_int_t ldvl,
         const double* vr, const fortran_int_t ldvr, double* s, double* sep,
         const fortran_int_t mm, fortran_int_t& m, double* work,
@@ -88,7 +88,7 @@
 // * complex<float> value-type.
 //
 inline std::ptrdiff_t trsna( const char job, const char howmny,
- const logical_t* select, const fortran_int_t n,
+ const fortran_bool_t* select, const fortran_int_t n,
         const std::complex<float>* t, const fortran_int_t ldt,
         const std::complex<float>* vl, const fortran_int_t ldvl,
         const std::complex<float>* vr, const fortran_int_t ldvr, float* s,
@@ -106,7 +106,7 @@
 // * complex<double> value-type.
 //
 inline std::ptrdiff_t trsna( const char job, const char howmny,
- const logical_t* select, const fortran_int_t n,
+ const fortran_bool_t* select, const fortran_int_t n,
         const std::complex<double>* t, const fortran_int_t ldt,
         const std::complex<double>* vl, const fortran_int_t ldvl,
         const std::complex<double>* vr, const fortran_int_t ldvr, double* s,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/detail/lapack.h
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/detail/lapack.h (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/detail/lapack.h 2010-07-22 03:25:22 EDT (Thu, 22 Jul 2010)
@@ -584,25 +584,25 @@
 
 // Value-type variants of hsein
 void LAPACK_SHSEIN( const char* side, const char* eigsrc, const char* initv,
- logical_t* select, const fortran_int_t* n, const float* h,
+ fortran_bool_t* select, const fortran_int_t* n, const float* h,
         const fortran_int_t* ldh, float* wr, const float* wi, float* vl,
         const fortran_int_t* ldvl, float* vr, const fortran_int_t* ldvr,
         const fortran_int_t* mm, fortran_int_t* m, float* work,
         fortran_int_t* ifaill, fortran_int_t* ifailr, fortran_int_t* info );
 void LAPACK_DHSEIN( const char* side, const char* eigsrc, const char* initv,
- logical_t* select, const fortran_int_t* n, const double* h,
+ fortran_bool_t* select, const fortran_int_t* n, const double* h,
         const fortran_int_t* ldh, double* wr, const double* wi, double* vl,
         const fortran_int_t* ldvl, double* vr, const fortran_int_t* ldvr,
         const fortran_int_t* mm, fortran_int_t* m, double* work,
         fortran_int_t* ifaill, fortran_int_t* ifailr, fortran_int_t* info );
 void LAPACK_CHSEIN( const char* side, const char* eigsrc, const char* initv,
- const logical_t* select, const fortran_int_t* n, const void* h,
+ const fortran_bool_t* select, const fortran_int_t* n, const void* h,
         const fortran_int_t* ldh, void* w, void* vl,
         const fortran_int_t* ldvl, void* vr, const fortran_int_t* ldvr,
         const fortran_int_t* mm, fortran_int_t* m, void* work, float* rwork,
         fortran_int_t* ifaill, fortran_int_t* ifailr, fortran_int_t* info );
 void LAPACK_ZHSEIN( const char* side, const char* eigsrc, const char* initv,
- const logical_t* select, const fortran_int_t* n, const void* h,
+ const fortran_bool_t* select, const fortran_int_t* n, const void* h,
         const fortran_int_t* ldh, void* w, void* vl,
         const fortran_int_t* ldvl, void* vr, const fortran_int_t* ldvr,
         const fortran_int_t* mm, fortran_int_t* m, void* work, double* rwork,
@@ -655,23 +655,23 @@
         fortran_int_t* info );
 
 // Value-type variants of trevc
-void LAPACK_STREVC( const char* side, const char* howmny, logical_t* select,
- const fortran_int_t* n, const float* t, const fortran_int_t* ldt,
- float* vl, const fortran_int_t* ldvl, float* vr,
- const fortran_int_t* ldvr, const fortran_int_t* mm, fortran_int_t* m,
- float* work, fortran_int_t* info );
-void LAPACK_DTREVC( const char* side, const char* howmny, logical_t* select,
- const fortran_int_t* n, const double* t, const fortran_int_t* ldt,
- double* vl, const fortran_int_t* ldvl, double* vr,
- const fortran_int_t* ldvr, const fortran_int_t* mm, fortran_int_t* m,
- double* work, fortran_int_t* info );
+void LAPACK_STREVC( const char* side, const char* howmny,
+ fortran_bool_t* select, const fortran_int_t* n, const float* t,
+ const fortran_int_t* ldt, float* vl, const fortran_int_t* ldvl,
+ float* vr, const fortran_int_t* ldvr, const fortran_int_t* mm,
+ fortran_int_t* m, float* work, fortran_int_t* info );
+void LAPACK_DTREVC( const char* side, const char* howmny,
+ fortran_bool_t* select, const fortran_int_t* n, const double* t,
+ const fortran_int_t* ldt, double* vl, const fortran_int_t* ldvl,
+ double* vr, const fortran_int_t* ldvr, const fortran_int_t* mm,
+ fortran_int_t* m, double* work, fortran_int_t* info );
 void LAPACK_CTREVC( const char* side, const char* howmny,
- const logical_t* select, const fortran_int_t* n, void* t,
+ const fortran_bool_t* select, const fortran_int_t* n, void* t,
         const fortran_int_t* ldt, void* vl, const fortran_int_t* ldvl,
         void* vr, const fortran_int_t* ldvr, const fortran_int_t* mm,
         fortran_int_t* m, void* work, float* rwork, fortran_int_t* info );
 void LAPACK_ZTREVC( const char* side, const char* howmny,
- const logical_t* select, const fortran_int_t* n, void* t,
+ const fortran_bool_t* select, const fortran_int_t* n, void* t,
         const fortran_int_t* ldt, void* vl, const fortran_int_t* ldvl,
         void* vr, const fortran_int_t* ldvr, const fortran_int_t* mm,
         fortran_int_t* m, void* work, double* rwork, fortran_int_t* info );
@@ -696,39 +696,39 @@
 
 // Value-type variants of trsen
 void LAPACK_CTRSEN( const char* job, const char* compq,
- const logical_t* select, const fortran_int_t* n, void* t,
+ const fortran_bool_t* select, const fortran_int_t* n, void* t,
         const fortran_int_t* ldt, void* q, const fortran_int_t* ldq, void* w,
         fortran_int_t* m, float* s, float* sep, void* work,
         const fortran_int_t* lwork, fortran_int_t* info );
 void LAPACK_ZTRSEN( const char* job, const char* compq,
- const logical_t* select, const fortran_int_t* n, void* t,
+ const fortran_bool_t* select, const fortran_int_t* n, void* t,
         const fortran_int_t* ldt, void* q, const fortran_int_t* ldq, void* w,
         fortran_int_t* m, double* s, double* sep, void* work,
         const fortran_int_t* lwork, fortran_int_t* info );
 
 // Value-type variants of trsna
 void LAPACK_STRSNA( const char* job, const char* howmny,
- const logical_t* select, const fortran_int_t* n, const float* t,
+ const fortran_bool_t* select, const fortran_int_t* n, const float* t,
         const fortran_int_t* ldt, const float* vl, const fortran_int_t* ldvl,
         const float* vr, const fortran_int_t* ldvr, float* s, float* sep,
         const fortran_int_t* mm, fortran_int_t* m, float* work,
         const fortran_int_t* ldwork, fortran_int_t* iwork,
         fortran_int_t* info );
 void LAPACK_DTRSNA( const char* job, const char* howmny,
- const logical_t* select, const fortran_int_t* n, const double* t,
+ const fortran_bool_t* select, const fortran_int_t* n, const double* t,
         const fortran_int_t* ldt, const double* vl, const fortran_int_t* ldvl,
         const double* vr, const fortran_int_t* ldvr, double* s, double* sep,
         const fortran_int_t* mm, fortran_int_t* m, double* work,
         const fortran_int_t* ldwork, fortran_int_t* iwork,
         fortran_int_t* info );
 void LAPACK_CTRSNA( const char* job, const char* howmny,
- const logical_t* select, const fortran_int_t* n, const void* t,
+ const fortran_bool_t* select, const fortran_int_t* n, const void* t,
         const fortran_int_t* ldt, const void* vl, const fortran_int_t* ldvl,
         const void* vr, const fortran_int_t* ldvr, float* s, float* sep,
         const fortran_int_t* mm, fortran_int_t* m, void* work,
         const fortran_int_t* ldwork, float* rwork, fortran_int_t* info );
 void LAPACK_ZTRSNA( const char* job, const char* howmny,
- const logical_t* select, const fortran_int_t* n, const void* t,
+ const fortran_bool_t* select, const fortran_int_t* n, const void* t,
         const fortran_int_t* ldt, const void* vl, const fortran_int_t* ldvl,
         const void* vr, const fortran_int_t* ldvr, double* s, double* sep,
         const fortran_int_t* mm, fortran_int_t* m, void* work,
@@ -2033,30 +2033,34 @@
         const fortran_int_t* n, float* d, float* e, const float* vl,
         const float* vu, const fortran_int_t* il, const fortran_int_t* iu,
         fortran_int_t* m, float* w, float* z, const fortran_int_t* ldz,
- const fortran_int_t* nzc, fortran_int_t* isuppz, logical_t* tryrac,
- float* work, const fortran_int_t* lwork, fortran_int_t* iwork,
- const fortran_int_t* liwork, fortran_int_t* info );
+ const fortran_int_t* nzc, fortran_int_t* isuppz,
+ fortran_bool_t* tryrac, float* work, const fortran_int_t* lwork,
+ fortran_int_t* iwork, const fortran_int_t* liwork,
+ fortran_int_t* info );
 void LAPACK_DSTEMR( const char* jobz, const char* range,
         const fortran_int_t* n, double* d, double* e, const double* vl,
         const double* vu, const fortran_int_t* il, const fortran_int_t* iu,
         fortran_int_t* m, double* w, double* z, const fortran_int_t* ldz,
- const fortran_int_t* nzc, fortran_int_t* isuppz, logical_t* tryrac,
- double* work, const fortran_int_t* lwork, fortran_int_t* iwork,
- const fortran_int_t* liwork, fortran_int_t* info );
+ const fortran_int_t* nzc, fortran_int_t* isuppz,
+ fortran_bool_t* tryrac, double* work, const fortran_int_t* lwork,
+ fortran_int_t* iwork, const fortran_int_t* liwork,
+ fortran_int_t* info );
 void LAPACK_CSTEMR( const char* jobz, const char* range,
         const fortran_int_t* n, float* d, float* e, const float* vl,
         const float* vu, const fortran_int_t* il, const fortran_int_t* iu,
         fortran_int_t* m, float* w, void* z, const fortran_int_t* ldz,
- const fortran_int_t* nzc, fortran_int_t* isuppz, logical_t* tryrac,
- float* work, const fortran_int_t* lwork, fortran_int_t* iwork,
- const fortran_int_t* liwork, fortran_int_t* info );
+ const fortran_int_t* nzc, fortran_int_t* isuppz,
+ fortran_bool_t* tryrac, float* work, const fortran_int_t* lwork,
+ fortran_int_t* iwork, const fortran_int_t* liwork,
+ fortran_int_t* info );
 void LAPACK_ZSTEMR( const char* jobz, const char* range,
         const fortran_int_t* n, double* d, double* e, const double* vl,
         const double* vu, const fortran_int_t* il, const fortran_int_t* iu,
         fortran_int_t* m, double* w, void* z, const fortran_int_t* ldz,
- const fortran_int_t* nzc, fortran_int_t* isuppz, logical_t* tryrac,
- double* work, const fortran_int_t* lwork, fortran_int_t* iwork,
- const fortran_int_t* liwork, fortran_int_t* info );
+ const fortran_int_t* nzc, fortran_int_t* isuppz,
+ fortran_bool_t* tryrac, double* work, const fortran_int_t* lwork,
+ fortran_int_t* iwork, const fortran_int_t* liwork,
+ fortran_int_t* info );
 
 // Value-type variants of steqr
 void LAPACK_SSTEQR( const char* compz, const fortran_int_t* n, float* d,
@@ -2216,57 +2220,57 @@
 
 // Value-type variants of tgevc
 void LAPACK_STGEVC( const char* side, const char* howmny,
- const logical_t* select, const fortran_int_t* n, const float* s,
+ const fortran_bool_t* select, const fortran_int_t* n, const float* s,
         const fortran_int_t* lds, const float* p, const fortran_int_t* ldp,
         float* vl, const fortran_int_t* ldvl, float* vr,
         const fortran_int_t* ldvr, const fortran_int_t* mm, fortran_int_t* m,
         float* work, fortran_int_t* info );
 void LAPACK_DTGEVC( const char* side, const char* howmny,
- const logical_t* select, const fortran_int_t* n, const double* s,
+ const fortran_bool_t* select, const fortran_int_t* n, const double* s,
         const fortran_int_t* lds, const double* p, const fortran_int_t* ldp,
         double* vl, const fortran_int_t* ldvl, double* vr,
         const fortran_int_t* ldvr, const fortran_int_t* mm, fortran_int_t* m,
         double* work, fortran_int_t* info );
 void LAPACK_CTGEVC( const char* side, const char* howmny,
- const logical_t* select, const fortran_int_t* n, const void* s,
+ const fortran_bool_t* select, const fortran_int_t* n, const void* s,
         const fortran_int_t* lds, const void* p, const fortran_int_t* ldp,
         void* vl, const fortran_int_t* ldvl, void* vr,
         const fortran_int_t* ldvr, const fortran_int_t* mm, fortran_int_t* m,
         void* work, float* rwork, fortran_int_t* info );
 void LAPACK_ZTGEVC( const char* side, const char* howmny,
- const logical_t* select, const fortran_int_t* n, const void* s,
+ const fortran_bool_t* select, const fortran_int_t* n, const void* s,
         const fortran_int_t* lds, const void* p, const fortran_int_t* ldp,
         void* vl, const fortran_int_t* ldvl, void* vr,
         const fortran_int_t* ldvr, const fortran_int_t* mm, fortran_int_t* m,
         void* work, double* rwork, fortran_int_t* info );
 
 // Value-type variants of tgexc
-void LAPACK_STGEXC( const logical_t* wantq, const logical_t* wantz,
+void LAPACK_STGEXC( const fortran_bool_t* wantq, const fortran_bool_t* wantz,
         const fortran_int_t* n, float* a, const fortran_int_t* lda, float* b,
         const fortran_int_t* ldb, float* q, const fortran_int_t* ldq,
         float* z, const fortran_int_t* ldz, fortran_int_t* ifst,
         fortran_int_t* ilst, float* work, const fortran_int_t* lwork,
         fortran_int_t* info );
-void LAPACK_DTGEXC( const logical_t* wantq, const logical_t* wantz,
+void LAPACK_DTGEXC( const fortran_bool_t* wantq, const fortran_bool_t* wantz,
         const fortran_int_t* n, double* a, const fortran_int_t* lda,
         double* b, const fortran_int_t* ldb, double* q,
         const fortran_int_t* ldq, double* z, const fortran_int_t* ldz,
         fortran_int_t* ifst, fortran_int_t* ilst, double* work,
         const fortran_int_t* lwork, fortran_int_t* info );
-void LAPACK_CTGEXC( const logical_t* wantq, const logical_t* wantz,
+void LAPACK_CTGEXC( const fortran_bool_t* wantq, const fortran_bool_t* wantz,
         const fortran_int_t* n, void* a, const fortran_int_t* lda, void* b,
         const fortran_int_t* ldb, void* q, const fortran_int_t* ldq, void* z,
         const fortran_int_t* ldz, const fortran_int_t* ifst,
         fortran_int_t* ilst, fortran_int_t* info );
-void LAPACK_ZTGEXC( const logical_t* wantq, const logical_t* wantz,
+void LAPACK_ZTGEXC( const fortran_bool_t* wantq, const fortran_bool_t* wantz,
         const fortran_int_t* n, void* a, const fortran_int_t* lda, void* b,
         const fortran_int_t* ldb, void* q, const fortran_int_t* ldq, void* z,
         const fortran_int_t* ldz, const fortran_int_t* ifst,
         fortran_int_t* ilst, fortran_int_t* info );
 
 // Value-type variants of tgsen
-void LAPACK_STGSEN( const fortran_int_t* ijob, const logical_t* wantq,
- const logical_t* wantz, const logical_t* select,
+void LAPACK_STGSEN( const fortran_int_t* ijob, const fortran_bool_t* wantq,
+ const fortran_bool_t* wantz, const fortran_bool_t* select,
         const fortran_int_t* n, float* a, const fortran_int_t* lda, float* b,
         const fortran_int_t* ldb, float* alphar, float* alphai, float* beta,
         float* q, const fortran_int_t* ldq, float* z,
@@ -2274,8 +2278,8 @@
         float* dif, float* work, const fortran_int_t* lwork,
         fortran_int_t* iwork, const fortran_int_t* liwork,
         fortran_int_t* info );
-void LAPACK_DTGSEN( const fortran_int_t* ijob, const logical_t* wantq,
- const logical_t* wantz, const logical_t* select,
+void LAPACK_DTGSEN( const fortran_int_t* ijob, const fortran_bool_t* wantq,
+ const fortran_bool_t* wantz, const fortran_bool_t* select,
         const fortran_int_t* n, double* a, const fortran_int_t* lda,
         double* b, const fortran_int_t* ldb, double* alphar, double* alphai,
         double* beta, double* q, const fortran_int_t* ldq, double* z,
@@ -2283,16 +2287,16 @@
         double* dif, double* work, const fortran_int_t* lwork,
         fortran_int_t* iwork, const fortran_int_t* liwork,
         fortran_int_t* info );
-void LAPACK_CTGSEN( const fortran_int_t* ijob, const logical_t* wantq,
- const logical_t* wantz, const logical_t* select,
+void LAPACK_CTGSEN( const fortran_int_t* ijob, const fortran_bool_t* wantq,
+ const fortran_bool_t* wantz, const fortran_bool_t* select,
         const fortran_int_t* n, void* a, const fortran_int_t* lda, void* b,
         const fortran_int_t* ldb, void* alpha, void* beta, void* q,
         const fortran_int_t* ldq, void* z, const fortran_int_t* ldz,
         fortran_int_t* m, float* pl, float* pr, float* dif, void* work,
         const fortran_int_t* lwork, fortran_int_t* iwork,
         const fortran_int_t* liwork, fortran_int_t* info );
-void LAPACK_ZTGSEN( const fortran_int_t* ijob, const logical_t* wantq,
- const logical_t* wantz, const logical_t* select,
+void LAPACK_ZTGSEN( const fortran_int_t* ijob, const fortran_bool_t* wantq,
+ const fortran_bool_t* wantz, const fortran_bool_t* select,
         const fortran_int_t* n, void* a, const fortran_int_t* lda, void* b,
         const fortran_int_t* ldb, void* alpha, void* beta, void* q,
         const fortran_int_t* ldq, void* z, const fortran_int_t* ldz,
@@ -2302,7 +2306,7 @@
 
 // Value-type variants of tgsna
 void LAPACK_STGSNA( const char* job, const char* howmny,
- const logical_t* select, const fortran_int_t* n, const float* a,
+ const fortran_bool_t* select, const fortran_int_t* n, const float* a,
         const fortran_int_t* lda, const float* b, const fortran_int_t* ldb,
         const float* vl, const fortran_int_t* ldvl, const float* vr,
         const fortran_int_t* ldvr, float* s, float* dif,
@@ -2310,7 +2314,7 @@
         const fortran_int_t* lwork, fortran_int_t* iwork,
         fortran_int_t* info );
 void LAPACK_DTGSNA( const char* job, const char* howmny,
- const logical_t* select, const fortran_int_t* n, const double* a,
+ const fortran_bool_t* select, const fortran_int_t* n, const double* a,
         const fortran_int_t* lda, const double* b, const fortran_int_t* ldb,
         const double* vl, const fortran_int_t* ldvl, const double* vr,
         const fortran_int_t* ldvr, double* s, double* dif,
@@ -2318,7 +2322,7 @@
         const fortran_int_t* lwork, fortran_int_t* iwork,
         fortran_int_t* info );
 void LAPACK_CTGSNA( const char* job, const char* howmny,
- const logical_t* select, const fortran_int_t* n, const void* a,
+ const fortran_bool_t* select, const fortran_int_t* n, const void* a,
         const fortran_int_t* lda, const void* b, const fortran_int_t* ldb,
         const void* vl, const fortran_int_t* ldvl, const void* vr,
         const fortran_int_t* ldvr, float* s, float* dif,
@@ -2326,7 +2330,7 @@
         const fortran_int_t* lwork, fortran_int_t* iwork,
         fortran_int_t* info );
 void LAPACK_ZTGSNA( const char* job, const char* howmny,
- const logical_t* select, const fortran_int_t* n, const void* a,
+ const fortran_bool_t* select, const fortran_int_t* n, const void* a,
         const fortran_int_t* lda, const void* b, const fortran_int_t* ldb,
         const void* vl, const fortran_int_t* ldvl, const void* vr,
         const fortran_int_t* ldvr, double* s, double* dif,
@@ -2475,28 +2479,28 @@
         fortran_int_t* sdim, float* alphar, float* alphai, float* beta,
         float* vsl, const fortran_int_t* ldvsl, float* vsr,
         const fortran_int_t* ldvsr, float* work, const fortran_int_t* lwork,
- logical_t* bwork, fortran_int_t* info );
+ fortran_bool_t* bwork, fortran_int_t* info );
 void LAPACK_DGGES( const char* jobvsl, const char* jobvsr, const char* sort,
         external_fp selctg, const fortran_int_t* n, double* a,
         const fortran_int_t* lda, double* b, const fortran_int_t* ldb,
         fortran_int_t* sdim, double* alphar, double* alphai, double* beta,
         double* vsl, const fortran_int_t* ldvsl, double* vsr,
         const fortran_int_t* ldvsr, double* work, const fortran_int_t* lwork,
- logical_t* bwork, fortran_int_t* info );
+ fortran_bool_t* bwork, fortran_int_t* info );
 void LAPACK_CGGES( const char* jobvsl, const char* jobvsr, const char* sort,
         external_fp selctg, const fortran_int_t* n, void* a,
         const fortran_int_t* lda, void* b, const fortran_int_t* ldb,
         fortran_int_t* sdim, void* alpha, void* beta, void* vsl,
         const fortran_int_t* ldvsl, void* vsr, const fortran_int_t* ldvsr,
         void* work, const fortran_int_t* lwork, float* rwork,
- logical_t* bwork, fortran_int_t* info );
+ fortran_bool_t* bwork, fortran_int_t* info );
 void LAPACK_ZGGES( const char* jobvsl, const char* jobvsr, const char* sort,
         external_fp selctg, const fortran_int_t* n, void* a,
         const fortran_int_t* lda, void* b, const fortran_int_t* ldb,
         fortran_int_t* sdim, void* alpha, void* beta, void* vsl,
         const fortran_int_t* ldvsl, void* vsr, const fortran_int_t* ldvsr,
         void* work, const fortran_int_t* lwork, double* rwork,
- logical_t* bwork, fortran_int_t* info );
+ fortran_bool_t* bwork, fortran_int_t* info );
 
 // Value-type variants of ggesx
 void LAPACK_SGGESX( const char* jobvsl, const char* jobvsr, const char* sort,
@@ -2506,7 +2510,8 @@
         float* alphai, float* beta, float* vsl, const fortran_int_t* ldvsl,
         float* vsr, const fortran_int_t* ldvsr, float* rconde, float* rcondv,
         float* work, const fortran_int_t* lwork, fortran_int_t* iwork,
- const fortran_int_t* liwork, logical_t* bwork, fortran_int_t* info );
+ const fortran_int_t* liwork, fortran_bool_t* bwork,
+ fortran_int_t* info );
 void LAPACK_DGGESX( const char* jobvsl, const char* jobvsr, const char* sort,
         external_fp selctg, const char* sense, const fortran_int_t* n,
         double* a, const fortran_int_t* lda, double* b,
@@ -2514,8 +2519,8 @@
         double* alphai, double* beta, double* vsl, const fortran_int_t* ldvsl,
         double* vsr, const fortran_int_t* ldvsr, double* rconde,
         double* rcondv, double* work, const fortran_int_t* lwork,
- fortran_int_t* iwork, const fortran_int_t* liwork, logical_t* bwork,
- fortran_int_t* info );
+ fortran_int_t* iwork, const fortran_int_t* liwork,
+ fortran_bool_t* bwork, fortran_int_t* info );
 void LAPACK_CGGESX( const char* jobvsl, const char* jobvsr, const char* sort,
         external_fp selctg, const char* sense, const fortran_int_t* n,
         void* a, const fortran_int_t* lda, void* b, const fortran_int_t* ldb,
@@ -2523,7 +2528,7 @@
         const fortran_int_t* ldvsl, void* vsr, const fortran_int_t* ldvsr,
         float* rconde, float* rcondv, void* work, const fortran_int_t* lwork,
         float* rwork, fortran_int_t* iwork, const fortran_int_t* liwork,
- logical_t* bwork, fortran_int_t* info );
+ fortran_bool_t* bwork, fortran_int_t* info );
 void LAPACK_ZGGESX( const char* jobvsl, const char* jobvsr, const char* sort,
         external_fp selctg, const char* sense, const fortran_int_t* n,
         void* a, const fortran_int_t* lda, void* b, const fortran_int_t* ldb,
@@ -2531,7 +2536,8 @@
         const fortran_int_t* ldvsl, void* vsr, const fortran_int_t* ldvsr,
         double* rconde, double* rcondv, void* work,
         const fortran_int_t* lwork, double* rwork, fortran_int_t* iwork,
- const fortran_int_t* liwork, logical_t* bwork, fortran_int_t* info );
+ const fortran_int_t* liwork, fortran_bool_t* bwork,
+ fortran_int_t* info );
 
 // Value-type variants of ggev
 void LAPACK_SGGEV( const char* jobvl, const char* jobvr,
@@ -2567,8 +2573,8 @@
         const fortran_int_t* ldvl, float* vr, const fortran_int_t* ldvr,
         fortran_int_t* ilo, fortran_int_t* ihi, float* lscale, float* rscale,
         float* abnrm, float* bbnrm, float* rconde, float* rcondv, float* work,
- const fortran_int_t* lwork, fortran_int_t* iwork, logical_t* bwork,
- fortran_int_t* info );
+ const fortran_int_t* lwork, fortran_int_t* iwork,
+ fortran_bool_t* bwork, fortran_int_t* info );
 void LAPACK_DGGEVX( const char* balanc, const char* jobvl, const char* jobvr,
         const char* sense, const fortran_int_t* n, double* a,
         const fortran_int_t* lda, double* b, const fortran_int_t* ldb,
@@ -2577,7 +2583,7 @@
         fortran_int_t* ilo, fortran_int_t* ihi, double* lscale,
         double* rscale, double* abnrm, double* bbnrm, double* rconde,
         double* rcondv, double* work, const fortran_int_t* lwork,
- fortran_int_t* iwork, logical_t* bwork, fortran_int_t* info );
+ fortran_int_t* iwork, fortran_bool_t* bwork, fortran_int_t* info );
 void LAPACK_CGGEVX( const char* balanc, const char* jobvl, const char* jobvr,
         const char* sense, const fortran_int_t* n, void* a,
         const fortran_int_t* lda, void* b, const fortran_int_t* ldb,
@@ -2586,7 +2592,7 @@
         fortran_int_t* ihi, float* lscale, float* rscale, float* abnrm,
         float* bbnrm, float* rconde, float* rcondv, void* work,
         const fortran_int_t* lwork, float* rwork, fortran_int_t* iwork,
- logical_t* bwork, fortran_int_t* info );
+ fortran_bool_t* bwork, fortran_int_t* info );
 void LAPACK_ZGGEVX( const char* balanc, const char* jobvl, const char* jobvr,
         const char* sense, const fortran_int_t* n, void* a,
         const fortran_int_t* lda, void* b, const fortran_int_t* ldb,
@@ -2595,7 +2601,7 @@
         fortran_int_t* ihi, double* lscale, double* rscale, double* abnrm,
         double* bbnrm, double* rconde, double* rcondv, void* work,
         const fortran_int_t* lwork, double* rwork, fortran_int_t* iwork,
- logical_t* bwork, fortran_int_t* info );
+ fortran_bool_t* bwork, fortran_int_t* info );
 
 // Value-type variants of ggsvd
 void LAPACK_SGGSVD( const char* jobu, const char* jobv, const char* jobq,
@@ -3409,22 +3415,22 @@
         const fortran_int_t* n, float* a, const fortran_int_t* lda,
         fortran_int_t* sdim, float* wr, float* wi, float* vs,
         const fortran_int_t* ldvs, float* work, const fortran_int_t* lwork,
- logical_t* bwork, fortran_int_t* info );
+ fortran_bool_t* bwork, fortran_int_t* info );
 void LAPACK_DGEES( const char* jobvs, const char* sort, external_fp select,
         const fortran_int_t* n, double* a, const fortran_int_t* lda,
         fortran_int_t* sdim, double* wr, double* wi, double* vs,
         const fortran_int_t* ldvs, double* work, const fortran_int_t* lwork,
- logical_t* bwork, fortran_int_t* info );
+ fortran_bool_t* bwork, fortran_int_t* info );
 void LAPACK_CGEES( const char* jobvs, const char* sort, external_fp select,
         const fortran_int_t* n, void* a, const fortran_int_t* lda,
         fortran_int_t* sdim, void* w, void* vs, const fortran_int_t* ldvs,
         void* work, const fortran_int_t* lwork, float* rwork,
- logical_t* bwork, fortran_int_t* info );
+ fortran_bool_t* bwork, fortran_int_t* info );
 void LAPACK_ZGEES( const char* jobvs, const char* sort, external_fp select,
         const fortran_int_t* n, void* a, const fortran_int_t* lda,
         fortran_int_t* sdim, void* w, void* vs, const fortran_int_t* ldvs,
         void* work, const fortran_int_t* lwork, double* rwork,
- logical_t* bwork, fortran_int_t* info );
+ fortran_bool_t* bwork, fortran_int_t* info );
 
 // Value-type variants of geesx
 void LAPACK_SGEESX( const char* jobvs, const char* sort, external_fp select,
@@ -3432,24 +3438,26 @@
         const fortran_int_t* lda, fortran_int_t* sdim, float* wr, float* wi,
         float* vs, const fortran_int_t* ldvs, float* rconde, float* rcondv,
         float* work, const fortran_int_t* lwork, fortran_int_t* iwork,
- const fortran_int_t* liwork, logical_t* bwork, fortran_int_t* info );
+ const fortran_int_t* liwork, fortran_bool_t* bwork,
+ fortran_int_t* info );
 void LAPACK_DGEESX( const char* jobvs, const char* sort, external_fp select,
         const char* sense, const fortran_int_t* n, double* a,
         const fortran_int_t* lda, fortran_int_t* sdim, double* wr, double* wi,
         double* vs, const fortran_int_t* ldvs, double* rconde, double* rcondv,
         double* work, const fortran_int_t* lwork, fortran_int_t* iwork,
- const fortran_int_t* liwork, logical_t* bwork, fortran_int_t* info );
+ const fortran_int_t* liwork, fortran_bool_t* bwork,
+ fortran_int_t* info );
 void LAPACK_CGEESX( const char* jobvs, const char* sort, external_fp select,
         const char* sense, const fortran_int_t* n, void* a,
         const fortran_int_t* lda, fortran_int_t* sdim, void* w, void* vs,
         const fortran_int_t* ldvs, float* rconde, float* rcondv, void* work,
- const fortran_int_t* lwork, float* rwork, logical_t* bwork,
+ const fortran_int_t* lwork, float* rwork, fortran_bool_t* bwork,
         fortran_int_t* info );
 void LAPACK_ZGEESX( const char* jobvs, const char* sort, external_fp select,
         const char* sense, const fortran_int_t* n, void* a,
         const fortran_int_t* lda, fortran_int_t* sdim, void* w, void* vs,
         const fortran_int_t* ldvs, double* rconde, double* rcondv, void* work,
- const fortran_int_t* lwork, double* rwork, logical_t* bwork,
+ const fortran_int_t* lwork, double* rwork, fortran_bool_t* bwork,
         fortran_int_t* info );
 
 // Value-type variants of geev

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gees.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gees.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gees.hpp 2010-07-22 03:25:22 EDT (Thu, 22 Jul 2010)
@@ -58,7 +58,7 @@
         external_fp select, const fortran_int_t n, float* a,
         const fortran_int_t lda, fortran_int_t& sdim, float* wr, float* wi,
         float* vs, const fortran_int_t ldvs, float* work,
- const fortran_int_t lwork, logical_t* bwork ) {
+ const fortran_int_t lwork, fortran_bool_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_SGEES( &jobvs, &sort, select, &n, a, &lda, &sdim, wr, wi, vs,
             &ldvs, work, &lwork, bwork, &info );
@@ -74,7 +74,7 @@
         external_fp select, const fortran_int_t n, double* a,
         const fortran_int_t lda, fortran_int_t& sdim, double* wr, double* wi,
         double* vs, const fortran_int_t ldvs, double* work,
- const fortran_int_t lwork, logical_t* bwork ) {
+ const fortran_int_t lwork, fortran_bool_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_DGEES( &jobvs, &sort, select, &n, a, &lda, &sdim, wr, wi, vs,
             &ldvs, work, &lwork, bwork, &info );
@@ -91,7 +91,7 @@
         const fortran_int_t lda, fortran_int_t& sdim, std::complex<float>* w,
         std::complex<float>* vs, const fortran_int_t ldvs,
         std::complex<float>* work, const fortran_int_t lwork, float* rwork,
- logical_t* bwork ) {
+ fortran_bool_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_CGEES( &jobvs, &sort, select, &n, a, &lda, &sdim, w, vs, &ldvs,
             work, &lwork, rwork, bwork, &info );
@@ -108,7 +108,7 @@
         const fortran_int_t lda, fortran_int_t& sdim, std::complex<double>* w,
         std::complex<double>* vs, const fortran_int_t ldvs,
         std::complex<double>* work, const fortran_int_t lwork, double* rwork,
- logical_t* bwork ) {
+ fortran_bool_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_ZGEES( &jobvs, &sort, select, &n, a, &lda, &sdim, w, vs, &ldvs,
             work, &lwork, rwork, bwork, &info );
@@ -164,7 +164,7 @@
         BOOST_STATIC_ASSERT( (bindings::is_mutable< VectorWI >::value) );
         BOOST_STATIC_ASSERT( (bindings::is_mutable< MatrixVS >::value) );
         BOOST_ASSERT( bindings::size(wi) >= bindings::size_column(a) );
- BOOST_ASSERT( bindings::size(work.select(logical_t())) >=
+ BOOST_ASSERT( bindings::size(work.select(fortran_bool_t())) >=
                 min_size_bwork( bindings::size_column(a), sort ));
         BOOST_ASSERT( bindings::size(work.select(real_type())) >=
                 min_size_work( bindings::size_column(a) ));
@@ -184,7 +184,7 @@
                 bindings::begin_value(vs), bindings::stride_major(vs),
                 bindings::begin_value(work.select(real_type())),
                 bindings::size(work.select(real_type())),
- bindings::begin_value(work.select(logical_t())) );
+ bindings::begin_value(work.select(fortran_bool_t())) );
     }
 
     //
@@ -202,7 +202,7 @@
         namespace bindings = ::boost::numeric::bindings;
         bindings::detail::array< real_type > tmp_work( min_size_work(
                 bindings::size_column(a) ) );
- bindings::detail::array< logical_t > tmp_bwork( min_size_bwork(
+ bindings::detail::array< fortran_bool_t > tmp_bwork( min_size_bwork(
                 bindings::size_column(a), sort ) );
         return invoke( jobvs, sort, select, a, sdim, wr, wi, vs,
                 workspace( tmp_work, tmp_bwork ) );
@@ -222,7 +222,7 @@
             VectorWR& wr, VectorWI& wi, MatrixVS& vs, optimal_workspace ) {
         namespace bindings = ::boost::numeric::bindings;
         real_type opt_size_work;
- bindings::detail::array< logical_t > tmp_bwork( min_size_bwork(
+ bindings::detail::array< fortran_bool_t > tmp_bwork( min_size_bwork(
                 bindings::size_column(a), sort ) );
         detail::gees( jobvs, sort, select, bindings::size_column(a),
                 bindings::begin_value(a), bindings::stride_major(a), sdim,
@@ -291,7 +291,7 @@
         BOOST_STATIC_ASSERT( (bindings::is_mutable< VectorW >::value) );
         BOOST_STATIC_ASSERT( (bindings::is_mutable< MatrixVS >::value) );
         BOOST_ASSERT( bindings::size(w) >= bindings::size_column(a) );
- BOOST_ASSERT( bindings::size(work.select(logical_t())) >=
+ BOOST_ASSERT( bindings::size(work.select(fortran_bool_t())) >=
                 min_size_bwork( bindings::size_column(a), sort ));
         BOOST_ASSERT( bindings::size(work.select(real_type())) >=
                 min_size_rwork( bindings::size_column(a) ));
@@ -313,7 +313,7 @@
                 bindings::begin_value(work.select(value_type())),
                 bindings::size(work.select(value_type())),
                 bindings::begin_value(work.select(real_type())),
- bindings::begin_value(work.select(logical_t())) );
+ bindings::begin_value(work.select(fortran_bool_t())) );
     }
 
     //
@@ -332,7 +332,7 @@
                 bindings::size_column(a) ) );
         bindings::detail::array< real_type > tmp_rwork( min_size_rwork(
                 bindings::size_column(a) ) );
- bindings::detail::array< logical_t > tmp_bwork( min_size_bwork(
+ bindings::detail::array< fortran_bool_t > tmp_bwork( min_size_bwork(
                 bindings::size_column(a), sort ) );
         return invoke( jobvs, sort, select, a, sdim, w, vs,
                 workspace( tmp_work, tmp_rwork, tmp_bwork ) );
@@ -353,7 +353,7 @@
         value_type opt_size_work;
         bindings::detail::array< real_type > tmp_rwork( min_size_rwork(
                 bindings::size_column(a) ) );
- bindings::detail::array< logical_t > tmp_bwork( min_size_bwork(
+ bindings::detail::array< fortran_bool_t > tmp_bwork( min_size_bwork(
                 bindings::size_column(a), sort ) );
         detail::gees( jobvs, sort, select, bindings::size_column(a),
                 bindings::begin_value(a), bindings::stride_major(a), sdim,

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 2010-07-22 03:25:22 EDT (Thu, 22 Jul 2010)
@@ -59,7 +59,7 @@
         const fortran_int_t lda, fortran_int_t& sdim, float* wr, float* wi,
         float* vs, const fortran_int_t ldvs, float& rconde, float& rcondv,
         float* work, const fortran_int_t lwork, fortran_int_t* iwork,
- const fortran_int_t liwork, logical_t* bwork ) {
+ const fortran_int_t liwork, fortran_bool_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_SGEESX( &jobvs, &sort, select, &sense, &n, a, &lda, &sdim, wr, wi,
             vs, &ldvs, &rconde, &rcondv, work, &lwork, iwork, &liwork, bwork,
@@ -77,7 +77,8 @@
         double* a, const fortran_int_t lda, fortran_int_t& sdim, double* wr,
         double* wi, double* vs, const fortran_int_t ldvs, double& rconde,
         double& rcondv, double* work, const fortran_int_t lwork,
- fortran_int_t* iwork, const fortran_int_t liwork, logical_t* bwork ) {
+ fortran_int_t* iwork, const fortran_int_t liwork,
+ fortran_bool_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_DGEESX( &jobvs, &sort, select, &sense, &n, a, &lda, &sdim, wr, wi,
             vs, &ldvs, &rconde, &rcondv, work, &lwork, iwork, &liwork, bwork,
@@ -96,7 +97,7 @@
         std::complex<float>* w, std::complex<float>* vs,
         const fortran_int_t ldvs, float& rconde, float& rcondv,
         std::complex<float>* work, const fortran_int_t lwork, float* rwork,
- logical_t* bwork ) {
+ fortran_bool_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_CGEESX( &jobvs, &sort, select, &sense, &n, a, &lda, &sdim, w, vs,
             &ldvs, &rconde, &rcondv, work, &lwork, rwork, bwork, &info );
@@ -114,7 +115,7 @@
         std::complex<double>* w, std::complex<double>* vs,
         const fortran_int_t ldvs, double& rconde, double& rcondv,
         std::complex<double>* work, const fortran_int_t lwork, double* rwork,
- logical_t* bwork ) {
+ fortran_bool_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_ZGEESX( &jobvs, &sort, select, &sense, &n, a, &lda, &sdim, w, vs,
             &ldvs, &rconde, &rcondv, work, &lwork, rwork, bwork, &info );
@@ -173,7 +174,7 @@
         BOOST_ASSERT( bindings::size(wi) >= bindings::size_column(a) );
         BOOST_ASSERT( bindings::size(work.select(fortran_int_t())) >=
                 min_size_iwork( bindings::size_column(a), sense ));
- BOOST_ASSERT( bindings::size(work.select(logical_t())) >=
+ BOOST_ASSERT( bindings::size(work.select(fortran_bool_t())) >=
                 min_size_bwork( bindings::size_column(a), sort ));
         BOOST_ASSERT( bindings::size(work.select(real_type())) >=
                 min_size_work( bindings::size_column(a), sense ));
@@ -198,7 +199,7 @@
                 bindings::size(work.select(real_type())),
                 bindings::begin_value(work.select(fortran_int_t())),
                 bindings::size(work.select(fortran_int_t())),
- bindings::begin_value(work.select(logical_t())) );
+ bindings::begin_value(work.select(fortran_bool_t())) );
     }
 
     //
@@ -219,7 +220,7 @@
                 bindings::size_column(a), sense ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
                 min_size_iwork( bindings::size_column(a), sense ) );
- bindings::detail::array< logical_t > tmp_bwork( min_size_bwork(
+ bindings::detail::array< fortran_bool_t > tmp_bwork( min_size_bwork(
                 bindings::size_column(a), sort ) );
         return invoke( jobvs, sort, select, sense, a, sdim, wr, wi, vs,
                 rconde, rcondv, workspace( tmp_work, tmp_iwork, tmp_bwork ) );
@@ -241,7 +242,7 @@
         namespace bindings = ::boost::numeric::bindings;
         real_type opt_size_work;
         fortran_int_t opt_size_iwork;
- bindings::detail::array< logical_t > tmp_bwork( min_size_bwork(
+ bindings::detail::array< fortran_bool_t > tmp_bwork( min_size_bwork(
                 bindings::size_column(a), sort ) );
         detail::geesx( jobvs, sort, select, sense,
                 bindings::size_column(a), bindings::begin_value(a),
@@ -330,7 +331,7 @@
         BOOST_STATIC_ASSERT( (bindings::is_mutable< VectorW >::value) );
         BOOST_STATIC_ASSERT( (bindings::is_mutable< MatrixVS >::value) );
         BOOST_ASSERT( bindings::size(w) >= bindings::size_column(a) );
- BOOST_ASSERT( bindings::size(work.select(logical_t())) >=
+ BOOST_ASSERT( bindings::size(work.select(fortran_bool_t())) >=
                 min_size_bwork( bindings::size_column(a), sort ));
         BOOST_ASSERT( bindings::size(work.select(real_type())) >=
                 min_size_rwork( bindings::size_column(a) ));
@@ -354,7 +355,7 @@
                 rcondv, bindings::begin_value(work.select(value_type())),
                 bindings::size(work.select(value_type())),
                 bindings::begin_value(work.select(real_type())),
- bindings::begin_value(work.select(logical_t())) );
+ bindings::begin_value(work.select(fortran_bool_t())) );
     }
 
     //
@@ -374,7 +375,7 @@
                 bindings::size_column(a), sense ) );
         bindings::detail::array< real_type > tmp_rwork( min_size_rwork(
                 bindings::size_column(a) ) );
- bindings::detail::array< logical_t > tmp_bwork( min_size_bwork(
+ bindings::detail::array< fortran_bool_t > tmp_bwork( min_size_bwork(
                 bindings::size_column(a), sort ) );
         return invoke( jobvs, sort, select, sense, a, sdim, w, vs, rconde,
                 rcondv, workspace( tmp_work, tmp_rwork, tmp_bwork ) );
@@ -396,7 +397,7 @@
         value_type opt_size_work;
         bindings::detail::array< real_type > tmp_rwork( min_size_rwork(
                 bindings::size_column(a) ) );
- bindings::detail::array< logical_t > tmp_bwork( min_size_bwork(
+ bindings::detail::array< fortran_bool_t > tmp_bwork( min_size_bwork(
                 bindings::size_column(a), sort ) );
         detail::geesx( jobvs, sort, select, sense,
                 bindings::size_column(a), bindings::begin_value(a),

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gges.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gges.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gges.hpp 2010-07-22 03:25:22 EDT (Thu, 22 Jul 2010)
@@ -60,7 +60,7 @@
         fortran_int_t& sdim, float* alphar, float* alphai, float* beta,
         float* vsl, const fortran_int_t ldvsl, float* vsr,
         const fortran_int_t ldvsr, float* work, const fortran_int_t lwork,
- logical_t* bwork ) {
+ fortran_bool_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_SGGES( &jobvsl, &jobvsr, &sort, selctg, &n, a, &lda, b, &ldb,
             &sdim, alphar, alphai, beta, vsl, &ldvsl, vsr, &ldvsr, work,
@@ -79,7 +79,7 @@
         fortran_int_t& sdim, double* alphar, double* alphai, double* beta,
         double* vsl, const fortran_int_t ldvsl, double* vsr,
         const fortran_int_t ldvsr, double* work, const fortran_int_t lwork,
- logical_t* bwork ) {
+ fortran_bool_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_DGGES( &jobvsl, &jobvsr, &sort, selctg, &n, a, &lda, b, &ldb,
             &sdim, alphar, alphai, beta, vsl, &ldvsl, vsr, &ldvsr, work,
@@ -100,7 +100,7 @@
         std::complex<float>* vsl, const fortran_int_t ldvsl,
         std::complex<float>* vsr, const fortran_int_t ldvsr,
         std::complex<float>* work, const fortran_int_t lwork, float* rwork,
- logical_t* bwork ) {
+ fortran_bool_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_CGGES( &jobvsl, &jobvsr, &sort, selctg, &n, a, &lda, b, &ldb,
             &sdim, alpha, beta, vsl, &ldvsl, vsr, &ldvsr, work, &lwork, rwork,
@@ -121,7 +121,7 @@
         std::complex<double>* vsl, const fortran_int_t ldvsl,
         std::complex<double>* vsr, const fortran_int_t ldvsr,
         std::complex<double>* work, const fortran_int_t lwork, double* rwork,
- logical_t* bwork ) {
+ fortran_bool_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_ZGGES( &jobvsl, &jobvsr, &sort, selctg, &n, a, &lda, b, &ldb,
             &sdim, alpha, beta, vsl, &ldvsl, vsr, &ldvsr, work, &lwork, rwork,
@@ -198,7 +198,7 @@
         BOOST_STATIC_ASSERT( (bindings::is_mutable< MatrixVSR >::value) );
         BOOST_ASSERT( bindings::size(alphai) >= bindings::size_column(a) );
         BOOST_ASSERT( bindings::size(alphar) >= bindings::size_column(a) );
- BOOST_ASSERT( bindings::size(work.select(logical_t())) >=
+ BOOST_ASSERT( bindings::size(work.select(fortran_bool_t())) >=
                 min_size_bwork( bindings::size_column(a), sort ));
         BOOST_ASSERT( bindings::size(work.select(real_type())) >=
                 min_size_work( bindings::size_column(a) ));
@@ -228,7 +228,7 @@
                 bindings::stride_major(vsr),
                 bindings::begin_value(work.select(real_type())),
                 bindings::size(work.select(real_type())),
- bindings::begin_value(work.select(logical_t())) );
+ bindings::begin_value(work.select(fortran_bool_t())) );
     }
 
     //
@@ -249,7 +249,7 @@
         namespace bindings = ::boost::numeric::bindings;
         bindings::detail::array< real_type > tmp_work( min_size_work(
                 bindings::size_column(a) ) );
- bindings::detail::array< logical_t > tmp_bwork( min_size_bwork(
+ bindings::detail::array< fortran_bool_t > tmp_bwork( min_size_bwork(
                 bindings::size_column(a), sort ) );
         return invoke( jobvsl, jobvsr, sort, selctg, a, b, sdim, alphar,
                 alphai, beta, vsl, vsr, workspace( tmp_work, tmp_bwork ) );
@@ -272,7 +272,7 @@
             MatrixVSR& vsr, optimal_workspace ) {
         namespace bindings = ::boost::numeric::bindings;
         real_type opt_size_work;
- bindings::detail::array< logical_t > tmp_bwork( min_size_bwork(
+ bindings::detail::array< fortran_bool_t > tmp_bwork( min_size_bwork(
                 bindings::size_column(a), sort ) );
         detail::gges( jobvsl, jobvsr, sort, selctg,
                 bindings::size_column(a), bindings::begin_value(a),
@@ -369,7 +369,7 @@
         BOOST_STATIC_ASSERT( (bindings::is_mutable< MatrixVSR >::value) );
         BOOST_ASSERT( bindings::size(alpha) >= bindings::size_column(a) );
         BOOST_ASSERT( bindings::size(beta) >= bindings::size_column(a) );
- BOOST_ASSERT( bindings::size(work.select(logical_t())) >=
+ BOOST_ASSERT( bindings::size(work.select(fortran_bool_t())) >=
                 min_size_bwork( bindings::size_column(a), sort ));
         BOOST_ASSERT( bindings::size(work.select(real_type())) >=
                 min_size_rwork( bindings::size_column(a) ));
@@ -401,7 +401,7 @@
                 bindings::begin_value(work.select(value_type())),
                 bindings::size(work.select(value_type())),
                 bindings::begin_value(work.select(real_type())),
- bindings::begin_value(work.select(logical_t())) );
+ bindings::begin_value(work.select(fortran_bool_t())) );
     }
 
     //
@@ -422,7 +422,7 @@
                 bindings::size_column(a) ) );
         bindings::detail::array< real_type > tmp_rwork( min_size_rwork(
                 bindings::size_column(a) ) );
- bindings::detail::array< logical_t > tmp_bwork( min_size_bwork(
+ bindings::detail::array< fortran_bool_t > tmp_bwork( min_size_bwork(
                 bindings::size_column(a), sort ) );
         return invoke( jobvsl, jobvsr, sort, selctg, a, b, sdim, alpha, beta,
                 vsl, vsr, workspace( tmp_work, tmp_rwork, tmp_bwork ) );
@@ -445,7 +445,7 @@
         value_type opt_size_work;
         bindings::detail::array< real_type > tmp_rwork( min_size_rwork(
                 bindings::size_column(a) ) );
- bindings::detail::array< logical_t > tmp_bwork( min_size_bwork(
+ bindings::detail::array< fortran_bool_t > tmp_bwork( min_size_bwork(
                 bindings::size_column(a), sort ) );
         detail::gges( jobvsl, jobvsr, sort, selctg,
                 bindings::size_column(a), bindings::begin_value(a),

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggesx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggesx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggesx.hpp 2010-07-22 03:25:22 EDT (Thu, 22 Jul 2010)
@@ -61,7 +61,7 @@
         float* alphai, float* beta, float* vsl, const fortran_int_t ldvsl,
         float* vsr, const fortran_int_t ldvsr, float* rconde, float* rcondv,
         float* work, const fortran_int_t lwork, fortran_int_t* iwork,
- const fortran_int_t liwork, logical_t* bwork ) {
+ const fortran_int_t liwork, fortran_bool_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_SGGESX( &jobvsl, &jobvsr, &sort, selctg, &sense, &n, a, &lda, b,
             &ldb, &sdim, alphar, alphai, beta, vsl, &ldvsl, vsr, &ldvsr,
@@ -81,7 +81,8 @@
         double* alphai, double* beta, double* vsl, const fortran_int_t ldvsl,
         double* vsr, const fortran_int_t ldvsr, double* rconde,
         double* rcondv, double* work, const fortran_int_t lwork,
- fortran_int_t* iwork, const fortran_int_t liwork, logical_t* bwork ) {
+ fortran_int_t* iwork, const fortran_int_t liwork,
+ fortran_bool_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_DGGESX( &jobvsl, &jobvsr, &sort, selctg, &sense, &n, a, &lda, b,
             &ldb, &sdim, alphar, alphai, beta, vsl, &ldvsl, vsr, &ldvsr,
@@ -104,7 +105,7 @@
         std::complex<float>* vsr, const fortran_int_t ldvsr, float* rconde,
         float* rcondv, std::complex<float>* work, const fortran_int_t lwork,
         float* rwork, fortran_int_t* iwork, const fortran_int_t liwork,
- logical_t* bwork ) {
+ fortran_bool_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_CGGESX( &jobvsl, &jobvsr, &sort, selctg, &sense, &n, a, &lda, b,
             &ldb, &sdim, alpha, beta, vsl, &ldvsl, vsr, &ldvsr, rconde,
@@ -127,7 +128,7 @@
         std::complex<double>* vsr, const fortran_int_t ldvsr, double* rconde,
         double* rcondv, std::complex<double>* work, const fortran_int_t lwork,
         double* rwork, fortran_int_t* iwork, const fortran_int_t liwork,
- logical_t* bwork ) {
+ fortran_bool_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_ZGGESX( &jobvsl, &jobvsr, &sort, selctg, &sense, &n, a, &lda, b,
             &ldb, &sdim, alpha, beta, vsl, &ldvsl, vsr, &ldvsr, rconde,
@@ -218,7 +219,7 @@
         BOOST_ASSERT( bindings::size(alphar) >= bindings::size_column(a) );
         BOOST_ASSERT( bindings::size(work.select(fortran_int_t())) >=
                 min_size_iwork( bindings::size_column(a), sense ));
- BOOST_ASSERT( bindings::size(work.select(logical_t())) >=
+ BOOST_ASSERT( bindings::size(work.select(fortran_bool_t())) >=
                 min_size_bwork( bindings::size_column(a), sort ));
         BOOST_ASSERT( bindings::size(work.select(real_type())) >=
                 min_size_work( bindings::size_column(a), sense ));
@@ -253,7 +254,7 @@
                 bindings::size(work.select(real_type())),
                 bindings::begin_value(work.select(fortran_int_t())),
                 bindings::size(work.select(fortran_int_t())),
- bindings::begin_value(work.select(logical_t())) );
+ bindings::begin_value(work.select(fortran_bool_t())) );
     }
 
     //
@@ -277,7 +278,7 @@
                 bindings::size_column(a), sense ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
                 min_size_iwork( bindings::size_column(a), sense ) );
- bindings::detail::array< logical_t > tmp_bwork( min_size_bwork(
+ bindings::detail::array< fortran_bool_t > tmp_bwork( min_size_bwork(
                 bindings::size_column(a), sort ) );
         return invoke( jobvsl, jobvsr, sort, selctg, sense, a, b, sdim,
                 alphar, alphai, beta, vsl, vsr, rconde, rcondv,
@@ -304,7 +305,7 @@
         real_type opt_size_work;
         bindings::detail::array< fortran_int_t > tmp_iwork(
                 min_size_iwork( bindings::size_column(a), sense ) );
- bindings::detail::array< logical_t > tmp_bwork( min_size_bwork(
+ bindings::detail::array< fortran_bool_t > tmp_bwork( min_size_bwork(
                 bindings::size_column(a), sort ) );
         detail::ggesx( jobvsl, jobvsr, sort, selctg, sense,
                 bindings::size_column(a), bindings::begin_value(a),
@@ -429,7 +430,7 @@
         BOOST_ASSERT( bindings::size(beta) >= bindings::size_column(a) );
         BOOST_ASSERT( bindings::size(work.select(fortran_int_t())) >=
                 min_size_iwork( bindings::size_column(a), sense ));
- BOOST_ASSERT( bindings::size(work.select(logical_t())) >=
+ BOOST_ASSERT( bindings::size(work.select(fortran_bool_t())) >=
                 min_size_bwork( bindings::size_column(a), sort ));
         BOOST_ASSERT( bindings::size(work.select(real_type())) >=
                 min_size_rwork( bindings::size_column(a) ));
@@ -466,7 +467,7 @@
                 bindings::begin_value(work.select(real_type())),
                 bindings::begin_value(work.select(fortran_int_t())),
                 bindings::size(work.select(value_type())),
- bindings::begin_value(work.select(logical_t())) );
+ bindings::begin_value(work.select(fortran_bool_t())) );
     }
 
     //
@@ -491,7 +492,7 @@
                 bindings::size_column(a) ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
                 min_size_iwork( bindings::size_column(a), sense ) );
- bindings::detail::array< logical_t > tmp_bwork( min_size_bwork(
+ bindings::detail::array< fortran_bool_t > tmp_bwork( min_size_bwork(
                 bindings::size_column(a), sort ) );
         return invoke( jobvsl, jobvsr, sort, selctg, sense, a, b, sdim, alpha,
                 beta, vsl, vsr, rconde, rcondv, workspace( tmp_work,
@@ -519,7 +520,7 @@
                 bindings::size_column(a) ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
                 min_size_iwork( bindings::size_column(a), sense ) );
- bindings::detail::array< logical_t > tmp_bwork( min_size_bwork(
+ bindings::detail::array< fortran_bool_t > tmp_bwork( min_size_bwork(
                 bindings::size_column(a), sort ) );
         detail::ggesx( jobvsl, jobvsr, sort, selctg, sense,
                 bindings::size_column(a), bindings::begin_value(a),

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 2010-07-22 03:25:22 EDT (Thu, 22 Jul 2010)
@@ -61,7 +61,8 @@
         const fortran_int_t ldvl, float* vr, const fortran_int_t ldvr,
         fortran_int_t& ilo, fortran_int_t& ihi, float* lscale, float* rscale,
         float& abnrm, float& bbnrm, float* rconde, float* rcondv, float* work,
- const fortran_int_t lwork, fortran_int_t* iwork, logical_t* bwork ) {
+ const fortran_int_t lwork, fortran_int_t* iwork,
+ fortran_bool_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_SGGEVX( &balanc, &jobvl, &jobvr, &sense, &n, a, &lda, b, &ldb,
             alphar, alphai, beta, vl, &ldvl, vr, &ldvr, &ilo, &ihi, lscale,
@@ -83,7 +84,7 @@
         fortran_int_t& ilo, fortran_int_t& ihi, double* lscale,
         double* rscale, double& abnrm, double& bbnrm, double* rconde,
         double* rcondv, double* work, const fortran_int_t lwork,
- fortran_int_t* iwork, logical_t* bwork ) {
+ fortran_int_t* iwork, fortran_bool_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_DGGEVX( &balanc, &jobvl, &jobvr, &sense, &n, a, &lda, b, &ldb,
             alphar, alphai, beta, vl, &ldvl, vr, &ldvr, &ilo, &ihi, lscale,
@@ -107,7 +108,7 @@
         fortran_int_t& ihi, float* lscale, float* rscale, float& abnrm,
         float& bbnrm, float* rconde, float* rcondv, std::complex<float>* work,
         const fortran_int_t lwork, float* rwork, fortran_int_t* iwork,
- logical_t* bwork ) {
+ fortran_bool_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_CGGEVX( &balanc, &jobvl, &jobvr, &sense, &n, a, &lda, b, &ldb,
             alpha, beta, vl, &ldvl, vr, &ldvr, &ilo, &ihi, lscale, rscale,
@@ -131,7 +132,7 @@
         fortran_int_t& ilo, fortran_int_t& ihi, double* lscale,
         double* rscale, double& abnrm, double& bbnrm, double* rconde,
         double* rcondv, std::complex<double>* work, const fortran_int_t lwork,
- double* rwork, fortran_int_t* iwork, logical_t* bwork ) {
+ double* rwork, fortran_int_t* iwork, fortran_bool_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_ZGGEVX( &balanc, &jobvl, &jobvr, &sense, &n, a, &lda, b, &ldb,
             alpha, beta, vl, &ldvl, vr, &ldvr, &ilo, &ihi, lscale, rscale,
@@ -236,7 +237,7 @@
         BOOST_ASSERT( bindings::size(alphar) >= bindings::size_column(a) );
         BOOST_ASSERT( bindings::size(work.select(fortran_int_t())) >=
                 min_size_iwork( sense, bindings::size_column(a) ));
- BOOST_ASSERT( bindings::size(work.select(logical_t())) >=
+ BOOST_ASSERT( bindings::size(work.select(fortran_bool_t())) >=
                 min_size_bwork( sense, bindings::size_column(a) ));
         BOOST_ASSERT( bindings::size(work.select(real_type())) >=
                 min_size_work( balanc, jobvl, jobvr, sense,
@@ -273,7 +274,7 @@
                 bindings::begin_value(work.select(real_type())),
                 bindings::size(work.select(real_type())),
                 bindings::begin_value(work.select(fortran_int_t())),
- bindings::begin_value(work.select(logical_t())) );
+ bindings::begin_value(work.select(fortran_bool_t())) );
     }
 
     //
@@ -299,8 +300,8 @@
                 jobvl, jobvr, sense, bindings::size_column(a) ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
                 min_size_iwork( sense, bindings::size_column(a) ) );
- bindings::detail::array< logical_t > tmp_bwork( min_size_bwork( sense,
- bindings::size_column(a) ) );
+ bindings::detail::array< fortran_bool_t > tmp_bwork( min_size_bwork(
+ sense, bindings::size_column(a) ) );
         return invoke( balanc, jobvl, jobvr, sense, a, b, alphar, alphai,
                 beta, vl, vr, ilo, ihi, lscale, rscale, abnrm, bbnrm, rconde,
                 rcondv, workspace( tmp_work, tmp_iwork, tmp_bwork ) );
@@ -328,8 +329,8 @@
         real_type opt_size_work;
         bindings::detail::array< fortran_int_t > tmp_iwork(
                 min_size_iwork( sense, bindings::size_column(a) ) );
- bindings::detail::array< logical_t > tmp_bwork( min_size_bwork( sense,
- bindings::size_column(a) ) );
+ bindings::detail::array< fortran_bool_t > tmp_bwork( min_size_bwork(
+ sense, bindings::size_column(a) ) );
         detail::ggevx( balanc, jobvl, jobvr, sense,
                 bindings::size_column(a), bindings::begin_value(a),
                 bindings::stride_major(a), bindings::begin_value(b),
@@ -466,7 +467,7 @@
         BOOST_ASSERT( bindings::size(beta) >= bindings::size_column(a) );
         BOOST_ASSERT( bindings::size(work.select(fortran_int_t())) >=
                 min_size_iwork( sense, bindings::size_column(a) ));
- BOOST_ASSERT( bindings::size(work.select(logical_t())) >=
+ BOOST_ASSERT( bindings::size(work.select(fortran_bool_t())) >=
                 min_size_bwork( sense, bindings::size_column(a) ));
         BOOST_ASSERT( bindings::size(work.select(real_type())) >=
                 min_size_rwork( balanc, bindings::size_column(a) ));
@@ -505,7 +506,7 @@
                 bindings::size(work.select(value_type())),
                 bindings::begin_value(work.select(real_type())),
                 bindings::begin_value(work.select(fortran_int_t())),
- bindings::begin_value(work.select(logical_t())) );
+ bindings::begin_value(work.select(fortran_bool_t())) );
     }
 
     //
@@ -533,8 +534,8 @@
                 balanc, bindings::size_column(a) ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
                 min_size_iwork( sense, bindings::size_column(a) ) );
- bindings::detail::array< logical_t > tmp_bwork( min_size_bwork( sense,
- bindings::size_column(a) ) );
+ bindings::detail::array< fortran_bool_t > tmp_bwork( min_size_bwork(
+ sense, bindings::size_column(a) ) );
         return invoke( balanc, jobvl, jobvr, sense, a, b, alpha, beta, vl, vr,
                 ilo, ihi, lscale, rscale, abnrm, bbnrm, rconde, rcondv,
                 workspace( tmp_work, tmp_rwork, tmp_iwork, tmp_bwork ) );
@@ -564,8 +565,8 @@
                 balanc, bindings::size_column(a) ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
                 min_size_iwork( sense, bindings::size_column(a) ) );
- bindings::detail::array< logical_t > tmp_bwork( min_size_bwork( sense,
- bindings::size_column(a) ) );
+ bindings::detail::array< fortran_bool_t > tmp_bwork( min_size_bwork(
+ sense, bindings::size_column(a) ) );
         detail::ggevx( balanc, jobvl, jobvr, sense,
                 bindings::size_column(a), bindings::begin_value(a),
                 bindings::stride_major(a), bindings::begin_value(b),

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/hseqr.cpp
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/hseqr.cpp (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/hseqr.cpp 2010-07-22 03:25:22 EDT (Thu, 22 Jul 2010)
@@ -102,7 +102,7 @@
     ublas::matrix<complex<double>, ublas::column_major> cVR(cZ);
     boost::numeric::bindings::detail::array<complex<double> > work_c(2*n);
     boost::numeric::bindings::detail::array<double> work_r(n);
- ublas::vector<logical_t> select_dummy(n);
+ ublas::vector<fortran_bool_t> select_dummy(n);
     fortran_int_t m_info(n+1);
     lapack::trevc( tag::both(),'B',select_dummy,G,cVL,cVR,n,m_info,lapack::workspace(work_c,work_r));
 

Modified: sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gees.cpp
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gees.cpp (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/lapack/test/ublas_gees.cpp 2010-07-22 03:25:22 EDT (Thu, 22 Jul 2010)
@@ -81,28 +81,28 @@
 template<>
 struct dispatch_select<float>
 {
- static logical_t my_select(float* w_real, float* w_imag) {
+ static fortran_bool_t my_select(float* w_real, float* w_imag) {
     return *w_real > std::abs(*w_imag);
   }
 };
 template<>
 struct dispatch_select<double>
 {
- static logical_t my_select(double* w_real, double* w_imag) {
+ static fortran_bool_t my_select(double* w_real, double* w_imag) {
     return *w_real > std::abs(*w_imag);
   }
 };
 template<>
 struct dispatch_select<std::complex<float> >
 {
- static logical_t my_select(std::complex<float>* w) {
+ static fortran_bool_t my_select(std::complex<float>* w) {
     return w->real() > std::abs(w->imag());
   }
 };
 template<>
 struct dispatch_select<std::complex<double> >
 {
- static logical_t my_select(std::complex<double>* w) {
+ static fortran_bool_t my_select(std::complex<double>* w) {
     return w->real() > std::abs(w->imag());
   }
 };
@@ -150,7 +150,7 @@
 template <typename T>
 struct Workspace {
    typedef ublas::vector<T> array_type ;
- typedef ublas::vector< logical_t > bool_array_type ;
+ typedef ublas::vector< fortran_bool_t > bool_array_type ;
    typedef lapack::detail::workspace2< array_type,bool_array_type > type ;
 
    Workspace(size_t n)
@@ -171,7 +171,7 @@
 struct Workspace< std::complex<T> > {
    typedef ublas::vector<T> real_array_type ;
    typedef ublas::vector< std::complex<T> > complex_array_type ;
- typedef ublas::vector< logical_t > bool_array_type ;
+ typedef ublas::vector< fortran_bool_t > bool_array_type ;
    typedef lapack::detail::workspace3< complex_array_type,real_array_type,bool_array_type > type ;
 
    Workspace(size_t n)

Modified: sandbox/numeric_bindings/libs/numeric/bindings/tools/netlib.py
==============================================================================
--- sandbox/numeric_bindings/libs/numeric/bindings/tools/netlib.py (original)
+++ sandbox/numeric_bindings/libs/numeric/bindings/tools/netlib.py 2010-07-22 03:25:22 EDT (Thu, 22 Jul 2010)
@@ -26,7 +26,7 @@
 global_type_map = {
   'CHARACTER': 'char',
   'CHARACTER*1': 'char',
- 'LOGICAL': 'logical_t',
+ 'LOGICAL': 'fortran_bool_t',
   'EXTERNAL': 'external_fp',
   'INTEGER': library_integer_type,
   'REAL': 'float',
@@ -557,10 +557,8 @@
 def workspace_type( name, properties ):
   result = None
   if 'workspace' in properties[ 'io' ]:
- if properties[ 'value_type' ] == 'INTEGER':
- result = library_integer_type
- elif properties[ 'value_type' ] == 'LOGICAL':
- result = 'logical_t'
+ if properties[ 'value_type' ] == 'INTEGER' or properties[ 'value_type' ] == 'LOGICAL':
+ result = global_type_map[ properties[ 'value_type' ] ]
     elif properties[ 'value_type' ] == 'REAL' or properties[ 'value_type' ] == 'DOUBLE PRECISION':
       result = 'real_type'
     else:


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