Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r58945 - in sandbox/numeric_bindings/boost/numeric/bindings: lapack/auxiliary lapack/computational lapack/driver ublas
From: rutger_at_[hidden]
Date: 2010-01-12 11:28:45


Author: rutger
Date: 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
New Revision: 58945
URL: http://svn.boost.org/trac/boost/changeset/58945

Log:
Improved detection of the order of banded and packed matrices (no more need to add a great deal of .trait_of templates)

Text files modified:
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/langb.hpp | 31
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lanhb.hpp | 33
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lanhp.hpp | 31
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lansb.hpp | 33
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lansp.hpp | 31
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lantb.hpp | 33
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbcon.hpp | 102
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbrfs.hpp | 259
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbtrs.hpp | 25
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gerfs.hpp | 12
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggbal.hpp | 420
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gghrd.hpp | 117
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggqrf.hpp | 28
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggrqf.hpp | 20
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggsvp.hpp | 36
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hbgst.hpp | 92
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hbtrd.hpp | 241
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hegst.hpp | 24
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/herfs.hpp | 6
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hprfs.hpp | 6
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbcon.hpp | 86
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbequ.hpp | 40
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbrfs.hpp | 226
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbstf.hpp | 17
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbtrf.hpp | 17
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbtrs.hpp | 27
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/porfs.hpp | 12
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pprfs.hpp | 12
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pptrf.hpp | 17
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sbgst.hpp | 85
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sbtrd.hpp | 241
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sprfs.hpp | 12
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sptrf.hpp | 28
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sygst.hpp | 24
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/syrfs.hpp | 12
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tbcon.hpp | 80
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tbrfs.hpp | 184
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tbtrs.hpp | 27
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgevc.hpp | 164
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgexc.hpp | 367
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsen.hpp | 9738 +++++++++++++++++------------------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsja.hpp | 20
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsyl.hpp | 98
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tprfs.hpp | 12
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trrfs.hpp | 12
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/cgesv.hpp | 27
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/cposv.hpp | 18
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gbsvx.hpp | 10926 +++++++++++++++++++--------------------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gesvx.hpp | 12
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggglm.hpp | 36
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gglse.hpp | 24
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggsvd.hpp | 32
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbevd.hpp | 136
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbevx.hpp | 944 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbgv.hpp | 254
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbgvd.hpp | 264
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbgvx.hpp | 867 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hegvd.hpp | 144
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hegvx.hpp | 1067 +--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hesvx.hpp | 8
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpevx.hpp | 217
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpgvx.hpp | 903 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpsvx.hpp | 6
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/pbsvx.hpp | 2865 ++++-----
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/posvx.hpp | 12
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ppsvx.hpp | 12
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ptsvx.hpp | 12
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbevd.hpp | 159
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbevx.hpp | 938 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbgv.hpp | 247
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbgvd.hpp | 261
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbgvx.hpp | 861 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sgesv.hpp | 24
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spevx.hpp | 211
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sposv.hpp | 14
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spsvx.hpp | 12
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sygvd.hpp | 134
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sysvx.hpp | 16
   sandbox/numeric_bindings/boost/numeric/bindings/ublas/matrix_proxy.hpp | 1
   79 files changed, 16727 insertions(+), 18075 deletions(-)

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/langb.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/langb.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/langb.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -118,17 +118,17 @@
     // * Asserts that most arguments make sense.
     //
     template< typename MatrixAB, typename WORK >
- static std::ptrdiff_t invoke( const char norm, const fortran_int_t n,
- const MatrixAB& ab, detail::workspace1< WORK > work ) {
+ static std::ptrdiff_t invoke( const char norm, const MatrixAB& ab,
+ detail::workspace1< WORK > work ) {
         BOOST_ASSERT( bandwidth_lower(ab) >= 0 );
         BOOST_ASSERT( bandwidth_upper(ab) >= 0 );
- BOOST_ASSERT( n >= 0 );
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
                 $CALL_MIN_SIZE ));
+ BOOST_ASSERT( size_column(ab) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( stride_major(ab) >= bandwidth_lower(ab)+
                 bandwidth_upper(ab)+1 );
- return detail::langb( norm, n, bandwidth_lower(ab),
+ return detail::langb( norm, size_column(ab), bandwidth_lower(ab),
                 bandwidth_upper(ab), begin_value(ab), stride_major(ab),
                 begin_value(work.select(real_type())) );
     }
@@ -141,11 +141,11 @@
     // * Enables the unblocked algorithm (BLAS level 2)
     //
     template< typename MatrixAB >
- static std::ptrdiff_t invoke( const char norm, const fortran_int_t n,
- const MatrixAB& ab, minimal_workspace work ) {
+ static std::ptrdiff_t invoke( const char norm, const MatrixAB& ab,
+ minimal_workspace work ) {
         bindings::detail::array< real_type > tmp_work( min_size_work(
                 $CALL_MIN_SIZE ) );
- return invoke( norm, n, ab, workspace( tmp_work ) );
+ return invoke( norm, ab, workspace( tmp_work ) );
     }
 
     //
@@ -156,9 +156,9 @@
     // * Enables the blocked algorithm (BLAS level 3)
     //
     template< typename MatrixAB >
- static std::ptrdiff_t invoke( const char norm, const fortran_int_t n,
- const MatrixAB& ab, optimal_workspace work ) {
- return invoke( norm, n, ab, minimal_workspace() );
+ static std::ptrdiff_t invoke( const char norm, const MatrixAB& ab,
+ optimal_workspace work ) {
+ return invoke( norm, ab, minimal_workspace() );
     }
 
     //
@@ -185,10 +185,10 @@
 // * User-defined workspace
 //
 template< typename MatrixAB, typename Workspace >
-inline std::ptrdiff_t langb( const char norm, const fortran_int_t n,
- const MatrixAB& ab, Workspace work ) {
+inline std::ptrdiff_t langb( const char norm, const MatrixAB& ab,
+ Workspace work ) {
     return langb_impl< typename value< MatrixAB >::type >::invoke( norm,
- n, ab, work );
+ ab, work );
 }
 
 //
@@ -196,10 +196,9 @@
 // * Default workspace-type (optimal)
 //
 template< typename MatrixAB >
-inline std::ptrdiff_t langb( const char norm, const fortran_int_t n,
- const MatrixAB& ab ) {
+inline std::ptrdiff_t langb( const char norm, const MatrixAB& ab ) {
     return langb_impl< typename value< MatrixAB >::type >::invoke( norm,
- n, ab, optimal_workspace() );
+ ab, optimal_workspace() );
 }
 
 } // namespace lapack

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lanhb.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lanhb.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lanhb.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -95,16 +95,16 @@
     // * Asserts that most arguments make sense.
     //
     template< typename MatrixAB, typename WORK >
- static std::ptrdiff_t invoke( const char norm, const fortran_int_t n,
- const MatrixAB& ab, detail::workspace1< WORK > work ) {
+ static std::ptrdiff_t invoke( const char norm, const MatrixAB& ab,
+ detail::workspace1< WORK > work ) {
         BOOST_ASSERT( bandwidth_lower(ab) >= 0 );
- BOOST_ASSERT( n >= 0 );
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
                 $CALL_MIN_SIZE ));
+ BOOST_ASSERT( size_column(ab) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( stride_major(ab) >= bandwidth_lower(ab)+1 );
- return detail::lanhb( norm, uplo(), n, bandwidth_lower(ab),
- begin_value(ab), stride_major(ab),
+ return detail::lanhb( norm, uplo(), size_column(ab),
+ bandwidth_lower(ab), begin_value(ab), stride_major(ab),
                 begin_value(work.select(real_type())) );
     }
 
@@ -116,11 +116,11 @@
     // * Enables the unblocked algorithm (BLAS level 2)
     //
     template< typename MatrixAB >
- static std::ptrdiff_t invoke( const char norm, const fortran_int_t n,
- const MatrixAB& ab, minimal_workspace work ) {
+ static std::ptrdiff_t invoke( const char norm, const MatrixAB& ab,
+ minimal_workspace work ) {
         bindings::detail::array< real_type > tmp_work( min_size_work(
                 $CALL_MIN_SIZE ) );
- return invoke( norm, n, ab, workspace( tmp_work ) );
+ return invoke( norm, ab, workspace( tmp_work ) );
     }
 
     //
@@ -131,9 +131,9 @@
     // * Enables the blocked algorithm (BLAS level 3)
     //
     template< typename MatrixAB >
- static std::ptrdiff_t invoke( const char norm, const fortran_int_t n,
- const MatrixAB& ab, optimal_workspace work ) {
- return invoke( norm, n, ab, minimal_workspace() );
+ static std::ptrdiff_t invoke( const char norm, const MatrixAB& ab,
+ optimal_workspace work ) {
+ return invoke( norm, ab, minimal_workspace() );
     }
 
     //
@@ -160,10 +160,10 @@
 // * User-defined workspace
 //
 template< typename MatrixAB, typename Workspace >
-inline std::ptrdiff_t lanhb( const char norm, const fortran_int_t n,
- const MatrixAB& ab, Workspace work ) {
+inline std::ptrdiff_t lanhb( const char norm, const MatrixAB& ab,
+ Workspace work ) {
     return lanhb_impl< typename value< MatrixAB >::type >::invoke( norm,
- n, ab, work );
+ ab, work );
 }
 
 //
@@ -171,10 +171,9 @@
 // * Default workspace-type (optimal)
 //
 template< typename MatrixAB >
-inline std::ptrdiff_t lanhb( const char norm, const fortran_int_t n,
- const MatrixAB& ab ) {
+inline std::ptrdiff_t lanhb( const char norm, const MatrixAB& ab ) {
     return lanhb_impl< typename value< MatrixAB >::type >::invoke( norm,
- n, ab, optimal_workspace() );
+ ab, optimal_workspace() );
 }
 
 } // namespace lapack

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lanhp.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lanhp.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lanhp.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -90,12 +90,12 @@
     // * Asserts that most arguments make sense.
     //
     template< typename MatrixAP, typename WORK >
- static std::ptrdiff_t invoke( const char norm, const fortran_int_t n,
- const MatrixAP& ap, detail::workspace1< WORK > work ) {
- BOOST_ASSERT( n >= 0 );
+ static std::ptrdiff_t invoke( const char norm, const MatrixAP& ap,
+ detail::workspace1< WORK > work ) {
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
                 $CALL_MIN_SIZE ));
- return detail::lanhp( norm, uplo(), n, begin_value(ap),
+ BOOST_ASSERT( size_column(ap) >= 0 );
+ return detail::lanhp( norm, uplo(), size_column(ap), begin_value(ap),
                 begin_value(work.select(real_type())) );
     }
 
@@ -107,11 +107,11 @@
     // * Enables the unblocked algorithm (BLAS level 2)
     //
     template< typename MatrixAP >
- static std::ptrdiff_t invoke( const char norm, const fortran_int_t n,
- const MatrixAP& ap, minimal_workspace work ) {
+ static std::ptrdiff_t invoke( const char norm, const MatrixAP& ap,
+ minimal_workspace work ) {
         bindings::detail::array< real_type > tmp_work( min_size_work(
                 $CALL_MIN_SIZE ) );
- return invoke( norm, n, ap, workspace( tmp_work ) );
+ return invoke( norm, ap, workspace( tmp_work ) );
     }
 
     //
@@ -122,9 +122,9 @@
     // * Enables the blocked algorithm (BLAS level 3)
     //
     template< typename MatrixAP >
- static std::ptrdiff_t invoke( const char norm, const fortran_int_t n,
- const MatrixAP& ap, optimal_workspace work ) {
- return invoke( norm, n, ap, minimal_workspace() );
+ static std::ptrdiff_t invoke( const char norm, const MatrixAP& ap,
+ optimal_workspace work ) {
+ return invoke( norm, ap, minimal_workspace() );
     }
 
     //
@@ -151,10 +151,10 @@
 // * User-defined workspace
 //
 template< typename MatrixAP, typename Workspace >
-inline std::ptrdiff_t lanhp( const char norm, const fortran_int_t n,
- const MatrixAP& ap, Workspace work ) {
+inline std::ptrdiff_t lanhp( const char norm, const MatrixAP& ap,
+ Workspace work ) {
     return lanhp_impl< typename value< MatrixAP >::type >::invoke( norm,
- n, ap, work );
+ ap, work );
 }
 
 //
@@ -162,10 +162,9 @@
 // * Default workspace-type (optimal)
 //
 template< typename MatrixAP >
-inline std::ptrdiff_t lanhp( const char norm, const fortran_int_t n,
- const MatrixAP& ap ) {
+inline std::ptrdiff_t lanhp( const char norm, const MatrixAP& ap ) {
     return lanhp_impl< typename value< MatrixAP >::type >::invoke( norm,
- n, ap, optimal_workspace() );
+ ap, optimal_workspace() );
 }
 
 } // namespace lapack

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lansb.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lansb.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lansb.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -125,16 +125,16 @@
     // * Asserts that most arguments make sense.
     //
     template< typename MatrixAB, typename WORK >
- static std::ptrdiff_t invoke( const char norm, const fortran_int_t n,
- const MatrixAB& ab, detail::workspace1< WORK > work ) {
+ static std::ptrdiff_t invoke( const char norm, const MatrixAB& ab,
+ detail::workspace1< WORK > work ) {
         BOOST_ASSERT( bandwidth_lower(ab) >= 0 );
- BOOST_ASSERT( n >= 0 );
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
                 $CALL_MIN_SIZE ));
+ BOOST_ASSERT( size_column(ab) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( stride_major(ab) >= bandwidth_lower(ab)+1 );
- return detail::lansb( norm, uplo(), n, bandwidth_lower(ab),
- begin_value(ab), stride_major(ab),
+ return detail::lansb( norm, uplo(), size_column(ab),
+ bandwidth_lower(ab), begin_value(ab), stride_major(ab),
                 begin_value(work.select(real_type())) );
     }
 
@@ -146,11 +146,11 @@
     // * Enables the unblocked algorithm (BLAS level 2)
     //
     template< typename MatrixAB >
- static std::ptrdiff_t invoke( const char norm, const fortran_int_t n,
- const MatrixAB& ab, minimal_workspace work ) {
+ static std::ptrdiff_t invoke( const char norm, const MatrixAB& ab,
+ minimal_workspace work ) {
         bindings::detail::array< real_type > tmp_work( min_size_work(
                 $CALL_MIN_SIZE ) );
- return invoke( norm, n, ab, workspace( tmp_work ) );
+ return invoke( norm, ab, workspace( tmp_work ) );
     }
 
     //
@@ -161,9 +161,9 @@
     // * Enables the blocked algorithm (BLAS level 3)
     //
     template< typename MatrixAB >
- static std::ptrdiff_t invoke( const char norm, const fortran_int_t n,
- const MatrixAB& ab, optimal_workspace work ) {
- return invoke( norm, n, ab, minimal_workspace() );
+ static std::ptrdiff_t invoke( const char norm, const MatrixAB& ab,
+ optimal_workspace work ) {
+ return invoke( norm, ab, minimal_workspace() );
     }
 
     //
@@ -190,10 +190,10 @@
 // * User-defined workspace
 //
 template< typename MatrixAB, typename Workspace >
-inline std::ptrdiff_t lansb( const char norm, const fortran_int_t n,
- const MatrixAB& ab, Workspace work ) {
+inline std::ptrdiff_t lansb( const char norm, const MatrixAB& ab,
+ Workspace work ) {
     return lansb_impl< typename value< MatrixAB >::type >::invoke( norm,
- n, ab, work );
+ ab, work );
 }
 
 //
@@ -201,10 +201,9 @@
 // * Default workspace-type (optimal)
 //
 template< typename MatrixAB >
-inline std::ptrdiff_t lansb( const char norm, const fortran_int_t n,
- const MatrixAB& ab ) {
+inline std::ptrdiff_t lansb( const char norm, const MatrixAB& ab ) {
     return lansb_impl< typename value< MatrixAB >::type >::invoke( norm,
- n, ab, optimal_workspace() );
+ ab, optimal_workspace() );
 }
 
 } // namespace lapack

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lansp.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lansp.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lansp.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -116,12 +116,12 @@
     // * Asserts that most arguments make sense.
     //
     template< typename MatrixAP, typename WORK >
- static std::ptrdiff_t invoke( const char norm, const fortran_int_t n,
- const MatrixAP& ap, detail::workspace1< WORK > work ) {
- BOOST_ASSERT( n >= 0 );
+ static std::ptrdiff_t invoke( const char norm, const MatrixAP& ap,
+ detail::workspace1< WORK > work ) {
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
                 $CALL_MIN_SIZE ));
- return detail::lansp( norm, uplo(), n, begin_value(ap),
+ BOOST_ASSERT( size_column(ap) >= 0 );
+ return detail::lansp( norm, uplo(), size_column(ap), begin_value(ap),
                 begin_value(work.select(real_type())) );
     }
 
@@ -133,11 +133,11 @@
     // * Enables the unblocked algorithm (BLAS level 2)
     //
     template< typename MatrixAP >
- static std::ptrdiff_t invoke( const char norm, const fortran_int_t n,
- const MatrixAP& ap, minimal_workspace work ) {
+ static std::ptrdiff_t invoke( const char norm, const MatrixAP& ap,
+ minimal_workspace work ) {
         bindings::detail::array< real_type > tmp_work( min_size_work(
                 $CALL_MIN_SIZE ) );
- return invoke( norm, n, ap, workspace( tmp_work ) );
+ return invoke( norm, ap, workspace( tmp_work ) );
     }
 
     //
@@ -148,9 +148,9 @@
     // * Enables the blocked algorithm (BLAS level 3)
     //
     template< typename MatrixAP >
- static std::ptrdiff_t invoke( const char norm, const fortran_int_t n,
- const MatrixAP& ap, optimal_workspace work ) {
- return invoke( norm, n, ap, minimal_workspace() );
+ static std::ptrdiff_t invoke( const char norm, const MatrixAP& ap,
+ optimal_workspace work ) {
+ return invoke( norm, ap, minimal_workspace() );
     }
 
     //
@@ -177,10 +177,10 @@
 // * User-defined workspace
 //
 template< typename MatrixAP, typename Workspace >
-inline std::ptrdiff_t lansp( const char norm, const fortran_int_t n,
- const MatrixAP& ap, Workspace work ) {
+inline std::ptrdiff_t lansp( const char norm, const MatrixAP& ap,
+ Workspace work ) {
     return lansp_impl< typename value< MatrixAP >::type >::invoke( norm,
- n, ap, work );
+ ap, work );
 }
 
 //
@@ -188,10 +188,9 @@
 // * Default workspace-type (optimal)
 //
 template< typename MatrixAP >
-inline std::ptrdiff_t lansp( const char norm, const fortran_int_t n,
- const MatrixAP& ap ) {
+inline std::ptrdiff_t lansp( const char norm, const MatrixAP& ap ) {
     return lansp_impl< typename value< MatrixAP >::type >::invoke( norm,
- n, ap, optimal_workspace() );
+ ap, optimal_workspace() );
 }
 
 } // namespace lapack

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lantb.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lantb.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lantb.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -129,17 +129,18 @@
     //
     template< typename MatrixAB, typename WORK >
     static std::ptrdiff_t invoke( const char norm, const char uplo,
- const fortran_int_t n, const fortran_int_t k,
- const MatrixAB& ab, detail::workspace1< WORK > work ) {
+ const fortran_int_t k, const MatrixAB& ab, detail::workspace1<
+ WORK > work ) {
         typedef typename result_of::diag_tag< MatrixAB >::type diag;
         BOOST_ASSERT( k >= 0 );
- BOOST_ASSERT( n >= 0 );
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
                 $CALL_MIN_SIZE ));
+ BOOST_ASSERT( size_column(ab) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( stride_major(ab) >= k+1 );
- return detail::lantb( norm, uplo, diag(), n, k, begin_value(ab),
- stride_major(ab), begin_value(work.select(real_type())) );
+ return detail::lantb( norm, uplo, diag(), size_column(ab), k,
+ begin_value(ab), stride_major(ab),
+ begin_value(work.select(real_type())) );
     }
 
     //
@@ -151,12 +152,12 @@
     //
     template< typename MatrixAB >
     static std::ptrdiff_t invoke( const char norm, const char uplo,
- const fortran_int_t n, const fortran_int_t k,
- const MatrixAB& ab, minimal_workspace work ) {
+ const fortran_int_t k, const MatrixAB& ab,
+ minimal_workspace work ) {
         typedef typename result_of::diag_tag< MatrixAB >::type diag;
         bindings::detail::array< real_type > tmp_work( min_size_work(
                 $CALL_MIN_SIZE ) );
- return invoke( norm, uplo, n, k, ab, workspace( tmp_work ) );
+ return invoke( norm, uplo, k, ab, workspace( tmp_work ) );
     }
 
     //
@@ -168,10 +169,10 @@
     //
     template< typename MatrixAB >
     static std::ptrdiff_t invoke( const char norm, const char uplo,
- const fortran_int_t n, const fortran_int_t k,
- const MatrixAB& ab, optimal_workspace work ) {
+ const fortran_int_t k, const MatrixAB& ab,
+ optimal_workspace work ) {
         typedef typename result_of::diag_tag< MatrixAB >::type diag;
- return invoke( norm, uplo, n, k, ab, minimal_workspace() );
+ return invoke( norm, uplo, k, ab, minimal_workspace() );
     }
 
     //
@@ -199,10 +200,9 @@
 //
 template< typename MatrixAB, typename Workspace >
 inline std::ptrdiff_t lantb( const char norm, const char uplo,
- const fortran_int_t n, const fortran_int_t k,
- const MatrixAB& ab, Workspace work ) {
+ const fortran_int_t k, const MatrixAB& ab, Workspace work ) {
     return lantb_impl< typename value< MatrixAB >::type >::invoke( norm,
- uplo, n, k, ab, work );
+ uplo, k, ab, work );
 }
 
 //
@@ -211,10 +211,9 @@
 //
 template< typename MatrixAB >
 inline std::ptrdiff_t lantb( const char norm, const char uplo,
- const fortran_int_t n, const fortran_int_t k,
- const MatrixAB& ab ) {
+ const fortran_int_t k, const MatrixAB& ab ) {
     return lantb_impl< typename value< MatrixAB >::type >::invoke( norm,
- uplo, n, k, ab, optimal_workspace() );
+ uplo, k, ab, optimal_workspace() );
 }
 
 } // namespace lapack

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbcon.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbcon.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbcon.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -137,20 +137,21 @@
     //
     template< typename MatrixAB, typename VectorIPIV, typename WORK,
             typename IWORK >
- static std::ptrdiff_t invoke( const char norm, const fortran_int_t n,
- const MatrixAB& ab, const VectorIPIV& ipiv, const real_type anorm,
- real_type& rcond, detail::workspace2< WORK, IWORK > work ) {
+ static std::ptrdiff_t invoke( const char norm, const MatrixAB& ab,
+ const VectorIPIV& ipiv, const real_type anorm, real_type& rcond,
+ detail::workspace2< WORK, IWORK > work ) {
         BOOST_ASSERT( bandwidth_lower(ab) >= 0 );
         BOOST_ASSERT( bandwidth_upper(ab) >= 0 );
- BOOST_ASSERT( n >= 0 );
         BOOST_ASSERT( norm == '1' || norm == 'O' || norm == 'I' );
- BOOST_ASSERT( size(ipiv) >= n );
+ BOOST_ASSERT( size(ipiv) >= size_column(ab) );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
- min_size_iwork( n ));
- BOOST_ASSERT( size(work.select(real_type())) >= min_size_work( n ));
+ min_size_iwork( size_column(ab) ));
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
+ size_column(ab) ));
+ BOOST_ASSERT( size_column(ab) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( stride_major(ab) >= 2 );
- return detail::gbcon( norm, n, bandwidth_lower(ab),
+ return detail::gbcon( norm, size_column(ab), bandwidth_lower(ab),
                 bandwidth_upper(ab), begin_value(ab), stride_major(ab),
                 begin_value(ipiv), anorm, rcond,
                 begin_value(work.select(real_type())),
@@ -165,13 +166,14 @@
     // * Enables the unblocked algorithm (BLAS level 2)
     //
     template< typename MatrixAB, typename VectorIPIV >
- static std::ptrdiff_t invoke( const char norm, const fortran_int_t n,
- const MatrixAB& ab, const VectorIPIV& ipiv, const real_type anorm,
- real_type& rcond, minimal_workspace work ) {
- bindings::detail::array< real_type > tmp_work( min_size_work( n ) );
+ static std::ptrdiff_t invoke( const char norm, const MatrixAB& ab,
+ const VectorIPIV& ipiv, const real_type anorm, real_type& rcond,
+ minimal_workspace work ) {
+ bindings::detail::array< real_type > tmp_work( min_size_work(
+ size_column(ab) ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
- min_size_iwork( n ) );
- return invoke( norm, n, ab, ipiv, anorm, rcond, workspace( tmp_work,
+ min_size_iwork( size_column(ab) ) );
+ return invoke( norm, ab, ipiv, anorm, rcond, workspace( tmp_work,
                 tmp_iwork ) );
     }
 
@@ -183,10 +185,10 @@
     // * Enables the blocked algorithm (BLAS level 3)
     //
     template< typename MatrixAB, typename VectorIPIV >
- static std::ptrdiff_t invoke( const char norm, const fortran_int_t n,
- const MatrixAB& ab, const VectorIPIV& ipiv, const real_type anorm,
- real_type& rcond, optimal_workspace work ) {
- return invoke( norm, n, ab, ipiv, anorm, rcond, minimal_workspace() );
+ static std::ptrdiff_t invoke( const char norm, const MatrixAB& ab,
+ const VectorIPIV& ipiv, const real_type anorm, real_type& rcond,
+ optimal_workspace work ) {
+ return invoke( norm, ab, ipiv, anorm, rcond, minimal_workspace() );
     }
 
     //
@@ -223,19 +225,21 @@
     //
     template< typename MatrixAB, typename VectorIPIV, typename WORK,
             typename RWORK >
- static std::ptrdiff_t invoke( const char norm, const fortran_int_t n,
- const MatrixAB& ab, const VectorIPIV& ipiv, const real_type anorm,
- real_type& rcond, detail::workspace2< WORK, RWORK > work ) {
+ static std::ptrdiff_t invoke( const char norm, const MatrixAB& ab,
+ const VectorIPIV& ipiv, const real_type anorm, real_type& rcond,
+ detail::workspace2< WORK, RWORK > work ) {
         BOOST_ASSERT( bandwidth_lower(ab) >= 0 );
         BOOST_ASSERT( bandwidth_upper(ab) >= 0 );
- BOOST_ASSERT( n >= 0 );
         BOOST_ASSERT( norm == '1' || norm == 'O' || norm == 'I' );
- BOOST_ASSERT( size(ipiv) >= n );
- BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork( n ));
- BOOST_ASSERT( size(work.select(value_type())) >= min_size_work( n ));
+ BOOST_ASSERT( size(ipiv) >= size_column(ab) );
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork(
+ size_column(ab) ));
+ BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
+ size_column(ab) ));
+ BOOST_ASSERT( size_column(ab) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( stride_major(ab) >= 2 );
- return detail::gbcon( norm, n, bandwidth_lower(ab),
+ return detail::gbcon( norm, size_column(ab), bandwidth_lower(ab),
                 bandwidth_upper(ab), begin_value(ab), stride_major(ab),
                 begin_value(ipiv), anorm, rcond,
                 begin_value(work.select(value_type())),
@@ -250,12 +254,14 @@
     // * Enables the unblocked algorithm (BLAS level 2)
     //
     template< typename MatrixAB, typename VectorIPIV >
- static std::ptrdiff_t invoke( const char norm, const fortran_int_t n,
- const MatrixAB& ab, const VectorIPIV& ipiv, const real_type anorm,
- real_type& rcond, minimal_workspace work ) {
- bindings::detail::array< value_type > tmp_work( min_size_work( n ) );
- bindings::detail::array< real_type > tmp_rwork( min_size_rwork( n ) );
- return invoke( norm, n, ab, ipiv, anorm, rcond, workspace( tmp_work,
+ static std::ptrdiff_t invoke( const char norm, const MatrixAB& ab,
+ const VectorIPIV& ipiv, const real_type anorm, real_type& rcond,
+ minimal_workspace work ) {
+ bindings::detail::array< value_type > tmp_work( min_size_work(
+ size_column(ab) ) );
+ bindings::detail::array< real_type > tmp_rwork( min_size_rwork(
+ size_column(ab) ) );
+ return invoke( norm, ab, ipiv, anorm, rcond, workspace( tmp_work,
                 tmp_rwork ) );
     }
 
@@ -267,10 +273,10 @@
     // * Enables the blocked algorithm (BLAS level 3)
     //
     template< typename MatrixAB, typename VectorIPIV >
- static std::ptrdiff_t invoke( const char norm, const fortran_int_t n,
- const MatrixAB& ab, const VectorIPIV& ipiv, const real_type anorm,
- real_type& rcond, optimal_workspace work ) {
- return invoke( norm, n, ab, ipiv, anorm, rcond, minimal_workspace() );
+ static std::ptrdiff_t invoke( const char norm, const MatrixAB& ab,
+ const VectorIPIV& ipiv, const real_type anorm, real_type& rcond,
+ optimal_workspace work ) {
+ return invoke( norm, ab, ipiv, anorm, rcond, minimal_workspace() );
     }
 
     //
@@ -305,13 +311,13 @@
 // * User-defined workspace
 //
 template< typename MatrixAB, typename VectorIPIV, typename Workspace >
-inline std::ptrdiff_t gbcon( const char norm, const fortran_int_t n,
- const MatrixAB& ab, const VectorIPIV& ipiv,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type anorm, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, Workspace work ) {
+inline std::ptrdiff_t gbcon( const char norm, const MatrixAB& ab,
+ const VectorIPIV& ipiv, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type anorm,
+ typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, Workspace work ) {
     return gbcon_impl< typename value< MatrixAB >::type >::invoke( norm,
- n, ab, ipiv, anorm, rcond, work );
+ ab, ipiv, anorm, rcond, work );
 }
 
 //
@@ -319,13 +325,13 @@
 // * Default workspace-type (optimal)
 //
 template< typename MatrixAB, typename VectorIPIV >
-inline std::ptrdiff_t gbcon( const char norm, const fortran_int_t n,
- const MatrixAB& ab, const VectorIPIV& ipiv,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type anorm, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond ) {
+inline std::ptrdiff_t gbcon( const char norm, const MatrixAB& ab,
+ const VectorIPIV& ipiv, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type anorm,
+ typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond ) {
     return gbcon_impl< typename value< MatrixAB >::type >::invoke( norm,
- n, ab, ipiv, anorm, rcond, optimal_workspace() );
+ ab, ipiv, anorm, rcond, optimal_workspace() );
 }
 
 } // namespace lapack

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbrfs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbrfs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbrfs.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -158,10 +158,10 @@
     template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
             typename MatrixB, typename MatrixX, typename VectorFERR,
             typename VectorBERR, typename WORK, typename IWORK >
- static std::ptrdiff_t invoke( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- const MatrixB& b, MatrixX& x, VectorFERR& ferr, VectorBERR& berr,
- detail::workspace2< WORK, IWORK > work ) {
+ static std::ptrdiff_t invoke( const MatrixAB& ab, const MatrixAFB& afb,
+ const VectorIPIV& ipiv, const MatrixB& b, MatrixX& x,
+ VectorFERR& ferr, VectorBERR& berr, detail::workspace2< WORK,
+ IWORK > work ) {
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< MatrixAB >::type >::type,
                 typename remove_const< typename value<
@@ -187,13 +187,14 @@
         BOOST_STATIC_ASSERT( (is_mutable< VectorBERR >::value) );
         BOOST_ASSERT( bandwidth_lower(ab) >= 0 );
         BOOST_ASSERT( bandwidth_upper(ab) >= 0 );
- BOOST_ASSERT( n >= 0 );
- BOOST_ASSERT( size(berr) >= size_column(x) );
- BOOST_ASSERT( size(ipiv) >= n );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
+ BOOST_ASSERT( size(ipiv) >= size_column(ab) );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
- min_size_iwork( n ));
- BOOST_ASSERT( size(work.select(real_type())) >= min_size_work( n ));
- BOOST_ASSERT( size_column(x) >= 0 );
+ min_size_iwork( size_column(ab) ));
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
+ size_column(ab) ));
+ BOOST_ASSERT( size_column(ab) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( size_minor(afb) == 1 || stride_minor(afb) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
@@ -201,10 +202,12 @@
         BOOST_ASSERT( stride_major(ab) >= bandwidth_lower(ab)+
                 bandwidth_upper(ab)+1 );
         BOOST_ASSERT( stride_major(afb) >= 2 );
- BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,n) );
- BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::gbrfs( trans(), n, bandwidth_lower(ab),
- bandwidth_upper(ab), size_column(x), begin_value(ab),
+ BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
+ size_column(ab)) );
+ BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,
+ size_column(ab)) );
+ return detail::gbrfs( trans(), size_column(ab), bandwidth_lower(ab),
+ bandwidth_upper(ab), size_column(b), begin_value(ab),
                 stride_major(ab), begin_value(afb), stride_major(afb),
                 begin_value(ipiv), begin_value(b), stride_major(b),
                 begin_value(x), stride_major(x), begin_value(ferr),
@@ -222,15 +225,15 @@
     template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
             typename MatrixB, typename MatrixX, typename VectorFERR,
             typename VectorBERR >
- static std::ptrdiff_t invoke( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- const MatrixB& b, MatrixX& x, VectorFERR& ferr, VectorBERR& berr,
- minimal_workspace work ) {
- bindings::detail::array< real_type > tmp_work( min_size_work( n ) );
+ static std::ptrdiff_t invoke( const MatrixAB& ab, const MatrixAFB& afb,
+ const VectorIPIV& ipiv, const MatrixB& b, MatrixX& x,
+ VectorFERR& ferr, VectorBERR& berr, minimal_workspace work ) {
+ bindings::detail::array< real_type > tmp_work( min_size_work(
+ size_column(ab) ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
- min_size_iwork( n ) );
- return invoke( n, ab, afb, ipiv, b, x, ferr, berr,
- workspace( tmp_work, tmp_iwork ) );
+ min_size_iwork( size_column(ab) ) );
+ return invoke( ab, afb, ipiv, b, x, ferr, berr, workspace( tmp_work,
+ tmp_iwork ) );
     }
 
     //
@@ -243,12 +246,10 @@
     template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
             typename MatrixB, typename MatrixX, typename VectorFERR,
             typename VectorBERR >
- static std::ptrdiff_t invoke( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- const MatrixB& b, MatrixX& x, VectorFERR& ferr, VectorBERR& berr,
- optimal_workspace work ) {
- return invoke( n, ab, afb, ipiv, b, x, ferr, berr,
- minimal_workspace() );
+ static std::ptrdiff_t invoke( const MatrixAB& ab, const MatrixAFB& afb,
+ const VectorIPIV& ipiv, const MatrixB& b, MatrixX& x,
+ VectorFERR& ferr, VectorBERR& berr, optimal_workspace work ) {
+ return invoke( ab, afb, ipiv, b, x, ferr, berr, minimal_workspace() );
     }
 
     //
@@ -286,10 +287,10 @@
     template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
             typename MatrixB, typename MatrixX, typename VectorFERR,
             typename VectorBERR, typename WORK, typename RWORK >
- static std::ptrdiff_t invoke( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- const MatrixB& b, MatrixX& x, VectorFERR& ferr, VectorBERR& berr,
- detail::workspace2< WORK, RWORK > work ) {
+ static std::ptrdiff_t invoke( const MatrixAB& ab, const MatrixAFB& afb,
+ const VectorIPIV& ipiv, const MatrixB& b, MatrixX& x,
+ VectorFERR& ferr, VectorBERR& berr, detail::workspace2< WORK,
+ RWORK > work ) {
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< VectorFERR >::type >::type,
                 typename remove_const< typename value<
@@ -311,12 +312,14 @@
         BOOST_STATIC_ASSERT( (is_mutable< VectorBERR >::value) );
         BOOST_ASSERT( bandwidth_lower(ab) >= 0 );
         BOOST_ASSERT( bandwidth_upper(ab) >= 0 );
- BOOST_ASSERT( n >= 0 );
- BOOST_ASSERT( size(berr) >= size_column(x) );
- BOOST_ASSERT( size(ipiv) >= n );
- BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork( n ));
- BOOST_ASSERT( size(work.select(value_type())) >= min_size_work( n ));
- BOOST_ASSERT( size_column(x) >= 0 );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
+ BOOST_ASSERT( size(ipiv) >= size_column(ab) );
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork(
+ size_column(ab) ));
+ BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
+ size_column(ab) ));
+ BOOST_ASSERT( size_column(ab) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( size_minor(afb) == 1 || stride_minor(afb) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
@@ -324,10 +327,12 @@
         BOOST_ASSERT( stride_major(ab) >= bandwidth_lower(ab)+
                 bandwidth_upper(ab)+1 );
         BOOST_ASSERT( stride_major(afb) >= 2 );
- BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,n) );
- BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::gbrfs( trans(), n, bandwidth_lower(ab),
- bandwidth_upper(ab), size_column(x), begin_value(ab),
+ BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
+ size_column(ab)) );
+ BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,
+ size_column(ab)) );
+ return detail::gbrfs( trans(), size_column(ab), bandwidth_lower(ab),
+ bandwidth_upper(ab), size_column(b), begin_value(ab),
                 stride_major(ab), begin_value(afb), stride_major(afb),
                 begin_value(ipiv), begin_value(b), stride_major(b),
                 begin_value(x), stride_major(x), begin_value(ferr),
@@ -345,14 +350,15 @@
     template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
             typename MatrixB, typename MatrixX, typename VectorFERR,
             typename VectorBERR >
- static std::ptrdiff_t invoke( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- const MatrixB& b, MatrixX& x, VectorFERR& ferr, VectorBERR& berr,
- minimal_workspace work ) {
- bindings::detail::array< value_type > tmp_work( min_size_work( n ) );
- bindings::detail::array< real_type > tmp_rwork( min_size_rwork( n ) );
- return invoke( n, ab, afb, ipiv, b, x, ferr, berr,
- workspace( tmp_work, tmp_rwork ) );
+ static std::ptrdiff_t invoke( const MatrixAB& ab, const MatrixAFB& afb,
+ const VectorIPIV& ipiv, const MatrixB& b, MatrixX& x,
+ VectorFERR& ferr, VectorBERR& berr, minimal_workspace work ) {
+ bindings::detail::array< value_type > tmp_work( min_size_work(
+ size_column(ab) ) );
+ bindings::detail::array< real_type > tmp_rwork( min_size_rwork(
+ size_column(ab) ) );
+ return invoke( ab, afb, ipiv, b, x, ferr, berr, workspace( tmp_work,
+ tmp_rwork ) );
     }
 
     //
@@ -365,12 +371,10 @@
     template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
             typename MatrixB, typename MatrixX, typename VectorFERR,
             typename VectorBERR >
- static std::ptrdiff_t invoke( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- const MatrixB& b, MatrixX& x, VectorFERR& ferr, VectorBERR& berr,
- optimal_workspace work ) {
- return invoke( n, ab, afb, ipiv, b, x, ferr, berr,
- minimal_workspace() );
+ static std::ptrdiff_t invoke( const MatrixAB& ab, const MatrixAFB& afb,
+ const VectorIPIV& ipiv, const MatrixB& b, MatrixX& x,
+ VectorFERR& ferr, VectorBERR& berr, optimal_workspace work ) {
+ return invoke( ab, afb, ipiv, b, x, ferr, berr, minimal_workspace() );
     }
 
     //
@@ -410,11 +414,10 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t gbrfs( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- const MatrixB& b, MatrixX& x, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
- return gbrfs_impl< typename value< MatrixAB >::type >::invoke( n, ab,
+inline std::ptrdiff_t gbrfs( const MatrixAB& ab, const MatrixAFB& afb,
+ const VectorIPIV& ipiv, const MatrixB& b, MatrixX& x,
+ VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
+ return gbrfs_impl< typename value< MatrixAB >::type >::invoke( ab,
             afb, ipiv, b, x, ferr, berr, work );
 }
 
@@ -428,10 +431,10 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t gbrfs( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- const MatrixB& b, MatrixX& x, VectorFERR& ferr, VectorBERR& berr ) {
- return gbrfs_impl< typename value< MatrixAB >::type >::invoke( n, ab,
+inline std::ptrdiff_t gbrfs( const MatrixAB& ab, const MatrixAFB& afb,
+ const VectorIPIV& ipiv, const MatrixB& b, MatrixX& x,
+ VectorFERR& ferr, VectorBERR& berr ) {
+ return gbrfs_impl< typename value< MatrixAB >::type >::invoke( ab,
             afb, ipiv, b, x, ferr, berr, optimal_workspace() );
 }
 
@@ -445,11 +448,10 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t gbrfs( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- const MatrixB& b, const MatrixX& x, VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
- return gbrfs_impl< typename value< MatrixAB >::type >::invoke( n, ab,
+inline std::ptrdiff_t gbrfs( const MatrixAB& ab, const MatrixAFB& afb,
+ const VectorIPIV& ipiv, const MatrixB& b, const MatrixX& x,
+ VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
+ return gbrfs_impl< typename value< MatrixAB >::type >::invoke( ab,
             afb, ipiv, b, x, ferr, berr, work );
 }
 
@@ -463,11 +465,10 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t gbrfs( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- const MatrixB& b, const MatrixX& x, VectorFERR& ferr,
- VectorBERR& berr ) {
- return gbrfs_impl< typename value< MatrixAB >::type >::invoke( n, ab,
+inline std::ptrdiff_t gbrfs( const MatrixAB& ab, const MatrixAFB& afb,
+ const VectorIPIV& ipiv, const MatrixB& b, const MatrixX& x,
+ VectorFERR& ferr, VectorBERR& berr ) {
+ return gbrfs_impl< typename value< MatrixAB >::type >::invoke( ab,
             afb, ipiv, b, x, ferr, berr, optimal_workspace() );
 }
 
@@ -481,11 +482,10 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t gbrfs( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- const MatrixB& b, MatrixX& x, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
- return gbrfs_impl< typename value< MatrixAB >::type >::invoke( n, ab,
+inline std::ptrdiff_t gbrfs( const MatrixAB& ab, const MatrixAFB& afb,
+ const VectorIPIV& ipiv, const MatrixB& b, MatrixX& x,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
+ return gbrfs_impl< typename value< MatrixAB >::type >::invoke( ab,
             afb, ipiv, b, x, ferr, berr, work );
 }
 
@@ -499,11 +499,10 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t gbrfs( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- const MatrixB& b, MatrixX& x, const VectorFERR& ferr,
- VectorBERR& berr ) {
- return gbrfs_impl< typename value< MatrixAB >::type >::invoke( n, ab,
+inline std::ptrdiff_t gbrfs( const MatrixAB& ab, const MatrixAFB& afb,
+ const VectorIPIV& ipiv, const MatrixB& b, MatrixX& x,
+ const VectorFERR& ferr, VectorBERR& berr ) {
+ return gbrfs_impl< typename value< MatrixAB >::type >::invoke( ab,
             afb, ipiv, b, x, ferr, berr, optimal_workspace() );
 }
 
@@ -517,11 +516,10 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t gbrfs( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- const MatrixB& b, const MatrixX& x, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
- return gbrfs_impl< typename value< MatrixAB >::type >::invoke( n, ab,
+inline std::ptrdiff_t gbrfs( const MatrixAB& ab, const MatrixAFB& afb,
+ const VectorIPIV& ipiv, const MatrixB& b, const MatrixX& x,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
+ return gbrfs_impl< typename value< MatrixAB >::type >::invoke( ab,
             afb, ipiv, b, x, ferr, berr, work );
 }
 
@@ -535,11 +533,10 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t gbrfs( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- const MatrixB& b, const MatrixX& x, const VectorFERR& ferr,
- VectorBERR& berr ) {
- return gbrfs_impl< typename value< MatrixAB >::type >::invoke( n, ab,
+inline std::ptrdiff_t gbrfs( const MatrixAB& ab, const MatrixAFB& afb,
+ const VectorIPIV& ipiv, const MatrixB& b, const MatrixX& x,
+ const VectorFERR& ferr, VectorBERR& berr ) {
+ return gbrfs_impl< typename value< MatrixAB >::type >::invoke( ab,
             afb, ipiv, b, x, ferr, berr, optimal_workspace() );
 }
 
@@ -553,11 +550,10 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t gbrfs( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- const MatrixB& b, MatrixX& x, VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
- return gbrfs_impl< typename value< MatrixAB >::type >::invoke( n, ab,
+inline std::ptrdiff_t gbrfs( const MatrixAB& ab, const MatrixAFB& afb,
+ const VectorIPIV& ipiv, const MatrixB& b, MatrixX& x,
+ VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
+ return gbrfs_impl< typename value< MatrixAB >::type >::invoke( ab,
             afb, ipiv, b, x, ferr, berr, work );
 }
 
@@ -571,11 +567,10 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t gbrfs( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- const MatrixB& b, MatrixX& x, VectorFERR& ferr,
- const VectorBERR& berr ) {
- return gbrfs_impl< typename value< MatrixAB >::type >::invoke( n, ab,
+inline std::ptrdiff_t gbrfs( const MatrixAB& ab, const MatrixAFB& afb,
+ const VectorIPIV& ipiv, const MatrixB& b, MatrixX& x,
+ VectorFERR& ferr, const VectorBERR& berr ) {
+ return gbrfs_impl< typename value< MatrixAB >::type >::invoke( ab,
             afb, ipiv, b, x, ferr, berr, optimal_workspace() );
 }
 
@@ -589,11 +584,10 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t gbrfs( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- const MatrixB& b, const MatrixX& x, VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
- return gbrfs_impl< typename value< MatrixAB >::type >::invoke( n, ab,
+inline std::ptrdiff_t gbrfs( const MatrixAB& ab, const MatrixAFB& afb,
+ const VectorIPIV& ipiv, const MatrixB& b, const MatrixX& x,
+ VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
+ return gbrfs_impl< typename value< MatrixAB >::type >::invoke( ab,
             afb, ipiv, b, x, ferr, berr, work );
 }
 
@@ -607,11 +601,10 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t gbrfs( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- const MatrixB& b, const MatrixX& x, VectorFERR& ferr,
- const VectorBERR& berr ) {
- return gbrfs_impl< typename value< MatrixAB >::type >::invoke( n, ab,
+inline std::ptrdiff_t gbrfs( const MatrixAB& ab, const MatrixAFB& afb,
+ const VectorIPIV& ipiv, const MatrixB& b, const MatrixX& x,
+ VectorFERR& ferr, const VectorBERR& berr ) {
+ return gbrfs_impl< typename value< MatrixAB >::type >::invoke( ab,
             afb, ipiv, b, x, ferr, berr, optimal_workspace() );
 }
 
@@ -625,11 +618,10 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t gbrfs( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- const MatrixB& b, MatrixX& x, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
- return gbrfs_impl< typename value< MatrixAB >::type >::invoke( n, ab,
+inline std::ptrdiff_t gbrfs( const MatrixAB& ab, const MatrixAFB& afb,
+ const VectorIPIV& ipiv, const MatrixB& b, MatrixX& x,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
+ return gbrfs_impl< typename value< MatrixAB >::type >::invoke( ab,
             afb, ipiv, b, x, ferr, berr, work );
 }
 
@@ -643,11 +635,10 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t gbrfs( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- const MatrixB& b, MatrixX& x, const VectorFERR& ferr,
- const VectorBERR& berr ) {
- return gbrfs_impl< typename value< MatrixAB >::type >::invoke( n, ab,
+inline std::ptrdiff_t gbrfs( const MatrixAB& ab, const MatrixAFB& afb,
+ const VectorIPIV& ipiv, const MatrixB& b, MatrixX& x,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
+ return gbrfs_impl< typename value< MatrixAB >::type >::invoke( ab,
             afb, ipiv, b, x, ferr, berr, optimal_workspace() );
 }
 
@@ -661,11 +652,10 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t gbrfs( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- const MatrixB& b, const MatrixX& x, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
- return gbrfs_impl< typename value< MatrixAB >::type >::invoke( n, ab,
+inline std::ptrdiff_t gbrfs( const MatrixAB& ab, const MatrixAFB& afb,
+ const VectorIPIV& ipiv, const MatrixB& b, const MatrixX& x,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
+ return gbrfs_impl< typename value< MatrixAB >::type >::invoke( ab,
             afb, ipiv, b, x, ferr, berr, work );
 }
 
@@ -679,11 +669,10 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t gbrfs( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- const MatrixB& b, const MatrixX& x, const VectorFERR& ferr,
- const VectorBERR& berr ) {
- return gbrfs_impl< typename value< MatrixAB >::type >::invoke( n, ab,
+inline std::ptrdiff_t gbrfs( const MatrixAB& ab, const MatrixAFB& afb,
+ const VectorIPIV& ipiv, const MatrixB& b, const MatrixX& x,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
+ return gbrfs_impl< typename value< MatrixAB >::type >::invoke( ab,
             afb, ipiv, b, x, ferr, berr, optimal_workspace() );
 }
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbtrs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbtrs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbtrs.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -129,8 +129,8 @@
     // * Asserts that most arguments make sense.
     //
     template< typename MatrixAB, typename VectorIPIV, typename MatrixB >
- static std::ptrdiff_t invoke( const fortran_int_t n,
- const MatrixAB& ab, const VectorIPIV& ipiv, MatrixB& b ) {
+ static std::ptrdiff_t invoke( const MatrixAB& ab, const VectorIPIV& ipiv,
+ MatrixB& b ) {
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< MatrixAB >::type >::type,
                 typename remove_const< typename value<
@@ -138,14 +138,15 @@
         BOOST_STATIC_ASSERT( (is_mutable< MatrixB >::value) );
         BOOST_ASSERT( bandwidth_lower(ab) >= 0 );
         BOOST_ASSERT( bandwidth_upper(ab) >= 0 );
- BOOST_ASSERT( n >= 0 );
- BOOST_ASSERT( size(ipiv) >= n );
+ BOOST_ASSERT( size(ipiv) >= size_column(ab) );
+ BOOST_ASSERT( size_column(ab) >= 0 );
         BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( stride_major(ab) >= 2 );
- BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::gbtrs( trans(), n, bandwidth_lower(ab),
+ BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
+ size_column(ab)) );
+ return detail::gbtrs( trans(), size_column(ab), bandwidth_lower(ab),
                 bandwidth_upper(ab), size_column(b), begin_value(ab),
                 stride_major(ab), begin_value(ipiv), begin_value(b),
                 stride_major(b) );
@@ -168,9 +169,9 @@
 // * MatrixB&
 //
 template< typename MatrixAB, typename VectorIPIV, typename MatrixB >
-inline std::ptrdiff_t gbtrs( const fortran_int_t n,
- const MatrixAB& ab, const VectorIPIV& ipiv, MatrixB& b ) {
- return gbtrs_impl< typename value< MatrixAB >::type >::invoke( n, ab,
+inline std::ptrdiff_t gbtrs( const MatrixAB& ab, const VectorIPIV& ipiv,
+ MatrixB& b ) {
+ return gbtrs_impl< typename value< MatrixAB >::type >::invoke( ab,
             ipiv, b );
 }
 
@@ -179,9 +180,9 @@
 // * const MatrixB&
 //
 template< typename MatrixAB, typename VectorIPIV, typename MatrixB >
-inline std::ptrdiff_t gbtrs( const fortran_int_t n,
- const MatrixAB& ab, const VectorIPIV& ipiv, const MatrixB& b ) {
- return gbtrs_impl< typename value< MatrixAB >::type >::invoke( n, ab,
+inline std::ptrdiff_t gbtrs( const MatrixAB& ab, const VectorIPIV& ipiv,
+ const MatrixB& b ) {
+ return gbtrs_impl< typename value< MatrixAB >::type >::invoke( ab,
             ipiv, b );
 }
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gerfs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gerfs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gerfs.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -177,13 +177,13 @@
         BOOST_STATIC_ASSERT( (is_mutable< MatrixX >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorFERR >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorBERR >::value) );
- BOOST_ASSERT( size(berr) >= size_column(x) );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
         BOOST_ASSERT( size(ipiv) >= size_column_op(a, trans()) );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
                 min_size_iwork( size_column_op(a, trans()) ));
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
                 size_column_op(a, trans()) ));
- BOOST_ASSERT( size_column(x) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_column_op(a, trans()) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(af) == 1 || stride_minor(af) == 1 );
@@ -198,7 +198,7 @@
         BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,
                 size_column_op(a, trans())) );
         return detail::gerfs( trans(), size_column_op(a, trans()),
- size_column(x), begin_value(a), stride_major(a),
+ size_column(b), begin_value(a), stride_major(a),
                 begin_value(af), stride_major(af), begin_value(ipiv),
                 begin_value(b), stride_major(b), begin_value(x),
                 stride_major(x), begin_value(ferr), begin_value(berr),
@@ -304,13 +304,13 @@
         BOOST_STATIC_ASSERT( (is_mutable< MatrixX >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorFERR >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorBERR >::value) );
- BOOST_ASSERT( size(berr) >= size_column(x) );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
         BOOST_ASSERT( size(ipiv) >= size_column_op(a, trans()) );
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork(
                 size_column_op(a, trans()) ));
         BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
                 size_column_op(a, trans()) ));
- BOOST_ASSERT( size_column(x) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_column_op(a, trans()) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(af) == 1 || stride_minor(af) == 1 );
@@ -325,7 +325,7 @@
         BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,
                 size_column_op(a, trans())) );
         return detail::gerfs( trans(), size_column_op(a, trans()),
- size_column(x), begin_value(a), stride_major(a),
+ size_column(b), begin_value(a), stride_major(a),
                 begin_value(af), stride_major(af), begin_value(ipiv),
                 begin_value(b), stride_major(b), begin_value(x),
                 stride_major(x), begin_value(ferr), begin_value(berr),

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggbal.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggbal.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggbal.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -133,10 +133,10 @@
     //
     template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
             typename VectorRSCALE, typename WORK >
- static std::ptrdiff_t invoke( const char job, const fortran_int_t n,
- MatrixA& a, MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, VectorLSCALE& lscale,
- VectorRSCALE& rscale, detail::workspace1< WORK > work ) {
+ static std::ptrdiff_t invoke( const char job, MatrixA& a, MatrixB& b,
+ fortran_int_t& ilo, fortran_int_t& ihi,
+ VectorLSCALE& lscale, VectorRSCALE& rscale, detail::workspace1<
+ WORK > work ) {
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< MatrixA >::type >::type,
                 typename remove_const< typename value<
@@ -154,15 +154,17 @@
         BOOST_STATIC_ASSERT( (is_mutable< VectorLSCALE >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorRSCALE >::value) );
         BOOST_ASSERT( job == 'N' || job == 'P' || job == 'S' || job == 'B' );
- BOOST_ASSERT( n >= 0 );
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
                 $CALL_MIN_SIZE ));
+ BOOST_ASSERT( size_column(a) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
- BOOST_ASSERT( stride_major(a) >= std::max< std::ptrdiff_t >(1,n) );
- BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::ggbal( job, n, begin_value(a), stride_major(a),
- begin_value(b), stride_major(b), ilo, ihi,
+ BOOST_ASSERT( stride_major(a) >= std::max< std::ptrdiff_t >(1,
+ size_column(a)) );
+ BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
+ size_column(a)) );
+ return detail::ggbal( job, size_column(a), begin_value(a),
+ stride_major(a), begin_value(b), stride_major(b), ilo, ihi,
                 begin_value(lscale), begin_value(rscale),
                 begin_value(work.select(real_type())) );
     }
@@ -176,13 +178,13 @@
     //
     template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
             typename VectorRSCALE >
- static std::ptrdiff_t invoke( const char job, const fortran_int_t n,
- MatrixA& a, MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, VectorLSCALE& lscale,
- VectorRSCALE& rscale, minimal_workspace work ) {
+ static std::ptrdiff_t invoke( const char job, MatrixA& a, MatrixB& b,
+ fortran_int_t& ilo, fortran_int_t& ihi,
+ VectorLSCALE& lscale, VectorRSCALE& rscale,
+ minimal_workspace work ) {
         bindings::detail::array< real_type > tmp_work( min_size_work(
                 $CALL_MIN_SIZE ) );
- return invoke( job, n, a, b, ilo, ihi, lscale, rscale,
+ return invoke( job, a, b, ilo, ihi, lscale, rscale,
                 workspace( tmp_work ) );
     }
 
@@ -195,11 +197,11 @@
     //
     template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
             typename VectorRSCALE >
- static std::ptrdiff_t invoke( const char job, const fortran_int_t n,
- MatrixA& a, MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, VectorLSCALE& lscale,
- VectorRSCALE& rscale, optimal_workspace work ) {
- return invoke( job, n, a, b, ilo, ihi, lscale, rscale,
+ static std::ptrdiff_t invoke( const char job, MatrixA& a, MatrixB& b,
+ fortran_int_t& ilo, fortran_int_t& ihi,
+ VectorLSCALE& lscale, VectorRSCALE& rscale,
+ optimal_workspace work ) {
+ return invoke( job, a, b, ilo, ihi, lscale, rscale,
                 minimal_workspace() );
     }
 
@@ -229,10 +231,10 @@
     //
     template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
             typename VectorRSCALE, typename WORK >
- static std::ptrdiff_t invoke( const char job, const fortran_int_t n,
- MatrixA& a, MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, VectorLSCALE& lscale,
- VectorRSCALE& rscale, detail::workspace1< WORK > work ) {
+ static std::ptrdiff_t invoke( const char job, MatrixA& a, MatrixB& b,
+ fortran_int_t& ilo, fortran_int_t& ihi,
+ VectorLSCALE& lscale, VectorRSCALE& rscale, detail::workspace1<
+ WORK > work ) {
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< VectorLSCALE >::type >::type,
                 typename remove_const< typename value<
@@ -246,15 +248,17 @@
         BOOST_STATIC_ASSERT( (is_mutable< VectorLSCALE >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorRSCALE >::value) );
         BOOST_ASSERT( job == 'N' || job == 'P' || job == 'S' || job == 'B' );
- BOOST_ASSERT( n >= 0 );
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
                 $CALL_MIN_SIZE ));
+ BOOST_ASSERT( size_column(a) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
- BOOST_ASSERT( stride_major(a) >= std::max< std::ptrdiff_t >(1,n) );
- BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::ggbal( job, n, begin_value(a), stride_major(a),
- begin_value(b), stride_major(b), ilo, ihi,
+ BOOST_ASSERT( stride_major(a) >= std::max< std::ptrdiff_t >(1,
+ size_column(a)) );
+ BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
+ size_column(a)) );
+ return detail::ggbal( job, size_column(a), begin_value(a),
+ stride_major(a), begin_value(b), stride_major(b), ilo, ihi,
                 begin_value(lscale), begin_value(rscale),
                 begin_value(work.select(real_type())) );
     }
@@ -268,13 +272,13 @@
     //
     template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
             typename VectorRSCALE >
- static std::ptrdiff_t invoke( const char job, const fortran_int_t n,
- MatrixA& a, MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, VectorLSCALE& lscale,
- VectorRSCALE& rscale, minimal_workspace work ) {
+ static std::ptrdiff_t invoke( const char job, MatrixA& a, MatrixB& b,
+ fortran_int_t& ilo, fortran_int_t& ihi,
+ VectorLSCALE& lscale, VectorRSCALE& rscale,
+ minimal_workspace work ) {
         bindings::detail::array< real_type > tmp_work( min_size_work(
                 $CALL_MIN_SIZE ) );
- return invoke( job, n, a, b, ilo, ihi, lscale, rscale,
+ return invoke( job, a, b, ilo, ihi, lscale, rscale,
                 workspace( tmp_work ) );
     }
 
@@ -287,11 +291,11 @@
     //
     template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
             typename VectorRSCALE >
- static std::ptrdiff_t invoke( const char job, const fortran_int_t n,
- MatrixA& a, MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, VectorLSCALE& lscale,
- VectorRSCALE& rscale, optimal_workspace work ) {
- return invoke( job, n, a, b, ilo, ihi, lscale, rscale,
+ static std::ptrdiff_t invoke( const char job, MatrixA& a, MatrixB& b,
+ fortran_int_t& ilo, fortran_int_t& ihi,
+ VectorLSCALE& lscale, VectorRSCALE& rscale,
+ optimal_workspace work ) {
+ return invoke( job, a, b, ilo, ihi, lscale, rscale,
                 minimal_workspace() );
     }
 
@@ -324,12 +328,11 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
         typename VectorRSCALE, typename Workspace >
-inline std::ptrdiff_t ggbal( const char job, const fortran_int_t n,
- MatrixA& a, MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, VectorLSCALE& lscale, VectorRSCALE& rscale,
- Workspace work ) {
- return ggbal_impl< typename value< MatrixA >::type >::invoke( job, n,
- a, b, ilo, ihi, lscale, rscale, work );
+inline std::ptrdiff_t ggbal( const char job, MatrixA& a, MatrixB& b,
+ fortran_int_t& ilo, fortran_int_t& ihi, VectorLSCALE& lscale,
+ VectorRSCALE& rscale, Workspace work ) {
+ return ggbal_impl< typename value< MatrixA >::type >::invoke( job, a,
+ b, ilo, ihi, lscale, rscale, work );
 }
 
 //
@@ -342,11 +345,11 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
         typename VectorRSCALE >
-inline std::ptrdiff_t ggbal( const char job, const fortran_int_t n,
- MatrixA& a, MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, VectorLSCALE& lscale, VectorRSCALE& rscale ) {
- return ggbal_impl< typename value< MatrixA >::type >::invoke( job, n,
- a, b, ilo, ihi, lscale, rscale, optimal_workspace() );
+inline std::ptrdiff_t ggbal( const char job, MatrixA& a, MatrixB& b,
+ fortran_int_t& ilo, fortran_int_t& ihi, VectorLSCALE& lscale,
+ VectorRSCALE& rscale ) {
+ return ggbal_impl< typename value< MatrixA >::type >::invoke( job, a,
+ b, ilo, ihi, lscale, rscale, optimal_workspace() );
 }
 
 //
@@ -359,12 +362,11 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
         typename VectorRSCALE, typename Workspace >
-inline std::ptrdiff_t ggbal( const char job, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, VectorLSCALE& lscale, VectorRSCALE& rscale,
- Workspace work ) {
- return ggbal_impl< typename value< MatrixA >::type >::invoke( job, n,
- a, b, ilo, ihi, lscale, rscale, work );
+inline std::ptrdiff_t ggbal( const char job, const MatrixA& a, MatrixB& b,
+ fortran_int_t& ilo, fortran_int_t& ihi, VectorLSCALE& lscale,
+ VectorRSCALE& rscale, Workspace work ) {
+ return ggbal_impl< typename value< MatrixA >::type >::invoke( job, a,
+ b, ilo, ihi, lscale, rscale, work );
 }
 
 //
@@ -377,11 +379,11 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
         typename VectorRSCALE >
-inline std::ptrdiff_t ggbal( const char job, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, VectorLSCALE& lscale, VectorRSCALE& rscale ) {
- return ggbal_impl< typename value< MatrixA >::type >::invoke( job, n,
- a, b, ilo, ihi, lscale, rscale, optimal_workspace() );
+inline std::ptrdiff_t ggbal( const char job, const MatrixA& a, MatrixB& b,
+ fortran_int_t& ilo, fortran_int_t& ihi, VectorLSCALE& lscale,
+ VectorRSCALE& rscale ) {
+ return ggbal_impl< typename value< MatrixA >::type >::invoke( job, a,
+ b, ilo, ihi, lscale, rscale, optimal_workspace() );
 }
 
 //
@@ -394,12 +396,11 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
         typename VectorRSCALE, typename Workspace >
-inline std::ptrdiff_t ggbal( const char job, const fortran_int_t n,
- MatrixA& a, const MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, VectorLSCALE& lscale, VectorRSCALE& rscale,
- Workspace work ) {
- return ggbal_impl< typename value< MatrixA >::type >::invoke( job, n,
- a, b, ilo, ihi, lscale, rscale, work );
+inline std::ptrdiff_t ggbal( const char job, MatrixA& a, const MatrixB& b,
+ fortran_int_t& ilo, fortran_int_t& ihi, VectorLSCALE& lscale,
+ VectorRSCALE& rscale, Workspace work ) {
+ return ggbal_impl< typename value< MatrixA >::type >::invoke( job, a,
+ b, ilo, ihi, lscale, rscale, work );
 }
 
 //
@@ -412,11 +413,11 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
         typename VectorRSCALE >
-inline std::ptrdiff_t ggbal( const char job, const fortran_int_t n,
- MatrixA& a, const MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, VectorLSCALE& lscale, VectorRSCALE& rscale ) {
- return ggbal_impl< typename value< MatrixA >::type >::invoke( job, n,
- a, b, ilo, ihi, lscale, rscale, optimal_workspace() );
+inline std::ptrdiff_t ggbal( const char job, MatrixA& a, const MatrixB& b,
+ fortran_int_t& ilo, fortran_int_t& ihi, VectorLSCALE& lscale,
+ VectorRSCALE& rscale ) {
+ return ggbal_impl< typename value< MatrixA >::type >::invoke( job, a,
+ b, ilo, ihi, lscale, rscale, optimal_workspace() );
 }
 
 //
@@ -429,12 +430,11 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
         typename VectorRSCALE, typename Workspace >
-inline std::ptrdiff_t ggbal( const char job, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, VectorLSCALE& lscale, VectorRSCALE& rscale,
- Workspace work ) {
- return ggbal_impl< typename value< MatrixA >::type >::invoke( job, n,
- a, b, ilo, ihi, lscale, rscale, work );
+inline std::ptrdiff_t ggbal( const char job, const MatrixA& a,
+ const MatrixB& b, fortran_int_t& ilo, fortran_int_t& ihi,
+ VectorLSCALE& lscale, VectorRSCALE& rscale, Workspace work ) {
+ return ggbal_impl< typename value< MatrixA >::type >::invoke( job, a,
+ b, ilo, ihi, lscale, rscale, work );
 }
 
 //
@@ -447,11 +447,11 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
         typename VectorRSCALE >
-inline std::ptrdiff_t ggbal( const char job, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, VectorLSCALE& lscale, VectorRSCALE& rscale ) {
- return ggbal_impl< typename value< MatrixA >::type >::invoke( job, n,
- a, b, ilo, ihi, lscale, rscale, optimal_workspace() );
+inline std::ptrdiff_t ggbal( const char job, const MatrixA& a,
+ const MatrixB& b, fortran_int_t& ilo, fortran_int_t& ihi,
+ VectorLSCALE& lscale, VectorRSCALE& rscale ) {
+ return ggbal_impl< typename value< MatrixA >::type >::invoke( job, a,
+ b, ilo, ihi, lscale, rscale, optimal_workspace() );
 }
 
 //
@@ -464,12 +464,11 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
         typename VectorRSCALE, typename Workspace >
-inline std::ptrdiff_t ggbal( const char job, const fortran_int_t n,
- MatrixA& a, MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, const VectorLSCALE& lscale,
- VectorRSCALE& rscale, Workspace work ) {
- return ggbal_impl< typename value< MatrixA >::type >::invoke( job, n,
- a, b, ilo, ihi, lscale, rscale, work );
+inline std::ptrdiff_t ggbal( const char job, MatrixA& a, MatrixB& b,
+ fortran_int_t& ilo, fortran_int_t& ihi,
+ const VectorLSCALE& lscale, VectorRSCALE& rscale, Workspace work ) {
+ return ggbal_impl< typename value< MatrixA >::type >::invoke( job, a,
+ b, ilo, ihi, lscale, rscale, work );
 }
 
 //
@@ -482,12 +481,11 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
         typename VectorRSCALE >
-inline std::ptrdiff_t ggbal( const char job, const fortran_int_t n,
- MatrixA& a, MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, const VectorLSCALE& lscale,
- VectorRSCALE& rscale ) {
- return ggbal_impl< typename value< MatrixA >::type >::invoke( job, n,
- a, b, ilo, ihi, lscale, rscale, optimal_workspace() );
+inline std::ptrdiff_t ggbal( const char job, MatrixA& a, MatrixB& b,
+ fortran_int_t& ilo, fortran_int_t& ihi,
+ const VectorLSCALE& lscale, VectorRSCALE& rscale ) {
+ return ggbal_impl< typename value< MatrixA >::type >::invoke( job, a,
+ b, ilo, ihi, lscale, rscale, optimal_workspace() );
 }
 
 //
@@ -500,12 +498,11 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
         typename VectorRSCALE, typename Workspace >
-inline std::ptrdiff_t ggbal( const char job, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, const VectorLSCALE& lscale,
- VectorRSCALE& rscale, Workspace work ) {
- return ggbal_impl< typename value< MatrixA >::type >::invoke( job, n,
- a, b, ilo, ihi, lscale, rscale, work );
+inline std::ptrdiff_t ggbal( const char job, const MatrixA& a, MatrixB& b,
+ fortran_int_t& ilo, fortran_int_t& ihi,
+ const VectorLSCALE& lscale, VectorRSCALE& rscale, Workspace work ) {
+ return ggbal_impl< typename value< MatrixA >::type >::invoke( job, a,
+ b, ilo, ihi, lscale, rscale, work );
 }
 
 //
@@ -518,12 +515,11 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
         typename VectorRSCALE >
-inline std::ptrdiff_t ggbal( const char job, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, const VectorLSCALE& lscale,
- VectorRSCALE& rscale ) {
- return ggbal_impl< typename value< MatrixA >::type >::invoke( job, n,
- a, b, ilo, ihi, lscale, rscale, optimal_workspace() );
+inline std::ptrdiff_t ggbal( const char job, const MatrixA& a, MatrixB& b,
+ fortran_int_t& ilo, fortran_int_t& ihi,
+ const VectorLSCALE& lscale, VectorRSCALE& rscale ) {
+ return ggbal_impl< typename value< MatrixA >::type >::invoke( job, a,
+ b, ilo, ihi, lscale, rscale, optimal_workspace() );
 }
 
 //
@@ -536,12 +532,11 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
         typename VectorRSCALE, typename Workspace >
-inline std::ptrdiff_t ggbal( const char job, const fortran_int_t n,
- MatrixA& a, const MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, const VectorLSCALE& lscale,
- VectorRSCALE& rscale, Workspace work ) {
- return ggbal_impl< typename value< MatrixA >::type >::invoke( job, n,
- a, b, ilo, ihi, lscale, rscale, work );
+inline std::ptrdiff_t ggbal( const char job, MatrixA& a, const MatrixB& b,
+ fortran_int_t& ilo, fortran_int_t& ihi,
+ const VectorLSCALE& lscale, VectorRSCALE& rscale, Workspace work ) {
+ return ggbal_impl< typename value< MatrixA >::type >::invoke( job, a,
+ b, ilo, ihi, lscale, rscale, work );
 }
 
 //
@@ -554,12 +549,11 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
         typename VectorRSCALE >
-inline std::ptrdiff_t ggbal( const char job, const fortran_int_t n,
- MatrixA& a, const MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, const VectorLSCALE& lscale,
- VectorRSCALE& rscale ) {
- return ggbal_impl< typename value< MatrixA >::type >::invoke( job, n,
- a, b, ilo, ihi, lscale, rscale, optimal_workspace() );
+inline std::ptrdiff_t ggbal( const char job, MatrixA& a, const MatrixB& b,
+ fortran_int_t& ilo, fortran_int_t& ihi,
+ const VectorLSCALE& lscale, VectorRSCALE& rscale ) {
+ return ggbal_impl< typename value< MatrixA >::type >::invoke( job, a,
+ b, ilo, ihi, lscale, rscale, optimal_workspace() );
 }
 
 //
@@ -572,12 +566,11 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
         typename VectorRSCALE, typename Workspace >
-inline std::ptrdiff_t ggbal( const char job, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, const VectorLSCALE& lscale,
- VectorRSCALE& rscale, Workspace work ) {
- return ggbal_impl< typename value< MatrixA >::type >::invoke( job, n,
- a, b, ilo, ihi, lscale, rscale, work );
+inline std::ptrdiff_t ggbal( const char job, const MatrixA& a,
+ const MatrixB& b, fortran_int_t& ilo, fortran_int_t& ihi,
+ const VectorLSCALE& lscale, VectorRSCALE& rscale, Workspace work ) {
+ return ggbal_impl< typename value< MatrixA >::type >::invoke( job, a,
+ b, ilo, ihi, lscale, rscale, work );
 }
 
 //
@@ -590,12 +583,11 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
         typename VectorRSCALE >
-inline std::ptrdiff_t ggbal( const char job, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, const VectorLSCALE& lscale,
- VectorRSCALE& rscale ) {
- return ggbal_impl< typename value< MatrixA >::type >::invoke( job, n,
- a, b, ilo, ihi, lscale, rscale, optimal_workspace() );
+inline std::ptrdiff_t ggbal( const char job, const MatrixA& a,
+ const MatrixB& b, fortran_int_t& ilo, fortran_int_t& ihi,
+ const VectorLSCALE& lscale, VectorRSCALE& rscale ) {
+ return ggbal_impl< typename value< MatrixA >::type >::invoke( job, a,
+ b, ilo, ihi, lscale, rscale, optimal_workspace() );
 }
 
 //
@@ -608,12 +600,11 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
         typename VectorRSCALE, typename Workspace >
-inline std::ptrdiff_t ggbal( const char job, const fortran_int_t n,
- MatrixA& a, MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, VectorLSCALE& lscale,
+inline std::ptrdiff_t ggbal( const char job, MatrixA& a, MatrixB& b,
+ fortran_int_t& ilo, fortran_int_t& ihi, VectorLSCALE& lscale,
         const VectorRSCALE& rscale, Workspace work ) {
- return ggbal_impl< typename value< MatrixA >::type >::invoke( job, n,
- a, b, ilo, ihi, lscale, rscale, work );
+ return ggbal_impl< typename value< MatrixA >::type >::invoke( job, a,
+ b, ilo, ihi, lscale, rscale, work );
 }
 
 //
@@ -626,12 +617,11 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
         typename VectorRSCALE >
-inline std::ptrdiff_t ggbal( const char job, const fortran_int_t n,
- MatrixA& a, MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, VectorLSCALE& lscale,
+inline std::ptrdiff_t ggbal( const char job, MatrixA& a, MatrixB& b,
+ fortran_int_t& ilo, fortran_int_t& ihi, VectorLSCALE& lscale,
         const VectorRSCALE& rscale ) {
- return ggbal_impl< typename value< MatrixA >::type >::invoke( job, n,
- a, b, ilo, ihi, lscale, rscale, optimal_workspace() );
+ return ggbal_impl< typename value< MatrixA >::type >::invoke( job, a,
+ b, ilo, ihi, lscale, rscale, optimal_workspace() );
 }
 
 //
@@ -644,12 +634,11 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
         typename VectorRSCALE, typename Workspace >
-inline std::ptrdiff_t ggbal( const char job, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, VectorLSCALE& lscale,
+inline std::ptrdiff_t ggbal( const char job, const MatrixA& a, MatrixB& b,
+ fortran_int_t& ilo, fortran_int_t& ihi, VectorLSCALE& lscale,
         const VectorRSCALE& rscale, Workspace work ) {
- return ggbal_impl< typename value< MatrixA >::type >::invoke( job, n,
- a, b, ilo, ihi, lscale, rscale, work );
+ return ggbal_impl< typename value< MatrixA >::type >::invoke( job, a,
+ b, ilo, ihi, lscale, rscale, work );
 }
 
 //
@@ -662,12 +651,11 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
         typename VectorRSCALE >
-inline std::ptrdiff_t ggbal( const char job, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, VectorLSCALE& lscale,
+inline std::ptrdiff_t ggbal( const char job, const MatrixA& a, MatrixB& b,
+ fortran_int_t& ilo, fortran_int_t& ihi, VectorLSCALE& lscale,
         const VectorRSCALE& rscale ) {
- return ggbal_impl< typename value< MatrixA >::type >::invoke( job, n,
- a, b, ilo, ihi, lscale, rscale, optimal_workspace() );
+ return ggbal_impl< typename value< MatrixA >::type >::invoke( job, a,
+ b, ilo, ihi, lscale, rscale, optimal_workspace() );
 }
 
 //
@@ -680,12 +668,11 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
         typename VectorRSCALE, typename Workspace >
-inline std::ptrdiff_t ggbal( const char job, const fortran_int_t n,
- MatrixA& a, const MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, VectorLSCALE& lscale,
+inline std::ptrdiff_t ggbal( const char job, MatrixA& a, const MatrixB& b,
+ fortran_int_t& ilo, fortran_int_t& ihi, VectorLSCALE& lscale,
         const VectorRSCALE& rscale, Workspace work ) {
- return ggbal_impl< typename value< MatrixA >::type >::invoke( job, n,
- a, b, ilo, ihi, lscale, rscale, work );
+ return ggbal_impl< typename value< MatrixA >::type >::invoke( job, a,
+ b, ilo, ihi, lscale, rscale, work );
 }
 
 //
@@ -698,12 +685,11 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
         typename VectorRSCALE >
-inline std::ptrdiff_t ggbal( const char job, const fortran_int_t n,
- MatrixA& a, const MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, VectorLSCALE& lscale,
+inline std::ptrdiff_t ggbal( const char job, MatrixA& a, const MatrixB& b,
+ fortran_int_t& ilo, fortran_int_t& ihi, VectorLSCALE& lscale,
         const VectorRSCALE& rscale ) {
- return ggbal_impl< typename value< MatrixA >::type >::invoke( job, n,
- a, b, ilo, ihi, lscale, rscale, optimal_workspace() );
+ return ggbal_impl< typename value< MatrixA >::type >::invoke( job, a,
+ b, ilo, ihi, lscale, rscale, optimal_workspace() );
 }
 
 //
@@ -716,12 +702,11 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
         typename VectorRSCALE, typename Workspace >
-inline std::ptrdiff_t ggbal( const char job, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, VectorLSCALE& lscale,
- const VectorRSCALE& rscale, Workspace work ) {
- return ggbal_impl< typename value< MatrixA >::type >::invoke( job, n,
- a, b, ilo, ihi, lscale, rscale, work );
+inline std::ptrdiff_t ggbal( const char job, const MatrixA& a,
+ const MatrixB& b, fortran_int_t& ilo, fortran_int_t& ihi,
+ VectorLSCALE& lscale, const VectorRSCALE& rscale, Workspace work ) {
+ return ggbal_impl< typename value< MatrixA >::type >::invoke( job, a,
+ b, ilo, ihi, lscale, rscale, work );
 }
 
 //
@@ -734,12 +719,11 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
         typename VectorRSCALE >
-inline std::ptrdiff_t ggbal( const char job, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, VectorLSCALE& lscale,
- const VectorRSCALE& rscale ) {
- return ggbal_impl< typename value< MatrixA >::type >::invoke( job, n,
- a, b, ilo, ihi, lscale, rscale, optimal_workspace() );
+inline std::ptrdiff_t ggbal( const char job, const MatrixA& a,
+ const MatrixB& b, fortran_int_t& ilo, fortran_int_t& ihi,
+ VectorLSCALE& lscale, const VectorRSCALE& rscale ) {
+ return ggbal_impl< typename value< MatrixA >::type >::invoke( job, a,
+ b, ilo, ihi, lscale, rscale, optimal_workspace() );
 }
 
 //
@@ -752,12 +736,12 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
         typename VectorRSCALE, typename Workspace >
-inline std::ptrdiff_t ggbal( const char job, const fortran_int_t n,
- MatrixA& a, MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, const VectorLSCALE& lscale,
- const VectorRSCALE& rscale, Workspace work ) {
- return ggbal_impl< typename value< MatrixA >::type >::invoke( job, n,
- a, b, ilo, ihi, lscale, rscale, work );
+inline std::ptrdiff_t ggbal( const char job, MatrixA& a, MatrixB& b,
+ fortran_int_t& ilo, fortran_int_t& ihi,
+ const VectorLSCALE& lscale, const VectorRSCALE& rscale,
+ Workspace work ) {
+ return ggbal_impl< typename value< MatrixA >::type >::invoke( job, a,
+ b, ilo, ihi, lscale, rscale, work );
 }
 
 //
@@ -770,12 +754,11 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
         typename VectorRSCALE >
-inline std::ptrdiff_t ggbal( const char job, const fortran_int_t n,
- MatrixA& a, MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, const VectorLSCALE& lscale,
- const VectorRSCALE& rscale ) {
- return ggbal_impl< typename value< MatrixA >::type >::invoke( job, n,
- a, b, ilo, ihi, lscale, rscale, optimal_workspace() );
+inline std::ptrdiff_t ggbal( const char job, MatrixA& a, MatrixB& b,
+ fortran_int_t& ilo, fortran_int_t& ihi,
+ const VectorLSCALE& lscale, const VectorRSCALE& rscale ) {
+ return ggbal_impl< typename value< MatrixA >::type >::invoke( job, a,
+ b, ilo, ihi, lscale, rscale, optimal_workspace() );
 }
 
 //
@@ -788,12 +771,12 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
         typename VectorRSCALE, typename Workspace >
-inline std::ptrdiff_t ggbal( const char job, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, const VectorLSCALE& lscale,
- const VectorRSCALE& rscale, Workspace work ) {
- return ggbal_impl< typename value< MatrixA >::type >::invoke( job, n,
- a, b, ilo, ihi, lscale, rscale, work );
+inline std::ptrdiff_t ggbal( const char job, const MatrixA& a, MatrixB& b,
+ fortran_int_t& ilo, fortran_int_t& ihi,
+ const VectorLSCALE& lscale, const VectorRSCALE& rscale,
+ Workspace work ) {
+ return ggbal_impl< typename value< MatrixA >::type >::invoke( job, a,
+ b, ilo, ihi, lscale, rscale, work );
 }
 
 //
@@ -806,12 +789,11 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
         typename VectorRSCALE >
-inline std::ptrdiff_t ggbal( const char job, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, const VectorLSCALE& lscale,
- const VectorRSCALE& rscale ) {
- return ggbal_impl< typename value< MatrixA >::type >::invoke( job, n,
- a, b, ilo, ihi, lscale, rscale, optimal_workspace() );
+inline std::ptrdiff_t ggbal( const char job, const MatrixA& a, MatrixB& b,
+ fortran_int_t& ilo, fortran_int_t& ihi,
+ const VectorLSCALE& lscale, const VectorRSCALE& rscale ) {
+ return ggbal_impl< typename value< MatrixA >::type >::invoke( job, a,
+ b, ilo, ihi, lscale, rscale, optimal_workspace() );
 }
 
 //
@@ -824,12 +806,12 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
         typename VectorRSCALE, typename Workspace >
-inline std::ptrdiff_t ggbal( const char job, const fortran_int_t n,
- MatrixA& a, const MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, const VectorLSCALE& lscale,
- const VectorRSCALE& rscale, Workspace work ) {
- return ggbal_impl< typename value< MatrixA >::type >::invoke( job, n,
- a, b, ilo, ihi, lscale, rscale, work );
+inline std::ptrdiff_t ggbal( const char job, MatrixA& a, const MatrixB& b,
+ fortran_int_t& ilo, fortran_int_t& ihi,
+ const VectorLSCALE& lscale, const VectorRSCALE& rscale,
+ Workspace work ) {
+ return ggbal_impl< typename value< MatrixA >::type >::invoke( job, a,
+ b, ilo, ihi, lscale, rscale, work );
 }
 
 //
@@ -842,12 +824,11 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
         typename VectorRSCALE >
-inline std::ptrdiff_t ggbal( const char job, const fortran_int_t n,
- MatrixA& a, const MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, const VectorLSCALE& lscale,
- const VectorRSCALE& rscale ) {
- return ggbal_impl< typename value< MatrixA >::type >::invoke( job, n,
- a, b, ilo, ihi, lscale, rscale, optimal_workspace() );
+inline std::ptrdiff_t ggbal( const char job, MatrixA& a, const MatrixB& b,
+ fortran_int_t& ilo, fortran_int_t& ihi,
+ const VectorLSCALE& lscale, const VectorRSCALE& rscale ) {
+ return ggbal_impl< typename value< MatrixA >::type >::invoke( job, a,
+ b, ilo, ihi, lscale, rscale, optimal_workspace() );
 }
 
 //
@@ -860,12 +841,12 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
         typename VectorRSCALE, typename Workspace >
-inline std::ptrdiff_t ggbal( const char job, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, const VectorLSCALE& lscale,
- const VectorRSCALE& rscale, Workspace work ) {
- return ggbal_impl< typename value< MatrixA >::type >::invoke( job, n,
- a, b, ilo, ihi, lscale, rscale, work );
+inline std::ptrdiff_t ggbal( const char job, const MatrixA& a,
+ const MatrixB& b, fortran_int_t& ilo, fortran_int_t& ihi,
+ const VectorLSCALE& lscale, const VectorRSCALE& rscale,
+ Workspace work ) {
+ return ggbal_impl< typename value< MatrixA >::type >::invoke( job, a,
+ b, ilo, ihi, lscale, rscale, work );
 }
 
 //
@@ -878,12 +859,11 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorLSCALE,
         typename VectorRSCALE >
-inline std::ptrdiff_t ggbal( const char job, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, fortran_int_t& ilo,
- fortran_int_t& ihi, const VectorLSCALE& lscale,
- const VectorRSCALE& rscale ) {
- return ggbal_impl< typename value< MatrixA >::type >::invoke( job, n,
- a, b, ilo, ihi, lscale, rscale, optimal_workspace() );
+inline std::ptrdiff_t ggbal( const char job, const MatrixA& a,
+ const MatrixB& b, fortran_int_t& ilo, fortran_int_t& ihi,
+ const VectorLSCALE& lscale, const VectorRSCALE& rscale ) {
+ return ggbal_impl< typename value< MatrixA >::type >::invoke( job, a,
+ b, ilo, ihi, lscale, rscale, optimal_workspace() );
 }
 
 } // namespace lapack

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gghrd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gghrd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gghrd.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -131,8 +131,8 @@
     template< typename MatrixA, typename MatrixB, typename MatrixQ,
             typename MatrixZ >
     static std::ptrdiff_t invoke( const char compq, const char compz,
- const fortran_int_t n, const fortran_int_t ilo,
- MatrixA& a, MatrixB& b, MatrixQ& q, MatrixZ& z ) {
+ const fortran_int_t ilo, MatrixA& a, MatrixB& b, MatrixQ& q,
+ MatrixZ& z ) {
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< MatrixA >::type >::type,
                 typename remove_const< typename value<
@@ -151,17 +151,19 @@
         BOOST_STATIC_ASSERT( (is_mutable< MatrixZ >::value) );
         BOOST_ASSERT( compq == 'N' || compq == 'I' || compq == 'V' );
         BOOST_ASSERT( compz == 'N' || compz == 'I' || compz == 'V' );
- BOOST_ASSERT( n >= 0 );
+ BOOST_ASSERT( size_column(a) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_minor(q) == 1 || stride_minor(q) == 1 );
         BOOST_ASSERT( size_minor(z) == 1 || stride_minor(z) == 1 );
- BOOST_ASSERT( stride_major(a) >= std::max< std::ptrdiff_t >(1,n) );
- BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::gghrd( compq, compz, n, ilo, size_column(a),
- begin_value(a), stride_major(a), begin_value(b),
- stride_major(b), begin_value(q), stride_major(q),
- begin_value(z), stride_major(z) );
+ BOOST_ASSERT( stride_major(a) >= std::max< std::ptrdiff_t >(1,
+ size_column(a)) );
+ BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
+ size_column(a)) );
+ return detail::gghrd( compq, compz, size_column(a), ilo,
+ size_column(a), begin_value(a), stride_major(a),
+ begin_value(b), stride_major(b), begin_value(q),
+ stride_major(q), begin_value(z), stride_major(z) );
     }
 
 };
@@ -186,10 +188,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t gghrd( const char compq, const char compz,
- const fortran_int_t n, const fortran_int_t ilo, MatrixA& a,
- MatrixB& b, MatrixQ& q, MatrixZ& z ) {
+ const fortran_int_t ilo, MatrixA& a, MatrixB& b, MatrixQ& q,
+ MatrixZ& z ) {
     return gghrd_impl< typename value< MatrixA >::type >::invoke( compq,
- compz, n, ilo, a, b, q, z );
+ compz, ilo, a, b, q, z );
 }
 
 //
@@ -202,10 +204,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t gghrd( const char compq, const char compz,
- const fortran_int_t n, const fortran_int_t ilo,
- const MatrixA& a, MatrixB& b, MatrixQ& q, MatrixZ& z ) {
+ const fortran_int_t ilo, const MatrixA& a, MatrixB& b, MatrixQ& q,
+ MatrixZ& z ) {
     return gghrd_impl< typename value< MatrixA >::type >::invoke( compq,
- compz, n, ilo, a, b, q, z );
+ compz, ilo, a, b, q, z );
 }
 
 //
@@ -218,10 +220,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t gghrd( const char compq, const char compz,
- const fortran_int_t n, const fortran_int_t ilo, MatrixA& a,
- const MatrixB& b, MatrixQ& q, MatrixZ& z ) {
+ const fortran_int_t ilo, MatrixA& a, const MatrixB& b, MatrixQ& q,
+ MatrixZ& z ) {
     return gghrd_impl< typename value< MatrixA >::type >::invoke( compq,
- compz, n, ilo, a, b, q, z );
+ compz, ilo, a, b, q, z );
 }
 
 //
@@ -234,10 +236,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t gghrd( const char compq, const char compz,
- const fortran_int_t n, const fortran_int_t ilo,
- const MatrixA& a, const MatrixB& b, MatrixQ& q, MatrixZ& z ) {
+ const fortran_int_t ilo, const MatrixA& a, const MatrixB& b,
+ MatrixQ& q, MatrixZ& z ) {
     return gghrd_impl< typename value< MatrixA >::type >::invoke( compq,
- compz, n, ilo, a, b, q, z );
+ compz, ilo, a, b, q, z );
 }
 
 //
@@ -250,10 +252,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t gghrd( const char compq, const char compz,
- const fortran_int_t n, const fortran_int_t ilo, MatrixA& a,
- MatrixB& b, const MatrixQ& q, MatrixZ& z ) {
+ const fortran_int_t ilo, MatrixA& a, MatrixB& b, const MatrixQ& q,
+ MatrixZ& z ) {
     return gghrd_impl< typename value< MatrixA >::type >::invoke( compq,
- compz, n, ilo, a, b, q, z );
+ compz, ilo, a, b, q, z );
 }
 
 //
@@ -266,10 +268,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t gghrd( const char compq, const char compz,
- const fortran_int_t n, const fortran_int_t ilo,
- const MatrixA& a, MatrixB& b, const MatrixQ& q, MatrixZ& z ) {
+ const fortran_int_t ilo, const MatrixA& a, MatrixB& b,
+ const MatrixQ& q, MatrixZ& z ) {
     return gghrd_impl< typename value< MatrixA >::type >::invoke( compq,
- compz, n, ilo, a, b, q, z );
+ compz, ilo, a, b, q, z );
 }
 
 //
@@ -282,10 +284,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t gghrd( const char compq, const char compz,
- const fortran_int_t n, const fortran_int_t ilo, MatrixA& a,
- const MatrixB& b, const MatrixQ& q, MatrixZ& z ) {
+ const fortran_int_t ilo, MatrixA& a, const MatrixB& b,
+ const MatrixQ& q, MatrixZ& z ) {
     return gghrd_impl< typename value< MatrixA >::type >::invoke( compq,
- compz, n, ilo, a, b, q, z );
+ compz, ilo, a, b, q, z );
 }
 
 //
@@ -298,10 +300,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t gghrd( const char compq, const char compz,
- const fortran_int_t n, const fortran_int_t ilo,
- const MatrixA& a, const MatrixB& b, const MatrixQ& q, MatrixZ& z ) {
+ const fortran_int_t ilo, const MatrixA& a, const MatrixB& b,
+ const MatrixQ& q, MatrixZ& z ) {
     return gghrd_impl< typename value< MatrixA >::type >::invoke( compq,
- compz, n, ilo, a, b, q, z );
+ compz, ilo, a, b, q, z );
 }
 
 //
@@ -314,10 +316,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t gghrd( const char compq, const char compz,
- const fortran_int_t n, const fortran_int_t ilo, MatrixA& a,
- MatrixB& b, MatrixQ& q, const MatrixZ& z ) {
+ const fortran_int_t ilo, MatrixA& a, MatrixB& b, MatrixQ& q,
+ const MatrixZ& z ) {
     return gghrd_impl< typename value< MatrixA >::type >::invoke( compq,
- compz, n, ilo, a, b, q, z );
+ compz, ilo, a, b, q, z );
 }
 
 //
@@ -330,10 +332,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t gghrd( const char compq, const char compz,
- const fortran_int_t n, const fortran_int_t ilo,
- const MatrixA& a, MatrixB& b, MatrixQ& q, const MatrixZ& z ) {
+ const fortran_int_t ilo, const MatrixA& a, MatrixB& b, MatrixQ& q,
+ const MatrixZ& z ) {
     return gghrd_impl< typename value< MatrixA >::type >::invoke( compq,
- compz, n, ilo, a, b, q, z );
+ compz, ilo, a, b, q, z );
 }
 
 //
@@ -346,10 +348,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t gghrd( const char compq, const char compz,
- const fortran_int_t n, const fortran_int_t ilo, MatrixA& a,
- const MatrixB& b, MatrixQ& q, const MatrixZ& z ) {
+ const fortran_int_t ilo, MatrixA& a, const MatrixB& b, MatrixQ& q,
+ const MatrixZ& z ) {
     return gghrd_impl< typename value< MatrixA >::type >::invoke( compq,
- compz, n, ilo, a, b, q, z );
+ compz, ilo, a, b, q, z );
 }
 
 //
@@ -362,10 +364,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t gghrd( const char compq, const char compz,
- const fortran_int_t n, const fortran_int_t ilo,
- const MatrixA& a, const MatrixB& b, MatrixQ& q, const MatrixZ& z ) {
+ const fortran_int_t ilo, const MatrixA& a, const MatrixB& b,
+ MatrixQ& q, const MatrixZ& z ) {
     return gghrd_impl< typename value< MatrixA >::type >::invoke( compq,
- compz, n, ilo, a, b, q, z );
+ compz, ilo, a, b, q, z );
 }
 
 //
@@ -378,10 +380,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t gghrd( const char compq, const char compz,
- const fortran_int_t n, const fortran_int_t ilo, MatrixA& a,
- MatrixB& b, const MatrixQ& q, const MatrixZ& z ) {
+ const fortran_int_t ilo, MatrixA& a, MatrixB& b, const MatrixQ& q,
+ const MatrixZ& z ) {
     return gghrd_impl< typename value< MatrixA >::type >::invoke( compq,
- compz, n, ilo, a, b, q, z );
+ compz, ilo, a, b, q, z );
 }
 
 //
@@ -394,10 +396,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t gghrd( const char compq, const char compz,
- const fortran_int_t n, const fortran_int_t ilo,
- const MatrixA& a, MatrixB& b, const MatrixQ& q, const MatrixZ& z ) {
+ const fortran_int_t ilo, const MatrixA& a, MatrixB& b,
+ const MatrixQ& q, const MatrixZ& z ) {
     return gghrd_impl< typename value< MatrixA >::type >::invoke( compq,
- compz, n, ilo, a, b, q, z );
+ compz, ilo, a, b, q, z );
 }
 
 //
@@ -410,10 +412,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t gghrd( const char compq, const char compz,
- const fortran_int_t n, const fortran_int_t ilo, MatrixA& a,
- const MatrixB& b, const MatrixQ& q, const MatrixZ& z ) {
+ const fortran_int_t ilo, MatrixA& a, const MatrixB& b,
+ const MatrixQ& q, const MatrixZ& z ) {
     return gghrd_impl< typename value< MatrixA >::type >::invoke( compq,
- compz, n, ilo, a, b, q, z );
+ compz, ilo, a, b, q, z );
 }
 
 //
@@ -426,11 +428,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t gghrd( const char compq, const char compz,
- const fortran_int_t n, const fortran_int_t ilo,
- const MatrixA& a, const MatrixB& b, const MatrixQ& q,
- const MatrixZ& z ) {
+ const fortran_int_t ilo, const MatrixA& a, const MatrixB& b,
+ const MatrixQ& q, const MatrixZ& z ) {
     return gghrd_impl< typename value< MatrixA >::type >::invoke( compq,
- compz, n, ilo, a, b, q, z );
+ compz, ilo, a, b, q, z );
 }
 
 } // namespace lapack

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggqrf.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggqrf.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggqrf.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -156,9 +156,9 @@
         BOOST_STATIC_ASSERT( (is_mutable< VectorTAUA >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< MatrixB >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorTAUB >::value) );
- BOOST_ASSERT( size(taua) >= std::min< std::ptrdiff_t >(size_row(b),
+ BOOST_ASSERT( size(taua) >= std::min< std::ptrdiff_t >(size_row(a),
                 size_column(a)) );
- BOOST_ASSERT( size(taub) >= std::min< std::ptrdiff_t >(size_row(b),
+ BOOST_ASSERT( size(taub) >= std::min< std::ptrdiff_t >(size_row(a),
                 size_column(b)) );
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
                 $CALL_MIN_SIZE ));
@@ -166,12 +166,12 @@
         BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
- BOOST_ASSERT( size_row(b) >= 0 );
+ BOOST_ASSERT( size_row(a) >= 0 );
         BOOST_ASSERT( stride_major(a) >= std::max< std::ptrdiff_t >(1,
- size_row(b)) );
+ size_row(a)) );
         BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
- size_row(b)) );
- return detail::ggqrf( size_row(b), size_column(a), size_column(b),
+ size_row(a)) );
+ return detail::ggqrf( size_row(a), size_column(a), size_column(b),
                 begin_value(a), stride_major(a), begin_value(taua),
                 begin_value(b), stride_major(b), begin_value(taub),
                 begin_value(work.select(real_type())),
@@ -206,7 +206,7 @@
     static std::ptrdiff_t invoke( MatrixA& a, VectorTAUA& taua, MatrixB& b,
             VectorTAUB& taub, optimal_workspace work ) {
         real_type opt_size_work;
- detail::ggqrf( size_row(b), size_column(a), size_column(b),
+ detail::ggqrf( size_row(a), size_column(a), size_column(b),
                 begin_value(a), stride_major(a), begin_value(taua),
                 begin_value(b), stride_major(b), begin_value(taub),
                 &opt_size_work, -1 );
@@ -259,9 +259,9 @@
         BOOST_STATIC_ASSERT( (is_mutable< VectorTAUA >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< MatrixB >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorTAUB >::value) );
- BOOST_ASSERT( size(taua) >= std::min< std::ptrdiff_t >(size_row(b),
+ BOOST_ASSERT( size(taua) >= std::min< std::ptrdiff_t >(size_row(a),
                 size_column(a)) );
- BOOST_ASSERT( size(taub) >= std::min< std::ptrdiff_t >(size_row(b),
+ BOOST_ASSERT( size(taub) >= std::min< std::ptrdiff_t >(size_row(a),
                 size_column(b)) );
         BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
                 $CALL_MIN_SIZE ));
@@ -269,12 +269,12 @@
         BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
- BOOST_ASSERT( size_row(b) >= 0 );
+ BOOST_ASSERT( size_row(a) >= 0 );
         BOOST_ASSERT( stride_major(a) >= std::max< std::ptrdiff_t >(1,
- size_row(b)) );
+ size_row(a)) );
         BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
- size_row(b)) );
- return detail::ggqrf( size_row(b), size_column(a), size_column(b),
+ size_row(a)) );
+ return detail::ggqrf( size_row(a), size_column(a), size_column(b),
                 begin_value(a), stride_major(a), begin_value(taua),
                 begin_value(b), stride_major(b), begin_value(taub),
                 begin_value(work.select(value_type())),
@@ -309,7 +309,7 @@
     static std::ptrdiff_t invoke( MatrixA& a, VectorTAUA& taua, MatrixB& b,
             VectorTAUB& taub, optimal_workspace work ) {
         value_type opt_size_work;
- detail::ggqrf( size_row(b), size_column(a), size_column(b),
+ detail::ggqrf( size_row(a), size_column(a), size_column(b),
                 begin_value(a), stride_major(a), begin_value(taua),
                 begin_value(b), stride_major(b), begin_value(taub),
                 &opt_size_work, -1 );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggrqf.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggrqf.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggrqf.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -157,12 +157,12 @@
         BOOST_STATIC_ASSERT( (is_mutable< MatrixB >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorTAUB >::value) );
         BOOST_ASSERT( size(taua) >= std::min< std::ptrdiff_t >(size_row(a),
- size_column(b)) );
+ size_column(a)) );
         BOOST_ASSERT( size(taub) >= std::min< std::ptrdiff_t >(size_row(b),
- size_column(b)) );
+ size_column(a)) );
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
                 $CALL_MIN_SIZE ));
- BOOST_ASSERT( size_column(b) >= 0 );
+ BOOST_ASSERT( size_column(a) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_row(a) >= 0 );
@@ -171,7 +171,7 @@
                 size_row(a)) );
         BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
                 size_row(b)) );
- return detail::ggrqf( size_row(a), size_row(b), size_column(b),
+ return detail::ggrqf( size_row(a), size_row(b), size_column(a),
                 begin_value(a), stride_major(a), begin_value(taua),
                 begin_value(b), stride_major(b), begin_value(taub),
                 begin_value(work.select(real_type())),
@@ -206,7 +206,7 @@
     static std::ptrdiff_t invoke( MatrixA& a, VectorTAUA& taua, MatrixB& b,
             VectorTAUB& taub, optimal_workspace work ) {
         real_type opt_size_work;
- detail::ggrqf( size_row(a), size_row(b), size_column(b),
+ detail::ggrqf( size_row(a), size_row(b), size_column(a),
                 begin_value(a), stride_major(a), begin_value(taua),
                 begin_value(b), stride_major(b), begin_value(taub),
                 &opt_size_work, -1 );
@@ -260,12 +260,12 @@
         BOOST_STATIC_ASSERT( (is_mutable< MatrixB >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorTAUB >::value) );
         BOOST_ASSERT( size(taua) >= std::min< std::ptrdiff_t >(size_row(a),
- size_column(b)) );
+ size_column(a)) );
         BOOST_ASSERT( size(taub) >= std::min< std::ptrdiff_t >(size_row(b),
- size_column(b)) );
+ size_column(a)) );
         BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
                 $CALL_MIN_SIZE ));
- BOOST_ASSERT( size_column(b) >= 0 );
+ BOOST_ASSERT( size_column(a) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_row(a) >= 0 );
@@ -274,7 +274,7 @@
                 size_row(a)) );
         BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
                 size_row(b)) );
- return detail::ggrqf( size_row(a), size_row(b), size_column(b),
+ return detail::ggrqf( size_row(a), size_row(b), size_column(a),
                 begin_value(a), stride_major(a), begin_value(taua),
                 begin_value(b), stride_major(b), begin_value(taub),
                 begin_value(work.select(value_type())),
@@ -309,7 +309,7 @@
     static std::ptrdiff_t invoke( MatrixA& a, VectorTAUA& taua, MatrixB& b,
             VectorTAUB& taub, optimal_workspace work ) {
         value_type opt_size_work;
- detail::ggrqf( size_row(a), size_row(b), size_column(b),
+ detail::ggrqf( size_row(a), size_row(b), size_column(a),
                 begin_value(a), stride_major(a), begin_value(taua),
                 begin_value(b), stride_major(b), begin_value(taub),
                 &opt_size_work, -1 );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggsvp.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggsvp.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggsvp.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -186,12 +186,12 @@
         BOOST_ASSERT( jobu == 'U' || jobu == 'N' );
         BOOST_ASSERT( jobv == 'V' || jobv == 'N' );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
- min_size_iwork( size_column(b) ));
+ min_size_iwork( size_column(a) ));
         BOOST_ASSERT( size(work.select(real_type())) >=
- min_size_tau( size_column(b) ));
+ min_size_tau( size_column(a) ));
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
- size_column(b), size_row(a), size_row(b) ));
- BOOST_ASSERT( size_column(b) >= 0 );
+ size_column(a), size_row(a), size_row(b) ));
+ BOOST_ASSERT( size_column(a) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_minor(q) == 1 || stride_minor(q) == 1 );
@@ -204,7 +204,7 @@
         BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
                 size_row(b)) );
         return detail::ggsvp( jobu, jobv, jobq, size_row(a), size_row(b),
- size_column(b), begin_value(a), stride_major(a),
+ size_column(a), begin_value(a), stride_major(a),
                 begin_value(b), stride_major(b), tola, tolb, k, l,
                 begin_value(u), stride_major(u), begin_value(v),
                 stride_major(v), begin_value(q), stride_major(q),
@@ -227,11 +227,11 @@
             const real_type tolb, fortran_int_t& k, fortran_int_t& l,
             MatrixU& u, MatrixV& v, MatrixQ& q, minimal_workspace work ) {
         bindings::detail::array< fortran_int_t > tmp_iwork(
- min_size_iwork( size_column(b) ) );
+ min_size_iwork( size_column(a) ) );
         bindings::detail::array<
- real_type > tmp_tau( min_size_tau( size_column(b) ) );
+ real_type > tmp_tau( min_size_tau( size_column(a) ) );
         bindings::detail::array< real_type > tmp_work( min_size_work(
- size_column(b), size_row(a), size_row(b) ) );
+ size_column(a), size_row(a), size_row(b) ) );
         return invoke( jobu, jobv, jobq, a, b, tola, tolb, k, l, u, v, q,
                 workspace( tmp_iwork, tmp_tau, tmp_work ) );
     }
@@ -327,14 +327,14 @@
         BOOST_ASSERT( jobu == 'U' || jobu == 'N' );
         BOOST_ASSERT( jobv == 'V' || jobv == 'N' );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
- min_size_iwork( size_column(b) ));
+ min_size_iwork( size_column(a) ));
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork(
- size_column(b) ));
+ size_column(a) ));
         BOOST_ASSERT( size(work.select(value_type())) >=
- min_size_tau( size_column(b) ));
+ min_size_tau( size_column(a) ));
         BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
- size_column(b), size_row(a), size_row(b) ));
- BOOST_ASSERT( size_column(b) >= 0 );
+ size_column(a), size_row(a), size_row(b) ));
+ BOOST_ASSERT( size_column(a) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_minor(q) == 1 || stride_minor(q) == 1 );
@@ -347,7 +347,7 @@
         BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
                 size_row(b)) );
         return detail::ggsvp( jobu, jobv, jobq, size_row(a), size_row(b),
- size_column(b), begin_value(a), stride_major(a),
+ size_column(a), begin_value(a), stride_major(a),
                 begin_value(b), stride_major(b), tola, tolb, k, l,
                 begin_value(u), stride_major(u), begin_value(v),
                 stride_major(v), begin_value(q), stride_major(q),
@@ -371,13 +371,13 @@
             const real_type tolb, fortran_int_t& k, fortran_int_t& l,
             MatrixU& u, MatrixV& v, MatrixQ& q, minimal_workspace work ) {
         bindings::detail::array< fortran_int_t > tmp_iwork(
- min_size_iwork( size_column(b) ) );
+ min_size_iwork( size_column(a) ) );
         bindings::detail::array< real_type > tmp_rwork( min_size_rwork(
- size_column(b) ) );
+ size_column(a) ) );
         bindings::detail::array<
- value_type > tmp_tau( min_size_tau( size_column(b) ) );
+ value_type > tmp_tau( min_size_tau( size_column(a) ) );
         bindings::detail::array< value_type > tmp_work( min_size_work(
- size_column(b), size_row(a), size_row(b) ) );
+ size_column(a), size_row(a), size_row(b) ) );
         return invoke( jobu, jobv, jobq, a, b, tola, tolb, k, l, u, v, q,
                 workspace( tmp_iwork, tmp_rwork, tmp_tau, tmp_work ) );
     }

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hbgst.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hbgst.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hbgst.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -102,9 +102,9 @@
     //
     template< typename MatrixAB, typename MatrixBB, typename MatrixX,
             typename WORK, typename RWORK >
- static std::ptrdiff_t invoke( const char vect, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, MatrixX& x, detail::workspace2<
- WORK, RWORK > work ) {
+ static std::ptrdiff_t invoke( const char vect, MatrixAB& ab,
+ const MatrixBB& bb, MatrixX& x, detail::workspace2< WORK,
+ RWORK > work ) {
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< MatrixAB >::type >::type,
                 typename remove_const< typename value<
@@ -117,19 +117,22 @@
         BOOST_STATIC_ASSERT( (is_mutable< MatrixX >::value) );
         BOOST_ASSERT( bandwidth(ab, uplo()) >= 0 );
         BOOST_ASSERT( bandwidth(bb, uplo()) >= bandwidth(bb, uplo()) );
- BOOST_ASSERT( n >= 0 );
- BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork( n ));
- BOOST_ASSERT( size(work.select(value_type())) >= min_size_work( n ));
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork(
+ size_column(ab) ));
+ BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
+ size_column(ab) ));
+ BOOST_ASSERT( size_column(ab) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( size_minor(bb) == 1 || stride_minor(bb) == 1 );
         BOOST_ASSERT( size_minor(x) == 1 || stride_minor(x) == 1 );
         BOOST_ASSERT( stride_major(ab) >= bandwidth(ab, uplo())+1 );
         BOOST_ASSERT( stride_major(bb) >= bandwidth(bb, uplo())+1 );
         BOOST_ASSERT( vect == 'N' || vect == 'V' );
- return detail::hbgst( vect, uplo(), n, bandwidth(ab, uplo()),
- bandwidth(bb, uplo()), begin_value(ab), stride_major(ab),
- begin_value(bb), stride_major(bb), begin_value(x),
- stride_major(x), begin_value(work.select(value_type())),
+ return detail::hbgst( vect, uplo(), size_column(ab), bandwidth(ab,
+ uplo()), bandwidth(bb, uplo()), begin_value(ab),
+ stride_major(ab), begin_value(bb), stride_major(bb),
+ begin_value(x), stride_major(x),
+ begin_value(work.select(value_type())),
                 begin_value(work.select(real_type())) );
     }
 
@@ -141,12 +144,13 @@
     // * Enables the unblocked algorithm (BLAS level 2)
     //
     template< typename MatrixAB, typename MatrixBB, typename MatrixX >
- static std::ptrdiff_t invoke( const char vect, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, MatrixX& x,
- minimal_workspace work ) {
- bindings::detail::array< value_type > tmp_work( min_size_work( n ) );
- bindings::detail::array< real_type > tmp_rwork( min_size_rwork( n ) );
- return invoke( vect, n, ab, bb, x, workspace( tmp_work, tmp_rwork ) );
+ static std::ptrdiff_t invoke( const char vect, MatrixAB& ab,
+ const MatrixBB& bb, MatrixX& x, minimal_workspace work ) {
+ bindings::detail::array< value_type > tmp_work( min_size_work(
+ size_column(ab) ) );
+ bindings::detail::array< real_type > tmp_rwork( min_size_rwork(
+ size_column(ab) ) );
+ return invoke( vect, ab, bb, x, workspace( tmp_work, tmp_rwork ) );
     }
 
     //
@@ -157,10 +161,9 @@
     // * Enables the blocked algorithm (BLAS level 3)
     //
     template< typename MatrixAB, typename MatrixBB, typename MatrixX >
- static std::ptrdiff_t invoke( const char vect, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, MatrixX& x,
- optimal_workspace work ) {
- return invoke( vect, n, ab, bb, x, minimal_workspace() );
+ static std::ptrdiff_t invoke( const char vect, MatrixAB& ab,
+ const MatrixBB& bb, MatrixX& x, optimal_workspace work ) {
+ return invoke( vect, ab, bb, x, minimal_workspace() );
     }
 
     //
@@ -198,10 +201,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename MatrixX,
         typename Workspace >
-inline std::ptrdiff_t hbgst( const char vect, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, MatrixX& x, Workspace work ) {
+inline std::ptrdiff_t hbgst( const char vect, MatrixAB& ab,
+ const MatrixBB& bb, MatrixX& x, Workspace work ) {
     return hbgst_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, bb, x, work );
+ ab, bb, x, work );
 }
 
 //
@@ -211,10 +214,10 @@
 // * Default workspace-type (optimal)
 //
 template< typename MatrixAB, typename MatrixBB, typename MatrixX >
-inline std::ptrdiff_t hbgst( const char vect, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, MatrixX& x ) {
+inline std::ptrdiff_t hbgst( const char vect, MatrixAB& ab,
+ const MatrixBB& bb, MatrixX& x ) {
     return hbgst_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, bb, x, optimal_workspace() );
+ ab, bb, x, optimal_workspace() );
 }
 
 //
@@ -225,10 +228,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename MatrixX,
         typename Workspace >
-inline std::ptrdiff_t hbgst( const char vect, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, MatrixX& x, Workspace work ) {
+inline std::ptrdiff_t hbgst( const char vect, const MatrixAB& ab,
+ const MatrixBB& bb, MatrixX& x, Workspace work ) {
     return hbgst_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, bb, x, work );
+ ab, bb, x, work );
 }
 
 //
@@ -238,10 +241,10 @@
 // * Default workspace-type (optimal)
 //
 template< typename MatrixAB, typename MatrixBB, typename MatrixX >
-inline std::ptrdiff_t hbgst( const char vect, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, MatrixX& x ) {
+inline std::ptrdiff_t hbgst( const char vect, const MatrixAB& ab,
+ const MatrixBB& bb, MatrixX& x ) {
     return hbgst_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, bb, x, optimal_workspace() );
+ ab, bb, x, optimal_workspace() );
 }
 
 //
@@ -252,10 +255,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename MatrixX,
         typename Workspace >
-inline std::ptrdiff_t hbgst( const char vect, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, const MatrixX& x, Workspace work ) {
+inline std::ptrdiff_t hbgst( const char vect, MatrixAB& ab,
+ const MatrixBB& bb, const MatrixX& x, Workspace work ) {
     return hbgst_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, bb, x, work );
+ ab, bb, x, work );
 }
 
 //
@@ -265,10 +268,10 @@
 // * Default workspace-type (optimal)
 //
 template< typename MatrixAB, typename MatrixBB, typename MatrixX >
-inline std::ptrdiff_t hbgst( const char vect, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, const MatrixX& x ) {
+inline std::ptrdiff_t hbgst( const char vect, MatrixAB& ab,
+ const MatrixBB& bb, const MatrixX& x ) {
     return hbgst_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, bb, x, optimal_workspace() );
+ ab, bb, x, optimal_workspace() );
 }
 
 //
@@ -279,11 +282,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename MatrixX,
         typename Workspace >
-inline std::ptrdiff_t hbgst( const char vect, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, const MatrixX& x,
- Workspace work ) {
+inline std::ptrdiff_t hbgst( const char vect, const MatrixAB& ab,
+ const MatrixBB& bb, const MatrixX& x, Workspace work ) {
     return hbgst_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, bb, x, work );
+ ab, bb, x, work );
 }
 
 //
@@ -293,10 +295,10 @@
 // * Default workspace-type (optimal)
 //
 template< typename MatrixAB, typename MatrixBB, typename MatrixX >
-inline std::ptrdiff_t hbgst( const char vect, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, const MatrixX& x ) {
+inline std::ptrdiff_t hbgst( const char vect, const MatrixAB& ab,
+ const MatrixBB& bb, const MatrixX& x ) {
     return hbgst_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, bb, x, optimal_workspace() );
+ ab, bb, x, optimal_workspace() );
 }
 
 } // namespace lapack

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hbtrd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hbtrd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hbtrd.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -99,9 +99,8 @@
     //
     template< typename MatrixAB, typename VectorD, typename VectorE,
             typename MatrixQ, typename WORK >
- static std::ptrdiff_t invoke( const char vect, const fortran_int_t n,
- MatrixAB& ab, VectorD& d, VectorE& e, MatrixQ& q,
- detail::workspace1< WORK > work ) {
+ static std::ptrdiff_t invoke( const char vect, MatrixAB& ab, VectorD& d,
+ VectorE& e, MatrixQ& q, detail::workspace1< WORK > work ) {
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< VectorD >::type >::type,
                 typename remove_const< typename value<
@@ -115,15 +114,16 @@
         BOOST_STATIC_ASSERT( (is_mutable< VectorE >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< MatrixQ >::value) );
         BOOST_ASSERT( bandwidth(ab, uplo()) >= 0 );
- BOOST_ASSERT( n >= 0 );
- BOOST_ASSERT( size(d) >= n );
- BOOST_ASSERT( size(work.select(value_type())) >= min_size_work( n ));
+ BOOST_ASSERT( size(d) >= size_column(ab) );
+ BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
+ size_column(ab) ));
+ BOOST_ASSERT( size_column(ab) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( size_minor(q) == 1 || stride_minor(q) == 1 );
         BOOST_ASSERT( stride_major(ab) >= bandwidth(ab, uplo())+1 );
         BOOST_ASSERT( vect == 'N' || vect == 'V' || vect == 'U' );
- return detail::hbtrd( vect, uplo(), n, bandwidth(ab, uplo()),
- begin_value(ab), stride_major(ab), begin_value(d),
+ return detail::hbtrd( vect, uplo(), size_column(ab), bandwidth(ab,
+ uplo()), begin_value(ab), stride_major(ab), begin_value(d),
                 begin_value(e), begin_value(q), stride_major(q),
                 begin_value(work.select(value_type())) );
     }
@@ -137,11 +137,11 @@
     //
     template< typename MatrixAB, typename VectorD, typename VectorE,
             typename MatrixQ >
- static std::ptrdiff_t invoke( const char vect, const fortran_int_t n,
- MatrixAB& ab, VectorD& d, VectorE& e, MatrixQ& q,
- minimal_workspace work ) {
- bindings::detail::array< value_type > tmp_work( min_size_work( n ) );
- return invoke( vect, n, ab, d, e, q, workspace( tmp_work ) );
+ static std::ptrdiff_t invoke( const char vect, MatrixAB& ab, VectorD& d,
+ VectorE& e, MatrixQ& q, minimal_workspace work ) {
+ bindings::detail::array< value_type > tmp_work( min_size_work(
+ size_column(ab) ) );
+ return invoke( vect, ab, d, e, q, workspace( tmp_work ) );
     }
 
     //
@@ -153,10 +153,9 @@
     //
     template< typename MatrixAB, typename VectorD, typename VectorE,
             typename MatrixQ >
- static std::ptrdiff_t invoke( const char vect, const fortran_int_t n,
- MatrixAB& ab, VectorD& d, VectorE& e, MatrixQ& q,
- optimal_workspace work ) {
- return invoke( vect, n, ab, d, e, q, minimal_workspace() );
+ static std::ptrdiff_t invoke( const char vect, MatrixAB& ab, VectorD& d,
+ VectorE& e, MatrixQ& q, optimal_workspace work ) {
+ return invoke( vect, ab, d, e, q, minimal_workspace() );
     }
 
     //
@@ -188,10 +187,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ, typename Workspace >
-inline std::ptrdiff_t hbtrd( const char vect, const fortran_int_t n,
- MatrixAB& ab, VectorD& d, VectorE& e, MatrixQ& q, Workspace work ) {
+inline std::ptrdiff_t hbtrd( const char vect, MatrixAB& ab, VectorD& d,
+ VectorE& e, MatrixQ& q, Workspace work ) {
     return hbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, work );
+ ab, d, e, q, work );
 }
 
 //
@@ -204,10 +203,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ >
-inline std::ptrdiff_t hbtrd( const char vect, const fortran_int_t n,
- MatrixAB& ab, VectorD& d, VectorE& e, MatrixQ& q ) {
+inline std::ptrdiff_t hbtrd( const char vect, MatrixAB& ab, VectorD& d,
+ VectorE& e, MatrixQ& q ) {
     return hbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, optimal_workspace() );
+ ab, d, e, q, optimal_workspace() );
 }
 
 //
@@ -220,11 +219,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ, typename Workspace >
-inline std::ptrdiff_t hbtrd( const char vect, const fortran_int_t n,
- const MatrixAB& ab, VectorD& d, VectorE& e, MatrixQ& q,
- Workspace work ) {
+inline std::ptrdiff_t hbtrd( const char vect, const MatrixAB& ab,
+ VectorD& d, VectorE& e, MatrixQ& q, Workspace work ) {
     return hbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, work );
+ ab, d, e, q, work );
 }
 
 //
@@ -237,10 +235,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ >
-inline std::ptrdiff_t hbtrd( const char vect, const fortran_int_t n,
- const MatrixAB& ab, VectorD& d, VectorE& e, MatrixQ& q ) {
+inline std::ptrdiff_t hbtrd( const char vect, const MatrixAB& ab,
+ VectorD& d, VectorE& e, MatrixQ& q ) {
     return hbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, optimal_workspace() );
+ ab, d, e, q, optimal_workspace() );
 }
 
 //
@@ -253,11 +251,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ, typename Workspace >
-inline std::ptrdiff_t hbtrd( const char vect, const fortran_int_t n,
- MatrixAB& ab, const VectorD& d, VectorE& e, MatrixQ& q,
- Workspace work ) {
+inline std::ptrdiff_t hbtrd( const char vect, MatrixAB& ab,
+ const VectorD& d, VectorE& e, MatrixQ& q, Workspace work ) {
     return hbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, work );
+ ab, d, e, q, work );
 }
 
 //
@@ -270,10 +267,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ >
-inline std::ptrdiff_t hbtrd( const char vect, const fortran_int_t n,
- MatrixAB& ab, const VectorD& d, VectorE& e, MatrixQ& q ) {
+inline std::ptrdiff_t hbtrd( const char vect, MatrixAB& ab,
+ const VectorD& d, VectorE& e, MatrixQ& q ) {
     return hbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, optimal_workspace() );
+ ab, d, e, q, optimal_workspace() );
 }
 
 //
@@ -286,11 +283,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ, typename Workspace >
-inline std::ptrdiff_t hbtrd( const char vect, const fortran_int_t n,
- const MatrixAB& ab, const VectorD& d, VectorE& e, MatrixQ& q,
- Workspace work ) {
+inline std::ptrdiff_t hbtrd( const char vect, const MatrixAB& ab,
+ const VectorD& d, VectorE& e, MatrixQ& q, Workspace work ) {
     return hbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, work );
+ ab, d, e, q, work );
 }
 
 //
@@ -303,10 +299,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ >
-inline std::ptrdiff_t hbtrd( const char vect, const fortran_int_t n,
- const MatrixAB& ab, const VectorD& d, VectorE& e, MatrixQ& q ) {
+inline std::ptrdiff_t hbtrd( const char vect, const MatrixAB& ab,
+ const VectorD& d, VectorE& e, MatrixQ& q ) {
     return hbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, optimal_workspace() );
+ ab, d, e, q, optimal_workspace() );
 }
 
 //
@@ -319,11 +315,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ, typename Workspace >
-inline std::ptrdiff_t hbtrd( const char vect, const fortran_int_t n,
- MatrixAB& ab, VectorD& d, const VectorE& e, MatrixQ& q,
- Workspace work ) {
+inline std::ptrdiff_t hbtrd( const char vect, MatrixAB& ab, VectorD& d,
+ const VectorE& e, MatrixQ& q, Workspace work ) {
     return hbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, work );
+ ab, d, e, q, work );
 }
 
 //
@@ -336,10 +331,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ >
-inline std::ptrdiff_t hbtrd( const char vect, const fortran_int_t n,
- MatrixAB& ab, VectorD& d, const VectorE& e, MatrixQ& q ) {
+inline std::ptrdiff_t hbtrd( const char vect, MatrixAB& ab, VectorD& d,
+ const VectorE& e, MatrixQ& q ) {
     return hbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, optimal_workspace() );
+ ab, d, e, q, optimal_workspace() );
 }
 
 //
@@ -352,11 +347,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ, typename Workspace >
-inline std::ptrdiff_t hbtrd( const char vect, const fortran_int_t n,
- const MatrixAB& ab, VectorD& d, const VectorE& e, MatrixQ& q,
- Workspace work ) {
+inline std::ptrdiff_t hbtrd( const char vect, const MatrixAB& ab,
+ VectorD& d, const VectorE& e, MatrixQ& q, Workspace work ) {
     return hbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, work );
+ ab, d, e, q, work );
 }
 
 //
@@ -369,10 +363,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ >
-inline std::ptrdiff_t hbtrd( const char vect, const fortran_int_t n,
- const MatrixAB& ab, VectorD& d, const VectorE& e, MatrixQ& q ) {
+inline std::ptrdiff_t hbtrd( const char vect, const MatrixAB& ab,
+ VectorD& d, const VectorE& e, MatrixQ& q ) {
     return hbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, optimal_workspace() );
+ ab, d, e, q, optimal_workspace() );
 }
 
 //
@@ -385,11 +379,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ, typename Workspace >
-inline std::ptrdiff_t hbtrd( const char vect, const fortran_int_t n,
- MatrixAB& ab, const VectorD& d, const VectorE& e, MatrixQ& q,
- Workspace work ) {
+inline std::ptrdiff_t hbtrd( const char vect, MatrixAB& ab,
+ const VectorD& d, const VectorE& e, MatrixQ& q, Workspace work ) {
     return hbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, work );
+ ab, d, e, q, work );
 }
 
 //
@@ -402,10 +395,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ >
-inline std::ptrdiff_t hbtrd( const char vect, const fortran_int_t n,
- MatrixAB& ab, const VectorD& d, const VectorE& e, MatrixQ& q ) {
+inline std::ptrdiff_t hbtrd( const char vect, MatrixAB& ab,
+ const VectorD& d, const VectorE& e, MatrixQ& q ) {
     return hbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, optimal_workspace() );
+ ab, d, e, q, optimal_workspace() );
 }
 
 //
@@ -418,11 +411,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ, typename Workspace >
-inline std::ptrdiff_t hbtrd( const char vect, const fortran_int_t n,
- const MatrixAB& ab, const VectorD& d, const VectorE& e, MatrixQ& q,
- Workspace work ) {
+inline std::ptrdiff_t hbtrd( const char vect, const MatrixAB& ab,
+ const VectorD& d, const VectorE& e, MatrixQ& q, Workspace work ) {
     return hbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, work );
+ ab, d, e, q, work );
 }
 
 //
@@ -435,10 +427,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ >
-inline std::ptrdiff_t hbtrd( const char vect, const fortran_int_t n,
- const MatrixAB& ab, const VectorD& d, const VectorE& e, MatrixQ& q ) {
+inline std::ptrdiff_t hbtrd( const char vect, const MatrixAB& ab,
+ const VectorD& d, const VectorE& e, MatrixQ& q ) {
     return hbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, optimal_workspace() );
+ ab, d, e, q, optimal_workspace() );
 }
 
 //
@@ -451,11 +443,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ, typename Workspace >
-inline std::ptrdiff_t hbtrd( const char vect, const fortran_int_t n,
- MatrixAB& ab, VectorD& d, VectorE& e, const MatrixQ& q,
- Workspace work ) {
+inline std::ptrdiff_t hbtrd( const char vect, MatrixAB& ab, VectorD& d,
+ VectorE& e, const MatrixQ& q, Workspace work ) {
     return hbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, work );
+ ab, d, e, q, work );
 }
 
 //
@@ -468,10 +459,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ >
-inline std::ptrdiff_t hbtrd( const char vect, const fortran_int_t n,
- MatrixAB& ab, VectorD& d, VectorE& e, const MatrixQ& q ) {
+inline std::ptrdiff_t hbtrd( const char vect, MatrixAB& ab, VectorD& d,
+ VectorE& e, const MatrixQ& q ) {
     return hbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, optimal_workspace() );
+ ab, d, e, q, optimal_workspace() );
 }
 
 //
@@ -484,11 +475,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ, typename Workspace >
-inline std::ptrdiff_t hbtrd( const char vect, const fortran_int_t n,
- const MatrixAB& ab, VectorD& d, VectorE& e, const MatrixQ& q,
- Workspace work ) {
+inline std::ptrdiff_t hbtrd( const char vect, const MatrixAB& ab,
+ VectorD& d, VectorE& e, const MatrixQ& q, Workspace work ) {
     return hbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, work );
+ ab, d, e, q, work );
 }
 
 //
@@ -501,10 +491,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ >
-inline std::ptrdiff_t hbtrd( const char vect, const fortran_int_t n,
- const MatrixAB& ab, VectorD& d, VectorE& e, const MatrixQ& q ) {
+inline std::ptrdiff_t hbtrd( const char vect, const MatrixAB& ab,
+ VectorD& d, VectorE& e, const MatrixQ& q ) {
     return hbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, optimal_workspace() );
+ ab, d, e, q, optimal_workspace() );
 }
 
 //
@@ -517,11 +507,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ, typename Workspace >
-inline std::ptrdiff_t hbtrd( const char vect, const fortran_int_t n,
- MatrixAB& ab, const VectorD& d, VectorE& e, const MatrixQ& q,
- Workspace work ) {
+inline std::ptrdiff_t hbtrd( const char vect, MatrixAB& ab,
+ const VectorD& d, VectorE& e, const MatrixQ& q, Workspace work ) {
     return hbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, work );
+ ab, d, e, q, work );
 }
 
 //
@@ -534,10 +523,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ >
-inline std::ptrdiff_t hbtrd( const char vect, const fortran_int_t n,
- MatrixAB& ab, const VectorD& d, VectorE& e, const MatrixQ& q ) {
+inline std::ptrdiff_t hbtrd( const char vect, MatrixAB& ab,
+ const VectorD& d, VectorE& e, const MatrixQ& q ) {
     return hbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, optimal_workspace() );
+ ab, d, e, q, optimal_workspace() );
 }
 
 //
@@ -550,11 +539,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ, typename Workspace >
-inline std::ptrdiff_t hbtrd( const char vect, const fortran_int_t n,
- const MatrixAB& ab, const VectorD& d, VectorE& e, const MatrixQ& q,
- Workspace work ) {
+inline std::ptrdiff_t hbtrd( const char vect, const MatrixAB& ab,
+ const VectorD& d, VectorE& e, const MatrixQ& q, Workspace work ) {
     return hbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, work );
+ ab, d, e, q, work );
 }
 
 //
@@ -567,10 +555,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ >
-inline std::ptrdiff_t hbtrd( const char vect, const fortran_int_t n,
- const MatrixAB& ab, const VectorD& d, VectorE& e, const MatrixQ& q ) {
+inline std::ptrdiff_t hbtrd( const char vect, const MatrixAB& ab,
+ const VectorD& d, VectorE& e, const MatrixQ& q ) {
     return hbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, optimal_workspace() );
+ ab, d, e, q, optimal_workspace() );
 }
 
 //
@@ -583,11 +571,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ, typename Workspace >
-inline std::ptrdiff_t hbtrd( const char vect, const fortran_int_t n,
- MatrixAB& ab, VectorD& d, const VectorE& e, const MatrixQ& q,
- Workspace work ) {
+inline std::ptrdiff_t hbtrd( const char vect, MatrixAB& ab, VectorD& d,
+ const VectorE& e, const MatrixQ& q, Workspace work ) {
     return hbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, work );
+ ab, d, e, q, work );
 }
 
 //
@@ -600,10 +587,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ >
-inline std::ptrdiff_t hbtrd( const char vect, const fortran_int_t n,
- MatrixAB& ab, VectorD& d, const VectorE& e, const MatrixQ& q ) {
+inline std::ptrdiff_t hbtrd( const char vect, MatrixAB& ab, VectorD& d,
+ const VectorE& e, const MatrixQ& q ) {
     return hbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, optimal_workspace() );
+ ab, d, e, q, optimal_workspace() );
 }
 
 //
@@ -616,11 +603,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ, typename Workspace >
-inline std::ptrdiff_t hbtrd( const char vect, const fortran_int_t n,
- const MatrixAB& ab, VectorD& d, const VectorE& e, const MatrixQ& q,
- Workspace work ) {
+inline std::ptrdiff_t hbtrd( const char vect, const MatrixAB& ab,
+ VectorD& d, const VectorE& e, const MatrixQ& q, Workspace work ) {
     return hbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, work );
+ ab, d, e, q, work );
 }
 
 //
@@ -633,10 +619,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ >
-inline std::ptrdiff_t hbtrd( const char vect, const fortran_int_t n,
- const MatrixAB& ab, VectorD& d, const VectorE& e, const MatrixQ& q ) {
+inline std::ptrdiff_t hbtrd( const char vect, const MatrixAB& ab,
+ VectorD& d, const VectorE& e, const MatrixQ& q ) {
     return hbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, optimal_workspace() );
+ ab, d, e, q, optimal_workspace() );
 }
 
 //
@@ -649,11 +635,11 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ, typename Workspace >
-inline std::ptrdiff_t hbtrd( const char vect, const fortran_int_t n,
- MatrixAB& ab, const VectorD& d, const VectorE& e, const MatrixQ& q,
+inline std::ptrdiff_t hbtrd( const char vect, MatrixAB& ab,
+ const VectorD& d, const VectorE& e, const MatrixQ& q,
         Workspace work ) {
     return hbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, work );
+ ab, d, e, q, work );
 }
 
 //
@@ -666,10 +652,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ >
-inline std::ptrdiff_t hbtrd( const char vect, const fortran_int_t n,
- MatrixAB& ab, const VectorD& d, const VectorE& e, const MatrixQ& q ) {
+inline std::ptrdiff_t hbtrd( const char vect, MatrixAB& ab,
+ const VectorD& d, const VectorE& e, const MatrixQ& q ) {
     return hbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, optimal_workspace() );
+ ab, d, e, q, optimal_workspace() );
 }
 
 //
@@ -682,11 +668,11 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ, typename Workspace >
-inline std::ptrdiff_t hbtrd( const char vect, const fortran_int_t n,
- const MatrixAB& ab, const VectorD& d, const VectorE& e,
- const MatrixQ& q, Workspace work ) {
+inline std::ptrdiff_t hbtrd( const char vect, const MatrixAB& ab,
+ const VectorD& d, const VectorE& e, const MatrixQ& q,
+ Workspace work ) {
     return hbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, work );
+ ab, d, e, q, work );
 }
 
 //
@@ -699,11 +685,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ >
-inline std::ptrdiff_t hbtrd( const char vect, const fortran_int_t n,
- const MatrixAB& ab, const VectorD& d, const VectorE& e,
- const MatrixQ& q ) {
+inline std::ptrdiff_t hbtrd( const char vect, const MatrixAB& ab,
+ const VectorD& d, const VectorE& e, const MatrixQ& q ) {
     return hbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, optimal_workspace() );
+ ab, d, e, q, optimal_workspace() );
 }
 
 } // namespace lapack

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hegst.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hegst.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hegst.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -94,20 +94,22 @@
     // * Asserts that most arguments make sense.
     //
     template< typename MatrixA, typename MatrixB >
- static std::ptrdiff_t invoke( const fortran_int_t itype,
- const fortran_int_t n, MatrixA& a, const MatrixB& b ) {
+ static std::ptrdiff_t invoke( const fortran_int_t itype, MatrixA& a,
+ const MatrixB& b ) {
         typedef typename result_of::data_side< MatrixA >::type uplo;
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< MatrixA >::type >::type,
                 typename remove_const< typename value<
                 MatrixB >::type >::type >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< MatrixA >::value) );
- BOOST_ASSERT( n >= 0 );
+ BOOST_ASSERT( size_column(a) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
- BOOST_ASSERT( stride_major(a) >= std::max< std::ptrdiff_t >(1,n) );
- BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::hegst( itype, uplo(), n, begin_value(a),
+ BOOST_ASSERT( stride_major(a) >= std::max< std::ptrdiff_t >(1,
+ size_column(a)) );
+ BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
+ size_column(a)) );
+ return detail::hegst( itype, uplo(), size_column(a), begin_value(a),
                 stride_major(a), begin_value(b), stride_major(b) );
     }
 
@@ -128,10 +130,10 @@
 // * MatrixA&
 //
 template< typename MatrixA, typename MatrixB >
-inline std::ptrdiff_t hegst( const fortran_int_t itype,
- const fortran_int_t n, MatrixA& a, const MatrixB& b ) {
+inline std::ptrdiff_t hegst( const fortran_int_t itype, MatrixA& a,
+ const MatrixB& b ) {
     return hegst_impl< typename value< MatrixA >::type >::invoke( itype,
- n, a, b );
+ a, b );
 }
 
 //
@@ -140,9 +142,9 @@
 //
 template< typename MatrixA, typename MatrixB >
 inline std::ptrdiff_t hegst( const fortran_int_t itype,
- const fortran_int_t n, const MatrixA& a, const MatrixB& b ) {
+ const MatrixA& a, const MatrixB& b ) {
     return hegst_impl< typename value< MatrixA >::type >::invoke( itype,
- n, a, b );
+ a, b );
 }
 
 } // namespace lapack

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/herfs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/herfs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/herfs.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -128,14 +128,14 @@
         BOOST_STATIC_ASSERT( (is_mutable< MatrixX >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorFERR >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorBERR >::value) );
- BOOST_ASSERT( size(berr) >= size_column(x) );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
         BOOST_ASSERT( size(ipiv) >= size_column(a) );
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork(
                 size_column(a) ));
         BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
                 size_column(a) ));
         BOOST_ASSERT( size_column(a) >= 0 );
- BOOST_ASSERT( size_column(x) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(af) == 1 || stride_minor(af) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
@@ -148,7 +148,7 @@
                 size_column(a)) );
         BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,
                 size_column(a)) );
- return detail::herfs( uplo(), size_column(a), size_column(x),
+ return detail::herfs( uplo(), size_column(a), size_column(b),
                 begin_value(a), stride_major(a), begin_value(af),
                 stride_major(af), begin_value(ipiv), begin_value(b),
                 stride_major(b), begin_value(x), stride_major(x),

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hprfs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hprfs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hprfs.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -127,16 +127,16 @@
         BOOST_STATIC_ASSERT( (is_mutable< VectorBERR >::value) );
         BOOST_ASSERT( n >= 0 );
         BOOST_ASSERT( size(afp) >= n*(n+1)/2 );
- BOOST_ASSERT( size(berr) >= size_column(x) );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
         BOOST_ASSERT( size(ipiv) >= n );
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork( n ));
         BOOST_ASSERT( size(work.select(value_type())) >= min_size_work( n ));
- BOOST_ASSERT( size_column(x) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_minor(x) == 1 || stride_minor(x) == 1 );
         BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,n) );
         BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::hprfs( uplo(), n, size_column(x), begin_value(ap),
+ return detail::hprfs( uplo(), n, size_column(b), begin_value(ap),
                 begin_value(afp), begin_value(ipiv), begin_value(b),
                 stride_major(b), begin_value(x), stride_major(x),
                 begin_value(ferr), begin_value(berr),

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbcon.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbcon.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbcon.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -133,18 +133,19 @@
     // * Asserts that most arguments make sense.
     //
     template< typename MatrixAB, typename WORK, typename IWORK >
- static std::ptrdiff_t invoke( const char uplo, const fortran_int_t n,
- const MatrixAB& ab, const real_type anorm, real_type& rcond,
- detail::workspace2< WORK, IWORK > work ) {
+ static std::ptrdiff_t invoke( const char uplo, const MatrixAB& ab,
+ const real_type anorm, real_type& rcond, detail::workspace2< WORK,
+ IWORK > work ) {
         BOOST_ASSERT( bandwidth(ab, uplo()) >= 0 );
- BOOST_ASSERT( n >= 0 );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
- min_size_iwork( n ));
- BOOST_ASSERT( size(work.select(real_type())) >= min_size_work( n ));
+ min_size_iwork( size_column(ab) ));
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
+ size_column(ab) ));
+ BOOST_ASSERT( size_column(ab) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( stride_major(ab) >= bandwidth(ab, uplo())+1 );
- return detail::pbcon( uplo, n, bandwidth(ab, uplo()), begin_value(ab),
- stride_major(ab), anorm, rcond,
+ return detail::pbcon( uplo, size_column(ab), bandwidth(ab, uplo()),
+ begin_value(ab), stride_major(ab), anorm, rcond,
                 begin_value(work.select(real_type())),
                 begin_value(work.select(fortran_int_t())) );
     }
@@ -157,13 +158,13 @@
     // * Enables the unblocked algorithm (BLAS level 2)
     //
     template< typename MatrixAB >
- static std::ptrdiff_t invoke( const char uplo, const fortran_int_t n,
- const MatrixAB& ab, const real_type anorm, real_type& rcond,
- minimal_workspace work ) {
- bindings::detail::array< real_type > tmp_work( min_size_work( n ) );
+ static std::ptrdiff_t invoke( const char uplo, const MatrixAB& ab,
+ const real_type anorm, real_type& rcond, minimal_workspace work ) {
+ bindings::detail::array< real_type > tmp_work( min_size_work(
+ size_column(ab) ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
- min_size_iwork( n ) );
- return invoke( uplo, n, ab, anorm, rcond, workspace( tmp_work,
+ min_size_iwork( size_column(ab) ) );
+ return invoke( uplo, ab, anorm, rcond, workspace( tmp_work,
                 tmp_iwork ) );
     }
 
@@ -175,10 +176,9 @@
     // * Enables the blocked algorithm (BLAS level 3)
     //
     template< typename MatrixAB >
- static std::ptrdiff_t invoke( const char uplo, const fortran_int_t n,
- const MatrixAB& ab, const real_type anorm, real_type& rcond,
- optimal_workspace work ) {
- return invoke( uplo, n, ab, anorm, rcond, minimal_workspace() );
+ static std::ptrdiff_t invoke( const char uplo, const MatrixAB& ab,
+ const real_type anorm, real_type& rcond, optimal_workspace work ) {
+ return invoke( uplo, ab, anorm, rcond, minimal_workspace() );
     }
 
     //
@@ -214,17 +214,19 @@
     // * Asserts that most arguments make sense.
     //
     template< typename MatrixAB, typename WORK, typename RWORK >
- static std::ptrdiff_t invoke( const char uplo, const fortran_int_t n,
- const MatrixAB& ab, const real_type anorm, real_type& rcond,
- detail::workspace2< WORK, RWORK > work ) {
+ static std::ptrdiff_t invoke( const char uplo, const MatrixAB& ab,
+ const real_type anorm, real_type& rcond, detail::workspace2< WORK,
+ RWORK > work ) {
         BOOST_ASSERT( bandwidth_upper(ab) >= 0 );
- BOOST_ASSERT( n >= 0 );
- BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork( n ));
- BOOST_ASSERT( size(work.select(value_type())) >= min_size_work( n ));
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork(
+ size_column(ab) ));
+ BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
+ size_column(ab) ));
+ BOOST_ASSERT( size_column(ab) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( stride_major(ab) >= bandwidth_upper(ab)+1 );
- return detail::pbcon( uplo, n, bandwidth_upper(ab), begin_value(ab),
- stride_major(ab), anorm, rcond,
+ return detail::pbcon( uplo, size_column(ab), bandwidth_upper(ab),
+ begin_value(ab), stride_major(ab), anorm, rcond,
                 begin_value(work.select(value_type())),
                 begin_value(work.select(real_type())) );
     }
@@ -237,12 +239,13 @@
     // * Enables the unblocked algorithm (BLAS level 2)
     //
     template< typename MatrixAB >
- static std::ptrdiff_t invoke( const char uplo, const fortran_int_t n,
- const MatrixAB& ab, const real_type anorm, real_type& rcond,
- minimal_workspace work ) {
- bindings::detail::array< value_type > tmp_work( min_size_work( n ) );
- bindings::detail::array< real_type > tmp_rwork( min_size_rwork( n ) );
- return invoke( uplo, n, ab, anorm, rcond, workspace( tmp_work,
+ static std::ptrdiff_t invoke( const char uplo, const MatrixAB& ab,
+ const real_type anorm, real_type& rcond, minimal_workspace work ) {
+ bindings::detail::array< value_type > tmp_work( min_size_work(
+ size_column(ab) ) );
+ bindings::detail::array< real_type > tmp_rwork( min_size_rwork(
+ size_column(ab) ) );
+ return invoke( uplo, ab, anorm, rcond, workspace( tmp_work,
                 tmp_rwork ) );
     }
 
@@ -254,10 +257,9 @@
     // * Enables the blocked algorithm (BLAS level 3)
     //
     template< typename MatrixAB >
- static std::ptrdiff_t invoke( const char uplo, const fortran_int_t n,
- const MatrixAB& ab, const real_type anorm, real_type& rcond,
- optimal_workspace work ) {
- return invoke( uplo, n, ab, anorm, rcond, minimal_workspace() );
+ static std::ptrdiff_t invoke( const char uplo, const MatrixAB& ab,
+ const real_type anorm, real_type& rcond, optimal_workspace work ) {
+ return invoke( uplo, ab, anorm, rcond, minimal_workspace() );
     }
 
     //
@@ -292,12 +294,12 @@
 // * User-defined workspace
 //
 template< typename MatrixAB, typename Workspace >
-inline std::ptrdiff_t pbcon( const char uplo, const fortran_int_t n,
- const MatrixAB& ab, const typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbcon( const char uplo, const MatrixAB& ab,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type anorm, typename remove_imaginary<
         typename value< MatrixAB >::type >::type& rcond, Workspace work ) {
     return pbcon_impl< typename value< MatrixAB >::type >::invoke( uplo,
- n, ab, anorm, rcond, work );
+ ab, anorm, rcond, work );
 }
 
 //
@@ -305,12 +307,12 @@
 // * Default workspace-type (optimal)
 //
 template< typename MatrixAB >
-inline std::ptrdiff_t pbcon( const char uplo, const fortran_int_t n,
- const MatrixAB& ab, const typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbcon( const char uplo, const MatrixAB& ab,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type anorm, typename remove_imaginary<
         typename value< MatrixAB >::type >::type& rcond ) {
     return pbcon_impl< typename value< MatrixAB >::type >::invoke( uplo,
- n, ab, anorm, rcond, optimal_workspace() );
+ ab, anorm, rcond, optimal_workspace() );
 }
 
 } // namespace lapack

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbequ.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbequ.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbequ.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -132,19 +132,18 @@
     // * Asserts that most arguments make sense.
     //
     template< typename MatrixAB, typename VectorS >
- static std::ptrdiff_t invoke( const fortran_int_t n,
- const MatrixAB& ab, VectorS& s, real_type& scond,
- real_type& amax ) {
+ static std::ptrdiff_t invoke( const MatrixAB& ab, VectorS& s,
+ real_type& scond, real_type& amax ) {
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< MatrixAB >::type >::type,
                 typename remove_const< typename value<
                 VectorS >::type >::type >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorS >::value) );
         BOOST_ASSERT( bandwidth(ab, uplo()) >= 0 );
- BOOST_ASSERT( n >= 0 );
+ BOOST_ASSERT( size_column(ab) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( stride_major(ab) >= bandwidth(ab, uplo())+1 );
- return detail::pbequ( uplo(), n, bandwidth(ab, uplo()),
+ return detail::pbequ( uplo(), size_column(ab), bandwidth(ab, uplo()),
                 begin_value(ab), stride_major(ab), begin_value(s), scond,
                 amax );
     }
@@ -167,15 +166,14 @@
     // * Asserts that most arguments make sense.
     //
     template< typename MatrixAB, typename VectorS >
- static std::ptrdiff_t invoke( const fortran_int_t n,
- const MatrixAB& ab, VectorS& s, real_type& scond,
- real_type& amax ) {
+ static std::ptrdiff_t invoke( const MatrixAB& ab, VectorS& s,
+ real_type& scond, real_type& amax ) {
         BOOST_STATIC_ASSERT( (is_mutable< VectorS >::value) );
         BOOST_ASSERT( bandwidth(ab, uplo()) >= 0 );
- BOOST_ASSERT( n >= 0 );
+ BOOST_ASSERT( size_column(ab) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( stride_major(ab) >= bandwidth(ab, uplo())+1 );
- return detail::pbequ( uplo(), n, bandwidth(ab, uplo()),
+ return detail::pbequ( uplo(), size_column(ab), bandwidth(ab, uplo()),
                 begin_value(ab), stride_major(ab), begin_value(s), scond,
                 amax );
     }
@@ -197,13 +195,12 @@
 // * VectorS&
 //
 template< typename MatrixAB, typename VectorS >
-inline std::ptrdiff_t pbequ( const fortran_int_t n,
- const MatrixAB& ab, VectorS& s, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& scond,
+inline std::ptrdiff_t pbequ( const MatrixAB& ab, VectorS& s,
         typename remove_imaginary< typename value<
- MatrixAB >::type >::type& amax ) {
- return pbequ_impl< typename value< MatrixAB >::type >::invoke( n, ab,
- s, scond, amax );
+ MatrixAB >::type >::type& scond, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& amax ) {
+ return pbequ_impl< typename value< MatrixAB >::type >::invoke( ab, s,
+ scond, amax );
 }
 
 //
@@ -211,13 +208,12 @@
 // * const VectorS&
 //
 template< typename MatrixAB, typename VectorS >
-inline std::ptrdiff_t pbequ( const fortran_int_t n,
- const MatrixAB& ab, const VectorS& s, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& scond,
+inline std::ptrdiff_t pbequ( const MatrixAB& ab, const VectorS& s,
         typename remove_imaginary< typename value<
- MatrixAB >::type >::type& amax ) {
- return pbequ_impl< typename value< MatrixAB >::type >::invoke( n, ab,
- s, scond, amax );
+ MatrixAB >::type >::type& scond, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& amax ) {
+ return pbequ_impl< typename value< MatrixAB >::type >::invoke( ab, s,
+ scond, amax );
 }
 
 } // namespace lapack

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbrfs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbrfs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbrfs.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -150,9 +150,8 @@
     template< typename MatrixAB, typename MatrixAFB, typename MatrixB,
             typename MatrixX, typename VectorFERR, typename VectorBERR,
             typename WORK, typename IWORK >
- static std::ptrdiff_t invoke( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const MatrixB& b,
- MatrixX& x, VectorFERR& ferr, VectorBERR& berr,
+ static std::ptrdiff_t invoke( const MatrixAB& ab, const MatrixAFB& afb,
+ const MatrixB& b, MatrixX& x, VectorFERR& ferr, VectorBERR& berr,
             detail::workspace2< WORK, IWORK > work ) {
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< MatrixAB >::type >::type,
@@ -178,22 +177,25 @@
         BOOST_STATIC_ASSERT( (is_mutable< VectorFERR >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorBERR >::value) );
         BOOST_ASSERT( bandwidth(ab, uplo()) >= 0 );
- BOOST_ASSERT( n >= 0 );
- BOOST_ASSERT( size(berr) >= size_column(x) );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
- min_size_iwork( n ));
- BOOST_ASSERT( size(work.select(real_type())) >= min_size_work( n ));
- BOOST_ASSERT( size_column(x) >= 0 );
+ min_size_iwork( size_column(ab) ));
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
+ size_column(ab) ));
+ BOOST_ASSERT( size_column(ab) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( size_minor(afb) == 1 || stride_minor(afb) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_minor(x) == 1 || stride_minor(x) == 1 );
         BOOST_ASSERT( stride_major(ab) >= bandwidth(ab, uplo())+1 );
         BOOST_ASSERT( stride_major(afb) >= bandwidth(ab, uplo())+1 );
- BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,n) );
- BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::pbrfs( uplo(), n, bandwidth(ab, uplo()),
- size_column(x), begin_value(ab), stride_major(ab),
+ BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
+ size_column(ab)) );
+ BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,
+ size_column(ab)) );
+ return detail::pbrfs( uplo(), size_column(ab), bandwidth(ab, uplo()),
+ size_column(b), begin_value(ab), stride_major(ab),
                 begin_value(afb), stride_major(afb), begin_value(b),
                 stride_major(b), begin_value(x), stride_major(x),
                 begin_value(ferr), begin_value(berr),
@@ -210,14 +212,14 @@
     //
     template< typename MatrixAB, typename MatrixAFB, typename MatrixB,
             typename MatrixX, typename VectorFERR, typename VectorBERR >
- static std::ptrdiff_t invoke( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const MatrixB& b,
- MatrixX& x, VectorFERR& ferr, VectorBERR& berr,
+ static std::ptrdiff_t invoke( const MatrixAB& ab, const MatrixAFB& afb,
+ const MatrixB& b, MatrixX& x, VectorFERR& ferr, VectorBERR& berr,
             minimal_workspace work ) {
- bindings::detail::array< real_type > tmp_work( min_size_work( n ) );
+ bindings::detail::array< real_type > tmp_work( min_size_work(
+ size_column(ab) ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
- min_size_iwork( n ) );
- return invoke( n, ab, afb, b, x, ferr, berr, workspace( tmp_work,
+ min_size_iwork( size_column(ab) ) );
+ return invoke( ab, afb, b, x, ferr, berr, workspace( tmp_work,
                 tmp_iwork ) );
     }
 
@@ -230,11 +232,10 @@
     //
     template< typename MatrixAB, typename MatrixAFB, typename MatrixB,
             typename MatrixX, typename VectorFERR, typename VectorBERR >
- static std::ptrdiff_t invoke( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const MatrixB& b,
- MatrixX& x, VectorFERR& ferr, VectorBERR& berr,
+ static std::ptrdiff_t invoke( const MatrixAB& ab, const MatrixAFB& afb,
+ const MatrixB& b, MatrixX& x, VectorFERR& ferr, VectorBERR& berr,
             optimal_workspace work ) {
- return invoke( n, ab, afb, b, x, ferr, berr, minimal_workspace() );
+ return invoke( ab, afb, b, x, ferr, berr, minimal_workspace() );
     }
 
     //
@@ -272,9 +273,8 @@
     template< typename MatrixAB, typename MatrixAFB, typename MatrixB,
             typename MatrixX, typename VectorFERR, typename VectorBERR,
             typename WORK, typename RWORK >
- static std::ptrdiff_t invoke( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const MatrixB& b,
- MatrixX& x, VectorFERR& ferr, VectorBERR& berr,
+ static std::ptrdiff_t invoke( const MatrixAB& ab, const MatrixAFB& afb,
+ const MatrixB& b, MatrixX& x, VectorFERR& ferr, VectorBERR& berr,
             detail::workspace2< WORK, RWORK > work ) {
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< VectorFERR >::type >::type,
@@ -296,21 +296,25 @@
         BOOST_STATIC_ASSERT( (is_mutable< VectorFERR >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorBERR >::value) );
         BOOST_ASSERT( bandwidth(ab, uplo()) >= 0 );
- BOOST_ASSERT( n >= 0 );
- BOOST_ASSERT( size(berr) >= size_column(x) );
- BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork( n ));
- BOOST_ASSERT( size(work.select(value_type())) >= min_size_work( n ));
- BOOST_ASSERT( size_column(x) >= 0 );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork(
+ size_column(ab) ));
+ BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
+ size_column(ab) ));
+ BOOST_ASSERT( size_column(ab) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( size_minor(afb) == 1 || stride_minor(afb) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_minor(x) == 1 || stride_minor(x) == 1 );
         BOOST_ASSERT( stride_major(ab) >= bandwidth(ab, uplo())+1 );
         BOOST_ASSERT( stride_major(afb) >= bandwidth(ab, uplo())+1 );
- BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,n) );
- BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::pbrfs( uplo(), n, bandwidth(ab, uplo()),
- size_column(x), begin_value(ab), stride_major(ab),
+ BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
+ size_column(ab)) );
+ BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,
+ size_column(ab)) );
+ return detail::pbrfs( uplo(), size_column(ab), bandwidth(ab, uplo()),
+ size_column(b), begin_value(ab), stride_major(ab),
                 begin_value(afb), stride_major(afb), begin_value(b),
                 stride_major(b), begin_value(x), stride_major(x),
                 begin_value(ferr), begin_value(berr),
@@ -327,13 +331,14 @@
     //
     template< typename MatrixAB, typename MatrixAFB, typename MatrixB,
             typename MatrixX, typename VectorFERR, typename VectorBERR >
- static std::ptrdiff_t invoke( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const MatrixB& b,
- MatrixX& x, VectorFERR& ferr, VectorBERR& berr,
+ static std::ptrdiff_t invoke( const MatrixAB& ab, const MatrixAFB& afb,
+ const MatrixB& b, MatrixX& x, VectorFERR& ferr, VectorBERR& berr,
             minimal_workspace work ) {
- bindings::detail::array< value_type > tmp_work( min_size_work( n ) );
- bindings::detail::array< real_type > tmp_rwork( min_size_rwork( n ) );
- return invoke( n, ab, afb, b, x, ferr, berr, workspace( tmp_work,
+ bindings::detail::array< value_type > tmp_work( min_size_work(
+ size_column(ab) ) );
+ bindings::detail::array< real_type > tmp_rwork( min_size_rwork(
+ size_column(ab) ) );
+ return invoke( ab, afb, b, x, ferr, berr, workspace( tmp_work,
                 tmp_rwork ) );
     }
 
@@ -346,11 +351,10 @@
     //
     template< typename MatrixAB, typename MatrixAFB, typename MatrixB,
             typename MatrixX, typename VectorFERR, typename VectorBERR >
- static std::ptrdiff_t invoke( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const MatrixB& b,
- MatrixX& x, VectorFERR& ferr, VectorBERR& berr,
+ static std::ptrdiff_t invoke( const MatrixAB& ab, const MatrixAFB& afb,
+ const MatrixB& b, MatrixX& x, VectorFERR& ferr, VectorBERR& berr,
             optimal_workspace work ) {
- return invoke( n, ab, afb, b, x, ferr, berr, minimal_workspace() );
+ return invoke( ab, afb, b, x, ferr, berr, minimal_workspace() );
     }
 
     //
@@ -390,10 +394,10 @@
 template< typename MatrixAB, typename MatrixAFB, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t pbrfs( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const MatrixB& b,
- MatrixX& x, VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
- return pbrfs_impl< typename value< MatrixAB >::type >::invoke( n, ab,
+inline std::ptrdiff_t pbrfs( const MatrixAB& ab, const MatrixAFB& afb,
+ const MatrixB& b, MatrixX& x, VectorFERR& ferr, VectorBERR& berr,
+ Workspace work ) {
+ return pbrfs_impl< typename value< MatrixAB >::type >::invoke( ab,
             afb, b, x, ferr, berr, work );
 }
 
@@ -406,10 +410,9 @@
 //
 template< typename MatrixAB, typename MatrixAFB, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t pbrfs( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const MatrixB& b,
- MatrixX& x, VectorFERR& ferr, VectorBERR& berr ) {
- return pbrfs_impl< typename value< MatrixAB >::type >::invoke( n, ab,
+inline std::ptrdiff_t pbrfs( const MatrixAB& ab, const MatrixAFB& afb,
+ const MatrixB& b, MatrixX& x, VectorFERR& ferr, VectorBERR& berr ) {
+ return pbrfs_impl< typename value< MatrixAB >::type >::invoke( ab,
             afb, b, x, ferr, berr, optimal_workspace() );
 }
 
@@ -423,11 +426,10 @@
 template< typename MatrixAB, typename MatrixAFB, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t pbrfs( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const MatrixB& b,
- const MatrixX& x, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
- return pbrfs_impl< typename value< MatrixAB >::type >::invoke( n, ab,
+inline std::ptrdiff_t pbrfs( const MatrixAB& ab, const MatrixAFB& afb,
+ const MatrixB& b, const MatrixX& x, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
+ return pbrfs_impl< typename value< MatrixAB >::type >::invoke( ab,
             afb, b, x, ferr, berr, work );
 }
 
@@ -440,10 +442,10 @@
 //
 template< typename MatrixAB, typename MatrixAFB, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t pbrfs( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const MatrixB& b,
- const MatrixX& x, VectorFERR& ferr, VectorBERR& berr ) {
- return pbrfs_impl< typename value< MatrixAB >::type >::invoke( n, ab,
+inline std::ptrdiff_t pbrfs( const MatrixAB& ab, const MatrixAFB& afb,
+ const MatrixB& b, const MatrixX& x, VectorFERR& ferr,
+ VectorBERR& berr ) {
+ return pbrfs_impl< typename value< MatrixAB >::type >::invoke( ab,
             afb, b, x, ferr, berr, optimal_workspace() );
 }
 
@@ -457,11 +459,10 @@
 template< typename MatrixAB, typename MatrixAFB, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t pbrfs( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const MatrixB& b,
- MatrixX& x, const VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
- return pbrfs_impl< typename value< MatrixAB >::type >::invoke( n, ab,
+inline std::ptrdiff_t pbrfs( const MatrixAB& ab, const MatrixAFB& afb,
+ const MatrixB& b, MatrixX& x, const VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
+ return pbrfs_impl< typename value< MatrixAB >::type >::invoke( ab,
             afb, b, x, ferr, berr, work );
 }
 
@@ -474,10 +475,10 @@
 //
 template< typename MatrixAB, typename MatrixAFB, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t pbrfs( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const MatrixB& b,
- MatrixX& x, const VectorFERR& ferr, VectorBERR& berr ) {
- return pbrfs_impl< typename value< MatrixAB >::type >::invoke( n, ab,
+inline std::ptrdiff_t pbrfs( const MatrixAB& ab, const MatrixAFB& afb,
+ const MatrixB& b, MatrixX& x, const VectorFERR& ferr,
+ VectorBERR& berr ) {
+ return pbrfs_impl< typename value< MatrixAB >::type >::invoke( ab,
             afb, b, x, ferr, berr, optimal_workspace() );
 }
 
@@ -491,11 +492,10 @@
 template< typename MatrixAB, typename MatrixAFB, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t pbrfs( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const MatrixB& b,
- const MatrixX& x, const VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
- return pbrfs_impl< typename value< MatrixAB >::type >::invoke( n, ab,
+inline std::ptrdiff_t pbrfs( const MatrixAB& ab, const MatrixAFB& afb,
+ const MatrixB& b, const MatrixX& x, const VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
+ return pbrfs_impl< typename value< MatrixAB >::type >::invoke( ab,
             afb, b, x, ferr, berr, work );
 }
 
@@ -508,10 +508,10 @@
 //
 template< typename MatrixAB, typename MatrixAFB, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t pbrfs( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const MatrixB& b,
- const MatrixX& x, const VectorFERR& ferr, VectorBERR& berr ) {
- return pbrfs_impl< typename value< MatrixAB >::type >::invoke( n, ab,
+inline std::ptrdiff_t pbrfs( const MatrixAB& ab, const MatrixAFB& afb,
+ const MatrixB& b, const MatrixX& x, const VectorFERR& ferr,
+ VectorBERR& berr ) {
+ return pbrfs_impl< typename value< MatrixAB >::type >::invoke( ab,
             afb, b, x, ferr, berr, optimal_workspace() );
 }
 
@@ -525,11 +525,10 @@
 template< typename MatrixAB, typename MatrixAFB, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t pbrfs( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const MatrixB& b,
- MatrixX& x, VectorFERR& ferr, const VectorBERR& berr,
- Workspace work ) {
- return pbrfs_impl< typename value< MatrixAB >::type >::invoke( n, ab,
+inline std::ptrdiff_t pbrfs( const MatrixAB& ab, const MatrixAFB& afb,
+ const MatrixB& b, MatrixX& x, VectorFERR& ferr,
+ const VectorBERR& berr, Workspace work ) {
+ return pbrfs_impl< typename value< MatrixAB >::type >::invoke( ab,
             afb, b, x, ferr, berr, work );
 }
 
@@ -542,10 +541,10 @@
 //
 template< typename MatrixAB, typename MatrixAFB, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t pbrfs( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const MatrixB& b,
- MatrixX& x, VectorFERR& ferr, const VectorBERR& berr ) {
- return pbrfs_impl< typename value< MatrixAB >::type >::invoke( n, ab,
+inline std::ptrdiff_t pbrfs( const MatrixAB& ab, const MatrixAFB& afb,
+ const MatrixB& b, MatrixX& x, VectorFERR& ferr,
+ const VectorBERR& berr ) {
+ return pbrfs_impl< typename value< MatrixAB >::type >::invoke( ab,
             afb, b, x, ferr, berr, optimal_workspace() );
 }
 
@@ -559,11 +558,10 @@
 template< typename MatrixAB, typename MatrixAFB, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t pbrfs( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const MatrixB& b,
- const MatrixX& x, VectorFERR& ferr, const VectorBERR& berr,
- Workspace work ) {
- return pbrfs_impl< typename value< MatrixAB >::type >::invoke( n, ab,
+inline std::ptrdiff_t pbrfs( const MatrixAB& ab, const MatrixAFB& afb,
+ const MatrixB& b, const MatrixX& x, VectorFERR& ferr,
+ const VectorBERR& berr, Workspace work ) {
+ return pbrfs_impl< typename value< MatrixAB >::type >::invoke( ab,
             afb, b, x, ferr, berr, work );
 }
 
@@ -576,10 +574,10 @@
 //
 template< typename MatrixAB, typename MatrixAFB, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t pbrfs( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const MatrixB& b,
- const MatrixX& x, VectorFERR& ferr, const VectorBERR& berr ) {
- return pbrfs_impl< typename value< MatrixAB >::type >::invoke( n, ab,
+inline std::ptrdiff_t pbrfs( const MatrixAB& ab, const MatrixAFB& afb,
+ const MatrixB& b, const MatrixX& x, VectorFERR& ferr,
+ const VectorBERR& berr ) {
+ return pbrfs_impl< typename value< MatrixAB >::type >::invoke( ab,
             afb, b, x, ferr, berr, optimal_workspace() );
 }
 
@@ -593,11 +591,10 @@
 template< typename MatrixAB, typename MatrixAFB, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t pbrfs( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const MatrixB& b,
- MatrixX& x, const VectorFERR& ferr, const VectorBERR& berr,
- Workspace work ) {
- return pbrfs_impl< typename value< MatrixAB >::type >::invoke( n, ab,
+inline std::ptrdiff_t pbrfs( const MatrixAB& ab, const MatrixAFB& afb,
+ const MatrixB& b, MatrixX& x, const VectorFERR& ferr,
+ const VectorBERR& berr, Workspace work ) {
+ return pbrfs_impl< typename value< MatrixAB >::type >::invoke( ab,
             afb, b, x, ferr, berr, work );
 }
 
@@ -610,10 +607,10 @@
 //
 template< typename MatrixAB, typename MatrixAFB, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t pbrfs( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const MatrixB& b,
- MatrixX& x, const VectorFERR& ferr, const VectorBERR& berr ) {
- return pbrfs_impl< typename value< MatrixAB >::type >::invoke( n, ab,
+inline std::ptrdiff_t pbrfs( const MatrixAB& ab, const MatrixAFB& afb,
+ const MatrixB& b, MatrixX& x, const VectorFERR& ferr,
+ const VectorBERR& berr ) {
+ return pbrfs_impl< typename value< MatrixAB >::type >::invoke( ab,
             afb, b, x, ferr, berr, optimal_workspace() );
 }
 
@@ -627,11 +624,10 @@
 template< typename MatrixAB, typename MatrixAFB, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t pbrfs( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const MatrixB& b,
- const MatrixX& x, const VectorFERR& ferr, const VectorBERR& berr,
- Workspace work ) {
- return pbrfs_impl< typename value< MatrixAB >::type >::invoke( n, ab,
+inline std::ptrdiff_t pbrfs( const MatrixAB& ab, const MatrixAFB& afb,
+ const MatrixB& b, const MatrixX& x, const VectorFERR& ferr,
+ const VectorBERR& berr, Workspace work ) {
+ return pbrfs_impl< typename value< MatrixAB >::type >::invoke( ab,
             afb, b, x, ferr, berr, work );
 }
 
@@ -644,10 +640,10 @@
 //
 template< typename MatrixAB, typename MatrixAFB, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t pbrfs( const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const MatrixB& b,
- const MatrixX& x, const VectorFERR& ferr, const VectorBERR& berr ) {
- return pbrfs_impl< typename value< MatrixAB >::type >::invoke( n, ab,
+inline std::ptrdiff_t pbrfs( const MatrixAB& ab, const MatrixAFB& afb,
+ const MatrixB& b, const MatrixX& x, const VectorFERR& ferr,
+ const VectorBERR& berr ) {
+ return pbrfs_impl< typename value< MatrixAB >::type >::invoke( ab,
             afb, b, x, ferr, berr, optimal_workspace() );
 }
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbstf.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbstf.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbstf.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -117,13 +117,13 @@
     // * Asserts that most arguments make sense.
     //
     template< typename MatrixAB >
- static std::ptrdiff_t invoke( const fortran_int_t n, MatrixAB& ab ) {
+ static std::ptrdiff_t invoke( MatrixAB& ab ) {
         BOOST_STATIC_ASSERT( (is_mutable< MatrixAB >::value) );
         BOOST_ASSERT( bandwidth(ab, uplo()) >= 0 );
- BOOST_ASSERT( n >= 0 );
+ BOOST_ASSERT( size_column(ab) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( stride_major(ab) >= bandwidth(ab, uplo())+1 );
- return detail::pbstf( uplo(), n, bandwidth(ab, uplo()),
+ return detail::pbstf( uplo(), size_column(ab), bandwidth(ab, uplo()),
                 begin_value(ab), stride_major(ab) );
     }
 
@@ -144,9 +144,8 @@
 // * MatrixAB&
 //
 template< typename MatrixAB >
-inline std::ptrdiff_t pbstf( const fortran_int_t n, MatrixAB& ab ) {
- return pbstf_impl< typename value< MatrixAB >::type >::invoke( n,
- ab );
+inline std::ptrdiff_t pbstf( MatrixAB& ab ) {
+ return pbstf_impl< typename value< MatrixAB >::type >::invoke( ab );
 }
 
 //
@@ -154,10 +153,8 @@
 // * const MatrixAB&
 //
 template< typename MatrixAB >
-inline std::ptrdiff_t pbstf( const fortran_int_t n,
- const MatrixAB& ab ) {
- return pbstf_impl< typename value< MatrixAB >::type >::invoke( n,
- ab );
+inline std::ptrdiff_t pbstf( const MatrixAB& ab ) {
+ return pbstf_impl< typename value< MatrixAB >::type >::invoke( ab );
 }
 
 } // namespace lapack

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbtrf.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbtrf.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbtrf.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -117,13 +117,13 @@
     // * Asserts that most arguments make sense.
     //
     template< typename MatrixAB >
- static std::ptrdiff_t invoke( const fortran_int_t n, MatrixAB& ab ) {
+ static std::ptrdiff_t invoke( MatrixAB& ab ) {
         BOOST_STATIC_ASSERT( (is_mutable< MatrixAB >::value) );
         BOOST_ASSERT( bandwidth(ab, uplo()) >= 0 );
- BOOST_ASSERT( n >= 0 );
+ BOOST_ASSERT( size_column(ab) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( stride_major(ab) >= bandwidth(ab, uplo())+1 );
- return detail::pbtrf( uplo(), n, bandwidth(ab, uplo()),
+ return detail::pbtrf( uplo(), size_column(ab), bandwidth(ab, uplo()),
                 begin_value(ab), stride_major(ab) );
     }
 
@@ -144,9 +144,8 @@
 // * MatrixAB&
 //
 template< typename MatrixAB >
-inline std::ptrdiff_t pbtrf( const fortran_int_t n, MatrixAB& ab ) {
- return pbtrf_impl< typename value< MatrixAB >::type >::invoke( n,
- ab );
+inline std::ptrdiff_t pbtrf( MatrixAB& ab ) {
+ return pbtrf_impl< typename value< MatrixAB >::type >::invoke( ab );
 }
 
 //
@@ -154,10 +153,8 @@
 // * const MatrixAB&
 //
 template< typename MatrixAB >
-inline std::ptrdiff_t pbtrf( const fortran_int_t n,
- const MatrixAB& ab ) {
- return pbtrf_impl< typename value< MatrixAB >::type >::invoke( n,
- ab );
+inline std::ptrdiff_t pbtrf( const MatrixAB& ab ) {
+ return pbtrf_impl< typename value< MatrixAB >::type >::invoke( ab );
 }
 
 } // namespace lapack

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbtrs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbtrs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbtrs.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -117,23 +117,24 @@
     // * Asserts that most arguments make sense.
     //
     template< typename MatrixAB, typename MatrixB >
- static std::ptrdiff_t invoke( const char uplo, const fortran_int_t n,
- const MatrixAB& ab, MatrixB& b ) {
+ static std::ptrdiff_t invoke( const char uplo, const MatrixAB& ab,
+ MatrixB& b ) {
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< MatrixAB >::type >::type,
                 typename remove_const< typename value<
                 MatrixB >::type >::type >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< MatrixB >::value) );
         BOOST_ASSERT( bandwidth(ab, uplo()) >= 0 );
- BOOST_ASSERT( n >= 0 );
+ BOOST_ASSERT( size_column(ab) >= 0 );
         BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( stride_major(ab) >= bandwidth(ab, uplo())+1 );
- BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::pbtrs( uplo, n, bandwidth(ab, uplo()), size_column(b),
- begin_value(ab), stride_major(ab), begin_value(b),
- stride_major(b) );
+ BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
+ size_column(ab)) );
+ return detail::pbtrs( uplo, size_column(ab), bandwidth(ab, uplo()),
+ size_column(b), begin_value(ab), stride_major(ab),
+ begin_value(b), stride_major(b) );
     }
 
 };
@@ -153,10 +154,10 @@
 // * MatrixB&
 //
 template< typename MatrixAB, typename MatrixB >
-inline std::ptrdiff_t pbtrs( const char uplo, const fortran_int_t n,
- const MatrixAB& ab, MatrixB& b ) {
+inline std::ptrdiff_t pbtrs( const char uplo, const MatrixAB& ab,
+ MatrixB& b ) {
     return pbtrs_impl< typename value< MatrixAB >::type >::invoke( uplo,
- n, ab, b );
+ ab, b );
 }
 
 //
@@ -164,10 +165,10 @@
 // * const MatrixB&
 //
 template< typename MatrixAB, typename MatrixB >
-inline std::ptrdiff_t pbtrs( const char uplo, const fortran_int_t n,
- const MatrixAB& ab, const MatrixB& b ) {
+inline std::ptrdiff_t pbtrs( const char uplo, const MatrixAB& ab,
+ const MatrixB& b ) {
     return pbtrs_impl< typename value< MatrixAB >::type >::invoke( uplo,
- n, ab, b );
+ ab, b );
 }
 
 } // namespace lapack

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/porfs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/porfs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/porfs.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -174,13 +174,13 @@
         BOOST_STATIC_ASSERT( (is_mutable< MatrixX >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorFERR >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorBERR >::value) );
- BOOST_ASSERT( size(berr) >= size_column(x) );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
                 min_size_iwork( size_column(a) ));
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
                 size_column(a) ));
         BOOST_ASSERT( size_column(a) >= 0 );
- BOOST_ASSERT( size_column(x) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(af) == 1 || stride_minor(af) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
@@ -193,7 +193,7 @@
                 size_column(a)) );
         BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,
                 size_column(a)) );
- return detail::porfs( uplo(), size_column(a), size_column(x),
+ return detail::porfs( uplo(), size_column(a), size_column(b),
                 begin_value(a), stride_major(a), begin_value(af),
                 stride_major(af), begin_value(b), stride_major(b),
                 begin_value(x), stride_major(x), begin_value(ferr),
@@ -296,13 +296,13 @@
         BOOST_STATIC_ASSERT( (is_mutable< MatrixX >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorFERR >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorBERR >::value) );
- BOOST_ASSERT( size(berr) >= size_column(x) );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork(
                 size_column(a) ));
         BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
                 size_column(a) ));
         BOOST_ASSERT( size_column(a) >= 0 );
- BOOST_ASSERT( size_column(x) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(af) == 1 || stride_minor(af) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
@@ -315,7 +315,7 @@
                 size_column(a)) );
         BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,
                 size_column(a)) );
- return detail::porfs( uplo(), size_column(a), size_column(x),
+ return detail::porfs( uplo(), size_column(a), size_column(b),
                 begin_value(a), stride_major(a), begin_value(af),
                 stride_major(af), begin_value(b), stride_major(b),
                 begin_value(x), stride_major(x), begin_value(ferr),

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pprfs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pprfs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pprfs.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -174,16 +174,16 @@
         BOOST_STATIC_ASSERT( (is_mutable< VectorBERR >::value) );
         BOOST_ASSERT( n >= 0 );
         BOOST_ASSERT( size(afp) >= n*(n+1)/2 );
- BOOST_ASSERT( size(berr) >= size_column(x) );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
                 min_size_iwork( n ));
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_work( n ));
- BOOST_ASSERT( size_column(x) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_minor(x) == 1 || stride_minor(x) == 1 );
         BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,n) );
         BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::pprfs( uplo(), n, size_column(x), begin_value(ap),
+ return detail::pprfs( uplo(), n, size_column(b), begin_value(ap),
                 begin_value(afp), begin_value(b), stride_major(b),
                 begin_value(x), stride_major(x), begin_value(ferr),
                 begin_value(berr), begin_value(work.select(real_type())),
@@ -286,15 +286,15 @@
         BOOST_STATIC_ASSERT( (is_mutable< VectorBERR >::value) );
         BOOST_ASSERT( n >= 0 );
         BOOST_ASSERT( size(afp) >= n*(n+1)/2 );
- BOOST_ASSERT( size(berr) >= size_column(x) );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork( n ));
         BOOST_ASSERT( size(work.select(value_type())) >= min_size_work( n ));
- BOOST_ASSERT( size_column(x) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_minor(x) == 1 || stride_minor(x) == 1 );
         BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,n) );
         BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::pprfs( uplo(), n, size_column(x), begin_value(ap),
+ return detail::pprfs( uplo(), n, size_column(b), begin_value(ap),
                 begin_value(afp), begin_value(b), stride_major(b),
                 begin_value(x), stride_major(x), begin_value(ferr),
                 begin_value(berr), begin_value(work.select(value_type())),

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pptrf.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pptrf.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pptrf.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -112,10 +112,10 @@
     // * Asserts that most arguments make sense.
     //
     template< typename MatrixAP >
- static std::ptrdiff_t invoke( const fortran_int_t n, MatrixAP& ap ) {
+ static std::ptrdiff_t invoke( MatrixAP& ap ) {
         BOOST_STATIC_ASSERT( (is_mutable< MatrixAP >::value) );
- BOOST_ASSERT( n >= 0 );
- return detail::pptrf( uplo(), n, begin_value(ap) );
+ BOOST_ASSERT( size_column(ap) >= 0 );
+ return detail::pptrf( uplo(), size_column(ap), begin_value(ap) );
     }
 
 };
@@ -135,9 +135,8 @@
 // * MatrixAP&
 //
 template< typename MatrixAP >
-inline std::ptrdiff_t pptrf( const fortran_int_t n, MatrixAP& ap ) {
- return pptrf_impl< typename value< MatrixAP >::type >::invoke( n,
- ap );
+inline std::ptrdiff_t pptrf( MatrixAP& ap ) {
+ return pptrf_impl< typename value< MatrixAP >::type >::invoke( ap );
 }
 
 //
@@ -145,10 +144,8 @@
 // * const MatrixAP&
 //
 template< typename MatrixAP >
-inline std::ptrdiff_t pptrf( const fortran_int_t n,
- const MatrixAP& ap ) {
- return pptrf_impl< typename value< MatrixAP >::type >::invoke( n,
- ap );
+inline std::ptrdiff_t pptrf( const MatrixAP& ap ) {
+ return pptrf_impl< typename value< MatrixAP >::type >::invoke( ap );
 }
 
 } // namespace lapack

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sbgst.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sbgst.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sbgst.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -98,9 +98,8 @@
     //
     template< typename MatrixAB, typename MatrixBB, typename MatrixX,
             typename WORK >
- static std::ptrdiff_t invoke( const char vect, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, MatrixX& x, detail::workspace1<
- WORK > work ) {
+ static std::ptrdiff_t invoke( const char vect, MatrixAB& ab,
+ const MatrixBB& bb, MatrixX& x, detail::workspace1< WORK > work ) {
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< MatrixAB >::type >::type,
                 typename remove_const< typename value<
@@ -113,18 +112,20 @@
         BOOST_STATIC_ASSERT( (is_mutable< MatrixX >::value) );
         BOOST_ASSERT( bandwidth(ab, uplo()) >= 0 );
         BOOST_ASSERT( bandwidth(bb, uplo()) >= bandwidth(bb, uplo()) );
- BOOST_ASSERT( n >= 0 );
- BOOST_ASSERT( size(work.select(real_type())) >= min_size_work( n ));
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
+ size_column(ab) ));
+ BOOST_ASSERT( size_column(ab) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( size_minor(bb) == 1 || stride_minor(bb) == 1 );
         BOOST_ASSERT( size_minor(x) == 1 || stride_minor(x) == 1 );
         BOOST_ASSERT( stride_major(ab) >= bandwidth(ab, uplo())+1 );
         BOOST_ASSERT( stride_major(bb) >= bandwidth(bb, uplo())+1 );
         BOOST_ASSERT( vect == 'N' || vect == 'V' );
- return detail::sbgst( vect, uplo(), n, bandwidth(ab, uplo()),
- bandwidth(bb, uplo()), begin_value(ab), stride_major(ab),
- begin_value(bb), stride_major(bb), begin_value(x),
- stride_major(x), begin_value(work.select(real_type())) );
+ return detail::sbgst( vect, uplo(), size_column(ab), bandwidth(ab,
+ uplo()), bandwidth(bb, uplo()), begin_value(ab),
+ stride_major(ab), begin_value(bb), stride_major(bb),
+ begin_value(x), stride_major(x),
+ begin_value(work.select(real_type())) );
     }
 
     //
@@ -135,11 +136,11 @@
     // * Enables the unblocked algorithm (BLAS level 2)
     //
     template< typename MatrixAB, typename MatrixBB, typename MatrixX >
- static std::ptrdiff_t invoke( const char vect, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, MatrixX& x,
- minimal_workspace work ) {
- bindings::detail::array< real_type > tmp_work( min_size_work( n ) );
- return invoke( vect, n, ab, bb, x, workspace( tmp_work ) );
+ static std::ptrdiff_t invoke( const char vect, MatrixAB& ab,
+ const MatrixBB& bb, MatrixX& x, minimal_workspace work ) {
+ bindings::detail::array< real_type > tmp_work( min_size_work(
+ size_column(ab) ) );
+ return invoke( vect, ab, bb, x, workspace( tmp_work ) );
     }
 
     //
@@ -150,10 +151,9 @@
     // * Enables the blocked algorithm (BLAS level 3)
     //
     template< typename MatrixAB, typename MatrixBB, typename MatrixX >
- static std::ptrdiff_t invoke( const char vect, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, MatrixX& x,
- optimal_workspace work ) {
- return invoke( vect, n, ab, bb, x, minimal_workspace() );
+ static std::ptrdiff_t invoke( const char vect, MatrixAB& ab,
+ const MatrixBB& bb, MatrixX& x, optimal_workspace work ) {
+ return invoke( vect, ab, bb, x, minimal_workspace() );
     }
 
     //
@@ -183,10 +183,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename MatrixX,
         typename Workspace >
-inline std::ptrdiff_t sbgst( const char vect, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, MatrixX& x, Workspace work ) {
+inline std::ptrdiff_t sbgst( const char vect, MatrixAB& ab,
+ const MatrixBB& bb, MatrixX& x, Workspace work ) {
     return sbgst_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, bb, x, work );
+ ab, bb, x, work );
 }
 
 //
@@ -196,10 +196,10 @@
 // * Default workspace-type (optimal)
 //
 template< typename MatrixAB, typename MatrixBB, typename MatrixX >
-inline std::ptrdiff_t sbgst( const char vect, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, MatrixX& x ) {
+inline std::ptrdiff_t sbgst( const char vect, MatrixAB& ab,
+ const MatrixBB& bb, MatrixX& x ) {
     return sbgst_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, bb, x, optimal_workspace() );
+ ab, bb, x, optimal_workspace() );
 }
 
 //
@@ -210,10 +210,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename MatrixX,
         typename Workspace >
-inline std::ptrdiff_t sbgst( const char vect, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, MatrixX& x, Workspace work ) {
+inline std::ptrdiff_t sbgst( const char vect, const MatrixAB& ab,
+ const MatrixBB& bb, MatrixX& x, Workspace work ) {
     return sbgst_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, bb, x, work );
+ ab, bb, x, work );
 }
 
 //
@@ -223,10 +223,10 @@
 // * Default workspace-type (optimal)
 //
 template< typename MatrixAB, typename MatrixBB, typename MatrixX >
-inline std::ptrdiff_t sbgst( const char vect, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, MatrixX& x ) {
+inline std::ptrdiff_t sbgst( const char vect, const MatrixAB& ab,
+ const MatrixBB& bb, MatrixX& x ) {
     return sbgst_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, bb, x, optimal_workspace() );
+ ab, bb, x, optimal_workspace() );
 }
 
 //
@@ -237,10 +237,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename MatrixX,
         typename Workspace >
-inline std::ptrdiff_t sbgst( const char vect, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, const MatrixX& x, Workspace work ) {
+inline std::ptrdiff_t sbgst( const char vect, MatrixAB& ab,
+ const MatrixBB& bb, const MatrixX& x, Workspace work ) {
     return sbgst_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, bb, x, work );
+ ab, bb, x, work );
 }
 
 //
@@ -250,10 +250,10 @@
 // * Default workspace-type (optimal)
 //
 template< typename MatrixAB, typename MatrixBB, typename MatrixX >
-inline std::ptrdiff_t sbgst( const char vect, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, const MatrixX& x ) {
+inline std::ptrdiff_t sbgst( const char vect, MatrixAB& ab,
+ const MatrixBB& bb, const MatrixX& x ) {
     return sbgst_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, bb, x, optimal_workspace() );
+ ab, bb, x, optimal_workspace() );
 }
 
 //
@@ -264,11 +264,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename MatrixX,
         typename Workspace >
-inline std::ptrdiff_t sbgst( const char vect, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, const MatrixX& x,
- Workspace work ) {
+inline std::ptrdiff_t sbgst( const char vect, const MatrixAB& ab,
+ const MatrixBB& bb, const MatrixX& x, Workspace work ) {
     return sbgst_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, bb, x, work );
+ ab, bb, x, work );
 }
 
 //
@@ -278,10 +277,10 @@
 // * Default workspace-type (optimal)
 //
 template< typename MatrixAB, typename MatrixBB, typename MatrixX >
-inline std::ptrdiff_t sbgst( const char vect, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, const MatrixX& x ) {
+inline std::ptrdiff_t sbgst( const char vect, const MatrixAB& ab,
+ const MatrixBB& bb, const MatrixX& x ) {
     return sbgst_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, bb, x, optimal_workspace() );
+ ab, bb, x, optimal_workspace() );
 }
 
 } // namespace lapack

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sbtrd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sbtrd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sbtrd.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -97,9 +97,8 @@
     //
     template< typename MatrixAB, typename VectorD, typename VectorE,
             typename MatrixQ, typename WORK >
- static std::ptrdiff_t invoke( const char vect, const fortran_int_t n,
- MatrixAB& ab, VectorD& d, VectorE& e, MatrixQ& q,
- detail::workspace1< WORK > work ) {
+ static std::ptrdiff_t invoke( const char vect, MatrixAB& ab, VectorD& d,
+ VectorE& e, MatrixQ& q, detail::workspace1< WORK > work ) {
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< MatrixAB >::type >::type,
                 typename remove_const< typename value<
@@ -117,15 +116,16 @@
         BOOST_STATIC_ASSERT( (is_mutable< VectorE >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< MatrixQ >::value) );
         BOOST_ASSERT( bandwidth(ab, uplo()) >= 0 );
- BOOST_ASSERT( n >= 0 );
- BOOST_ASSERT( size(d) >= n );
- BOOST_ASSERT( size(work.select(real_type())) >= min_size_work( n ));
+ BOOST_ASSERT( size(d) >= size_column(ab) );
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
+ size_column(ab) ));
+ BOOST_ASSERT( size_column(ab) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( size_minor(q) == 1 || stride_minor(q) == 1 );
         BOOST_ASSERT( stride_major(ab) >= bandwidth(ab, uplo())+1 );
         BOOST_ASSERT( vect == 'N' || vect == 'V' || vect == 'U' );
- return detail::sbtrd( vect, uplo(), n, bandwidth(ab, uplo()),
- begin_value(ab), stride_major(ab), begin_value(d),
+ return detail::sbtrd( vect, uplo(), size_column(ab), bandwidth(ab,
+ uplo()), begin_value(ab), stride_major(ab), begin_value(d),
                 begin_value(e), begin_value(q), stride_major(q),
                 begin_value(work.select(real_type())) );
     }
@@ -139,11 +139,11 @@
     //
     template< typename MatrixAB, typename VectorD, typename VectorE,
             typename MatrixQ >
- static std::ptrdiff_t invoke( const char vect, const fortran_int_t n,
- MatrixAB& ab, VectorD& d, VectorE& e, MatrixQ& q,
- minimal_workspace work ) {
- bindings::detail::array< real_type > tmp_work( min_size_work( n ) );
- return invoke( vect, n, ab, d, e, q, workspace( tmp_work ) );
+ static std::ptrdiff_t invoke( const char vect, MatrixAB& ab, VectorD& d,
+ VectorE& e, MatrixQ& q, minimal_workspace work ) {
+ bindings::detail::array< real_type > tmp_work( min_size_work(
+ size_column(ab) ) );
+ return invoke( vect, ab, d, e, q, workspace( tmp_work ) );
     }
 
     //
@@ -155,10 +155,9 @@
     //
     template< typename MatrixAB, typename VectorD, typename VectorE,
             typename MatrixQ >
- static std::ptrdiff_t invoke( const char vect, const fortran_int_t n,
- MatrixAB& ab, VectorD& d, VectorE& e, MatrixQ& q,
- optimal_workspace work ) {
- return invoke( vect, n, ab, d, e, q, minimal_workspace() );
+ static std::ptrdiff_t invoke( const char vect, MatrixAB& ab, VectorD& d,
+ VectorE& e, MatrixQ& q, optimal_workspace work ) {
+ return invoke( vect, ab, d, e, q, minimal_workspace() );
     }
 
     //
@@ -190,10 +189,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ, typename Workspace >
-inline std::ptrdiff_t sbtrd( const char vect, const fortran_int_t n,
- MatrixAB& ab, VectorD& d, VectorE& e, MatrixQ& q, Workspace work ) {
+inline std::ptrdiff_t sbtrd( const char vect, MatrixAB& ab, VectorD& d,
+ VectorE& e, MatrixQ& q, Workspace work ) {
     return sbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, work );
+ ab, d, e, q, work );
 }
 
 //
@@ -206,10 +205,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ >
-inline std::ptrdiff_t sbtrd( const char vect, const fortran_int_t n,
- MatrixAB& ab, VectorD& d, VectorE& e, MatrixQ& q ) {
+inline std::ptrdiff_t sbtrd( const char vect, MatrixAB& ab, VectorD& d,
+ VectorE& e, MatrixQ& q ) {
     return sbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, optimal_workspace() );
+ ab, d, e, q, optimal_workspace() );
 }
 
 //
@@ -222,11 +221,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ, typename Workspace >
-inline std::ptrdiff_t sbtrd( const char vect, const fortran_int_t n,
- const MatrixAB& ab, VectorD& d, VectorE& e, MatrixQ& q,
- Workspace work ) {
+inline std::ptrdiff_t sbtrd( const char vect, const MatrixAB& ab,
+ VectorD& d, VectorE& e, MatrixQ& q, Workspace work ) {
     return sbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, work );
+ ab, d, e, q, work );
 }
 
 //
@@ -239,10 +237,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ >
-inline std::ptrdiff_t sbtrd( const char vect, const fortran_int_t n,
- const MatrixAB& ab, VectorD& d, VectorE& e, MatrixQ& q ) {
+inline std::ptrdiff_t sbtrd( const char vect, const MatrixAB& ab,
+ VectorD& d, VectorE& e, MatrixQ& q ) {
     return sbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, optimal_workspace() );
+ ab, d, e, q, optimal_workspace() );
 }
 
 //
@@ -255,11 +253,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ, typename Workspace >
-inline std::ptrdiff_t sbtrd( const char vect, const fortran_int_t n,
- MatrixAB& ab, const VectorD& d, VectorE& e, MatrixQ& q,
- Workspace work ) {
+inline std::ptrdiff_t sbtrd( const char vect, MatrixAB& ab,
+ const VectorD& d, VectorE& e, MatrixQ& q, Workspace work ) {
     return sbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, work );
+ ab, d, e, q, work );
 }
 
 //
@@ -272,10 +269,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ >
-inline std::ptrdiff_t sbtrd( const char vect, const fortran_int_t n,
- MatrixAB& ab, const VectorD& d, VectorE& e, MatrixQ& q ) {
+inline std::ptrdiff_t sbtrd( const char vect, MatrixAB& ab,
+ const VectorD& d, VectorE& e, MatrixQ& q ) {
     return sbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, optimal_workspace() );
+ ab, d, e, q, optimal_workspace() );
 }
 
 //
@@ -288,11 +285,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ, typename Workspace >
-inline std::ptrdiff_t sbtrd( const char vect, const fortran_int_t n,
- const MatrixAB& ab, const VectorD& d, VectorE& e, MatrixQ& q,
- Workspace work ) {
+inline std::ptrdiff_t sbtrd( const char vect, const MatrixAB& ab,
+ const VectorD& d, VectorE& e, MatrixQ& q, Workspace work ) {
     return sbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, work );
+ ab, d, e, q, work );
 }
 
 //
@@ -305,10 +301,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ >
-inline std::ptrdiff_t sbtrd( const char vect, const fortran_int_t n,
- const MatrixAB& ab, const VectorD& d, VectorE& e, MatrixQ& q ) {
+inline std::ptrdiff_t sbtrd( const char vect, const MatrixAB& ab,
+ const VectorD& d, VectorE& e, MatrixQ& q ) {
     return sbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, optimal_workspace() );
+ ab, d, e, q, optimal_workspace() );
 }
 
 //
@@ -321,11 +317,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ, typename Workspace >
-inline std::ptrdiff_t sbtrd( const char vect, const fortran_int_t n,
- MatrixAB& ab, VectorD& d, const VectorE& e, MatrixQ& q,
- Workspace work ) {
+inline std::ptrdiff_t sbtrd( const char vect, MatrixAB& ab, VectorD& d,
+ const VectorE& e, MatrixQ& q, Workspace work ) {
     return sbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, work );
+ ab, d, e, q, work );
 }
 
 //
@@ -338,10 +333,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ >
-inline std::ptrdiff_t sbtrd( const char vect, const fortran_int_t n,
- MatrixAB& ab, VectorD& d, const VectorE& e, MatrixQ& q ) {
+inline std::ptrdiff_t sbtrd( const char vect, MatrixAB& ab, VectorD& d,
+ const VectorE& e, MatrixQ& q ) {
     return sbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, optimal_workspace() );
+ ab, d, e, q, optimal_workspace() );
 }
 
 //
@@ -354,11 +349,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ, typename Workspace >
-inline std::ptrdiff_t sbtrd( const char vect, const fortran_int_t n,
- const MatrixAB& ab, VectorD& d, const VectorE& e, MatrixQ& q,
- Workspace work ) {
+inline std::ptrdiff_t sbtrd( const char vect, const MatrixAB& ab,
+ VectorD& d, const VectorE& e, MatrixQ& q, Workspace work ) {
     return sbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, work );
+ ab, d, e, q, work );
 }
 
 //
@@ -371,10 +365,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ >
-inline std::ptrdiff_t sbtrd( const char vect, const fortran_int_t n,
- const MatrixAB& ab, VectorD& d, const VectorE& e, MatrixQ& q ) {
+inline std::ptrdiff_t sbtrd( const char vect, const MatrixAB& ab,
+ VectorD& d, const VectorE& e, MatrixQ& q ) {
     return sbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, optimal_workspace() );
+ ab, d, e, q, optimal_workspace() );
 }
 
 //
@@ -387,11 +381,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ, typename Workspace >
-inline std::ptrdiff_t sbtrd( const char vect, const fortran_int_t n,
- MatrixAB& ab, const VectorD& d, const VectorE& e, MatrixQ& q,
- Workspace work ) {
+inline std::ptrdiff_t sbtrd( const char vect, MatrixAB& ab,
+ const VectorD& d, const VectorE& e, MatrixQ& q, Workspace work ) {
     return sbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, work );
+ ab, d, e, q, work );
 }
 
 //
@@ -404,10 +397,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ >
-inline std::ptrdiff_t sbtrd( const char vect, const fortran_int_t n,
- MatrixAB& ab, const VectorD& d, const VectorE& e, MatrixQ& q ) {
+inline std::ptrdiff_t sbtrd( const char vect, MatrixAB& ab,
+ const VectorD& d, const VectorE& e, MatrixQ& q ) {
     return sbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, optimal_workspace() );
+ ab, d, e, q, optimal_workspace() );
 }
 
 //
@@ -420,11 +413,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ, typename Workspace >
-inline std::ptrdiff_t sbtrd( const char vect, const fortran_int_t n,
- const MatrixAB& ab, const VectorD& d, const VectorE& e, MatrixQ& q,
- Workspace work ) {
+inline std::ptrdiff_t sbtrd( const char vect, const MatrixAB& ab,
+ const VectorD& d, const VectorE& e, MatrixQ& q, Workspace work ) {
     return sbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, work );
+ ab, d, e, q, work );
 }
 
 //
@@ -437,10 +429,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ >
-inline std::ptrdiff_t sbtrd( const char vect, const fortran_int_t n,
- const MatrixAB& ab, const VectorD& d, const VectorE& e, MatrixQ& q ) {
+inline std::ptrdiff_t sbtrd( const char vect, const MatrixAB& ab,
+ const VectorD& d, const VectorE& e, MatrixQ& q ) {
     return sbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, optimal_workspace() );
+ ab, d, e, q, optimal_workspace() );
 }
 
 //
@@ -453,11 +445,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ, typename Workspace >
-inline std::ptrdiff_t sbtrd( const char vect, const fortran_int_t n,
- MatrixAB& ab, VectorD& d, VectorE& e, const MatrixQ& q,
- Workspace work ) {
+inline std::ptrdiff_t sbtrd( const char vect, MatrixAB& ab, VectorD& d,
+ VectorE& e, const MatrixQ& q, Workspace work ) {
     return sbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, work );
+ ab, d, e, q, work );
 }
 
 //
@@ -470,10 +461,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ >
-inline std::ptrdiff_t sbtrd( const char vect, const fortran_int_t n,
- MatrixAB& ab, VectorD& d, VectorE& e, const MatrixQ& q ) {
+inline std::ptrdiff_t sbtrd( const char vect, MatrixAB& ab, VectorD& d,
+ VectorE& e, const MatrixQ& q ) {
     return sbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, optimal_workspace() );
+ ab, d, e, q, optimal_workspace() );
 }
 
 //
@@ -486,11 +477,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ, typename Workspace >
-inline std::ptrdiff_t sbtrd( const char vect, const fortran_int_t n,
- const MatrixAB& ab, VectorD& d, VectorE& e, const MatrixQ& q,
- Workspace work ) {
+inline std::ptrdiff_t sbtrd( const char vect, const MatrixAB& ab,
+ VectorD& d, VectorE& e, const MatrixQ& q, Workspace work ) {
     return sbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, work );
+ ab, d, e, q, work );
 }
 
 //
@@ -503,10 +493,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ >
-inline std::ptrdiff_t sbtrd( const char vect, const fortran_int_t n,
- const MatrixAB& ab, VectorD& d, VectorE& e, const MatrixQ& q ) {
+inline std::ptrdiff_t sbtrd( const char vect, const MatrixAB& ab,
+ VectorD& d, VectorE& e, const MatrixQ& q ) {
     return sbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, optimal_workspace() );
+ ab, d, e, q, optimal_workspace() );
 }
 
 //
@@ -519,11 +509,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ, typename Workspace >
-inline std::ptrdiff_t sbtrd( const char vect, const fortran_int_t n,
- MatrixAB& ab, const VectorD& d, VectorE& e, const MatrixQ& q,
- Workspace work ) {
+inline std::ptrdiff_t sbtrd( const char vect, MatrixAB& ab,
+ const VectorD& d, VectorE& e, const MatrixQ& q, Workspace work ) {
     return sbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, work );
+ ab, d, e, q, work );
 }
 
 //
@@ -536,10 +525,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ >
-inline std::ptrdiff_t sbtrd( const char vect, const fortran_int_t n,
- MatrixAB& ab, const VectorD& d, VectorE& e, const MatrixQ& q ) {
+inline std::ptrdiff_t sbtrd( const char vect, MatrixAB& ab,
+ const VectorD& d, VectorE& e, const MatrixQ& q ) {
     return sbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, optimal_workspace() );
+ ab, d, e, q, optimal_workspace() );
 }
 
 //
@@ -552,11 +541,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ, typename Workspace >
-inline std::ptrdiff_t sbtrd( const char vect, const fortran_int_t n,
- const MatrixAB& ab, const VectorD& d, VectorE& e, const MatrixQ& q,
- Workspace work ) {
+inline std::ptrdiff_t sbtrd( const char vect, const MatrixAB& ab,
+ const VectorD& d, VectorE& e, const MatrixQ& q, Workspace work ) {
     return sbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, work );
+ ab, d, e, q, work );
 }
 
 //
@@ -569,10 +557,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ >
-inline std::ptrdiff_t sbtrd( const char vect, const fortran_int_t n,
- const MatrixAB& ab, const VectorD& d, VectorE& e, const MatrixQ& q ) {
+inline std::ptrdiff_t sbtrd( const char vect, const MatrixAB& ab,
+ const VectorD& d, VectorE& e, const MatrixQ& q ) {
     return sbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, optimal_workspace() );
+ ab, d, e, q, optimal_workspace() );
 }
 
 //
@@ -585,11 +573,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ, typename Workspace >
-inline std::ptrdiff_t sbtrd( const char vect, const fortran_int_t n,
- MatrixAB& ab, VectorD& d, const VectorE& e, const MatrixQ& q,
- Workspace work ) {
+inline std::ptrdiff_t sbtrd( const char vect, MatrixAB& ab, VectorD& d,
+ const VectorE& e, const MatrixQ& q, Workspace work ) {
     return sbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, work );
+ ab, d, e, q, work );
 }
 
 //
@@ -602,10 +589,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ >
-inline std::ptrdiff_t sbtrd( const char vect, const fortran_int_t n,
- MatrixAB& ab, VectorD& d, const VectorE& e, const MatrixQ& q ) {
+inline std::ptrdiff_t sbtrd( const char vect, MatrixAB& ab, VectorD& d,
+ const VectorE& e, const MatrixQ& q ) {
     return sbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, optimal_workspace() );
+ ab, d, e, q, optimal_workspace() );
 }
 
 //
@@ -618,11 +605,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ, typename Workspace >
-inline std::ptrdiff_t sbtrd( const char vect, const fortran_int_t n,
- const MatrixAB& ab, VectorD& d, const VectorE& e, const MatrixQ& q,
- Workspace work ) {
+inline std::ptrdiff_t sbtrd( const char vect, const MatrixAB& ab,
+ VectorD& d, const VectorE& e, const MatrixQ& q, Workspace work ) {
     return sbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, work );
+ ab, d, e, q, work );
 }
 
 //
@@ -635,10 +621,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ >
-inline std::ptrdiff_t sbtrd( const char vect, const fortran_int_t n,
- const MatrixAB& ab, VectorD& d, const VectorE& e, const MatrixQ& q ) {
+inline std::ptrdiff_t sbtrd( const char vect, const MatrixAB& ab,
+ VectorD& d, const VectorE& e, const MatrixQ& q ) {
     return sbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, optimal_workspace() );
+ ab, d, e, q, optimal_workspace() );
 }
 
 //
@@ -651,11 +637,11 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ, typename Workspace >
-inline std::ptrdiff_t sbtrd( const char vect, const fortran_int_t n,
- MatrixAB& ab, const VectorD& d, const VectorE& e, const MatrixQ& q,
+inline std::ptrdiff_t sbtrd( const char vect, MatrixAB& ab,
+ const VectorD& d, const VectorE& e, const MatrixQ& q,
         Workspace work ) {
     return sbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, work );
+ ab, d, e, q, work );
 }
 
 //
@@ -668,10 +654,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ >
-inline std::ptrdiff_t sbtrd( const char vect, const fortran_int_t n,
- MatrixAB& ab, const VectorD& d, const VectorE& e, const MatrixQ& q ) {
+inline std::ptrdiff_t sbtrd( const char vect, MatrixAB& ab,
+ const VectorD& d, const VectorE& e, const MatrixQ& q ) {
     return sbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, optimal_workspace() );
+ ab, d, e, q, optimal_workspace() );
 }
 
 //
@@ -684,11 +670,11 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ, typename Workspace >
-inline std::ptrdiff_t sbtrd( const char vect, const fortran_int_t n,
- const MatrixAB& ab, const VectorD& d, const VectorE& e,
- const MatrixQ& q, Workspace work ) {
+inline std::ptrdiff_t sbtrd( const char vect, const MatrixAB& ab,
+ const VectorD& d, const VectorE& e, const MatrixQ& q,
+ Workspace work ) {
     return sbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, work );
+ ab, d, e, q, work );
 }
 
 //
@@ -701,11 +687,10 @@
 //
 template< typename MatrixAB, typename VectorD, typename VectorE,
         typename MatrixQ >
-inline std::ptrdiff_t sbtrd( const char vect, const fortran_int_t n,
- const MatrixAB& ab, const VectorD& d, const VectorE& e,
- const MatrixQ& q ) {
+inline std::ptrdiff_t sbtrd( const char vect, const MatrixAB& ab,
+ const VectorD& d, const VectorE& e, const MatrixQ& q ) {
     return sbtrd_impl< typename value< MatrixAB >::type >::invoke( vect,
- n, ab, d, e, q, optimal_workspace() );
+ ab, d, e, q, optimal_workspace() );
 }
 
 } // namespace lapack

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sprfs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sprfs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sprfs.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -174,17 +174,17 @@
         BOOST_STATIC_ASSERT( (is_mutable< VectorBERR >::value) );
         BOOST_ASSERT( n >= 0 );
         BOOST_ASSERT( size(afp) >= n*(n+1)/2 );
- BOOST_ASSERT( size(berr) >= size_column(x) );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
         BOOST_ASSERT( size(ipiv) >= n );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
                 min_size_iwork( n ));
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_work( n ));
- BOOST_ASSERT( size_column(x) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_minor(x) == 1 || stride_minor(x) == 1 );
         BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,n) );
         BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::sprfs( uplo(), n, size_column(x), begin_value(ap),
+ return detail::sprfs( uplo(), n, size_column(b), begin_value(ap),
                 begin_value(afp), begin_value(ipiv), begin_value(b),
                 stride_major(b), begin_value(x), stride_major(x),
                 begin_value(ferr), begin_value(berr),
@@ -291,16 +291,16 @@
         BOOST_STATIC_ASSERT( (is_mutable< VectorBERR >::value) );
         BOOST_ASSERT( n >= 0 );
         BOOST_ASSERT( size(afp) >= n*(n+1)/2 );
- BOOST_ASSERT( size(berr) >= size_column(x) );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
         BOOST_ASSERT( size(ipiv) >= n );
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork( n ));
         BOOST_ASSERT( size(work.select(value_type())) >= min_size_work( n ));
- BOOST_ASSERT( size_column(x) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_minor(x) == 1 || stride_minor(x) == 1 );
         BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,n) );
         BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::sprfs( uplo(), n, size_column(x), begin_value(ap),
+ return detail::sprfs( uplo(), n, size_column(b), begin_value(ap),
                 begin_value(afp), begin_value(ipiv), begin_value(b),
                 stride_major(b), begin_value(x), stride_major(x),
                 begin_value(ferr), begin_value(berr),

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sptrf.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sptrf.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sptrf.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -114,12 +114,12 @@
     // * Asserts that most arguments make sense.
     //
     template< typename MatrixAP, typename VectorIPIV >
- static std::ptrdiff_t invoke( const fortran_int_t n, MatrixAP& ap,
- VectorIPIV& ipiv ) {
+ static std::ptrdiff_t invoke( MatrixAP& ap, VectorIPIV& ipiv ) {
         BOOST_STATIC_ASSERT( (is_mutable< MatrixAP >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorIPIV >::value) );
- BOOST_ASSERT( n >= 0 );
- return detail::sptrf( uplo(), n, begin_value(ap), begin_value(ipiv) );
+ BOOST_ASSERT( size_column(ap) >= 0 );
+ return detail::sptrf( uplo(), size_column(ap), begin_value(ap),
+ begin_value(ipiv) );
     }
 
 };
@@ -140,9 +140,8 @@
 // * VectorIPIV&
 //
 template< typename MatrixAP, typename VectorIPIV >
-inline std::ptrdiff_t sptrf( const fortran_int_t n, MatrixAP& ap,
- VectorIPIV& ipiv ) {
- return sptrf_impl< typename value< MatrixAP >::type >::invoke( n, ap,
+inline std::ptrdiff_t sptrf( MatrixAP& ap, VectorIPIV& ipiv ) {
+ return sptrf_impl< typename value< MatrixAP >::type >::invoke( ap,
             ipiv );
 }
 
@@ -152,9 +151,8 @@
 // * VectorIPIV&
 //
 template< typename MatrixAP, typename VectorIPIV >
-inline std::ptrdiff_t sptrf( const fortran_int_t n,
- const MatrixAP& ap, VectorIPIV& ipiv ) {
- return sptrf_impl< typename value< MatrixAP >::type >::invoke( n, ap,
+inline std::ptrdiff_t sptrf( const MatrixAP& ap, VectorIPIV& ipiv ) {
+ return sptrf_impl< typename value< MatrixAP >::type >::invoke( ap,
             ipiv );
 }
 
@@ -164,9 +162,8 @@
 // * const VectorIPIV&
 //
 template< typename MatrixAP, typename VectorIPIV >
-inline std::ptrdiff_t sptrf( const fortran_int_t n, MatrixAP& ap,
- const VectorIPIV& ipiv ) {
- return sptrf_impl< typename value< MatrixAP >::type >::invoke( n, ap,
+inline std::ptrdiff_t sptrf( MatrixAP& ap, const VectorIPIV& ipiv ) {
+ return sptrf_impl< typename value< MatrixAP >::type >::invoke( ap,
             ipiv );
 }
 
@@ -176,9 +173,8 @@
 // * const VectorIPIV&
 //
 template< typename MatrixAP, typename VectorIPIV >
-inline std::ptrdiff_t sptrf( const fortran_int_t n,
- const MatrixAP& ap, const VectorIPIV& ipiv ) {
- return sptrf_impl< typename value< MatrixAP >::type >::invoke( n, ap,
+inline std::ptrdiff_t sptrf( const MatrixAP& ap, const VectorIPIV& ipiv ) {
+ return sptrf_impl< typename value< MatrixAP >::type >::invoke( ap,
             ipiv );
 }
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sygst.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sygst.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sygst.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -92,20 +92,22 @@
     // * Asserts that most arguments make sense.
     //
     template< typename MatrixA, typename MatrixB >
- static std::ptrdiff_t invoke( const fortran_int_t itype,
- const fortran_int_t n, MatrixA& a, const MatrixB& b ) {
+ static std::ptrdiff_t invoke( const fortran_int_t itype, MatrixA& a,
+ const MatrixB& b ) {
         typedef typename result_of::data_side< MatrixA >::type uplo;
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< MatrixA >::type >::type,
                 typename remove_const< typename value<
                 MatrixB >::type >::type >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< MatrixA >::value) );
- BOOST_ASSERT( n >= 0 );
+ BOOST_ASSERT( size_column(a) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
- BOOST_ASSERT( stride_major(a) >= std::max< std::ptrdiff_t >(1,n) );
- BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::sygst( itype, uplo(), n, begin_value(a),
+ BOOST_ASSERT( stride_major(a) >= std::max< std::ptrdiff_t >(1,
+ size_column(a)) );
+ BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
+ size_column(a)) );
+ return detail::sygst( itype, uplo(), size_column(a), begin_value(a),
                 stride_major(a), begin_value(b), stride_major(b) );
     }
 
@@ -126,10 +128,10 @@
 // * MatrixA&
 //
 template< typename MatrixA, typename MatrixB >
-inline std::ptrdiff_t sygst( const fortran_int_t itype,
- const fortran_int_t n, MatrixA& a, const MatrixB& b ) {
+inline std::ptrdiff_t sygst( const fortran_int_t itype, MatrixA& a,
+ const MatrixB& b ) {
     return sygst_impl< typename value< MatrixA >::type >::invoke( itype,
- n, a, b );
+ a, b );
 }
 
 //
@@ -138,9 +140,9 @@
 //
 template< typename MatrixA, typename MatrixB >
 inline std::ptrdiff_t sygst( const fortran_int_t itype,
- const fortran_int_t n, const MatrixA& a, const MatrixB& b ) {
+ const MatrixA& a, const MatrixB& b ) {
     return sygst_impl< typename value< MatrixA >::type >::invoke( itype,
- n, a, b );
+ a, b );
 }
 
 } // namespace lapack

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/syrfs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/syrfs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/syrfs.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -177,14 +177,14 @@
         BOOST_STATIC_ASSERT( (is_mutable< MatrixX >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorFERR >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorBERR >::value) );
- BOOST_ASSERT( size(berr) >= size_column(x) );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
         BOOST_ASSERT( size(ipiv) >= size_column(a) );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
                 min_size_iwork( size_column(a) ));
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
                 size_column(a) ));
         BOOST_ASSERT( size_column(a) >= 0 );
- BOOST_ASSERT( size_column(x) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(af) == 1 || stride_minor(af) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
@@ -197,7 +197,7 @@
                 size_column(a)) );
         BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,
                 size_column(a)) );
- return detail::syrfs( uplo(), size_column(a), size_column(x),
+ return detail::syrfs( uplo(), size_column(a), size_column(b),
                 begin_value(a), stride_major(a), begin_value(af),
                 stride_major(af), begin_value(ipiv), begin_value(b),
                 stride_major(b), begin_value(x), stride_major(x),
@@ -304,14 +304,14 @@
         BOOST_STATIC_ASSERT( (is_mutable< MatrixX >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorFERR >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorBERR >::value) );
- BOOST_ASSERT( size(berr) >= size_column(x) );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
         BOOST_ASSERT( size(ipiv) >= size_column(a) );
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork(
                 size_column(a) ));
         BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
                 size_column(a) ));
         BOOST_ASSERT( size_column(a) >= 0 );
- BOOST_ASSERT( size_column(x) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(af) == 1 || stride_minor(af) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
@@ -324,7 +324,7 @@
                 size_column(a)) );
         BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,
                 size_column(a)) );
- return detail::syrfs( uplo(), size_column(a), size_column(x),
+ return detail::syrfs( uplo(), size_column(a), size_column(b),
                 begin_value(a), stride_major(a), begin_value(af),
                 stride_major(af), begin_value(ipiv), begin_value(b),
                 stride_major(b), begin_value(x), stride_major(x),

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tbcon.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tbcon.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tbcon.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -140,20 +140,20 @@
     //
     template< typename MatrixAB, typename WORK, typename IWORK >
     static std::ptrdiff_t invoke( const char norm, const char uplo,
- const fortran_int_t n, const fortran_int_t kd,
- const MatrixAB& ab, real_type& rcond, detail::workspace2< WORK,
- IWORK > work ) {
+ const fortran_int_t kd, const MatrixAB& ab, real_type& rcond,
+ detail::workspace2< WORK, IWORK > work ) {
         typedef typename result_of::diag_tag< MatrixAB >::type diag;
         BOOST_ASSERT( kd >= 0 );
- BOOST_ASSERT( n >= 0 );
         BOOST_ASSERT( norm == '1' || norm == 'O' || norm == 'I' );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
- min_size_iwork( n ));
- BOOST_ASSERT( size(work.select(real_type())) >= min_size_work( n ));
+ min_size_iwork( size_column(ab) ));
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
+ size_column(ab) ));
+ BOOST_ASSERT( size_column(ab) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( stride_major(ab) >= kd+1 );
- return detail::tbcon( norm, uplo, diag(), n, kd, begin_value(ab),
- stride_major(ab), rcond,
+ return detail::tbcon( norm, uplo, diag(), size_column(ab), kd,
+ begin_value(ab), stride_major(ab), rcond,
                 begin_value(work.select(real_type())),
                 begin_value(work.select(fortran_int_t())) );
     }
@@ -167,13 +167,14 @@
     //
     template< typename MatrixAB >
     static std::ptrdiff_t invoke( const char norm, const char uplo,
- const fortran_int_t n, const fortran_int_t kd,
- const MatrixAB& ab, real_type& rcond, minimal_workspace work ) {
+ const fortran_int_t kd, const MatrixAB& ab, real_type& rcond,
+ minimal_workspace work ) {
         typedef typename result_of::diag_tag< MatrixAB >::type diag;
- bindings::detail::array< real_type > tmp_work( min_size_work( n ) );
+ bindings::detail::array< real_type > tmp_work( min_size_work(
+ size_column(ab) ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
- min_size_iwork( n ) );
- return invoke( norm, uplo, n, kd, ab, rcond, workspace( tmp_work,
+ min_size_iwork( size_column(ab) ) );
+ return invoke( norm, uplo, kd, ab, rcond, workspace( tmp_work,
                 tmp_iwork ) );
     }
 
@@ -186,10 +187,10 @@
     //
     template< typename MatrixAB >
     static std::ptrdiff_t invoke( const char norm, const char uplo,
- const fortran_int_t n, const fortran_int_t kd,
- const MatrixAB& ab, real_type& rcond, optimal_workspace work ) {
+ const fortran_int_t kd, const MatrixAB& ab, real_type& rcond,
+ optimal_workspace work ) {
         typedef typename result_of::diag_tag< MatrixAB >::type diag;
- return invoke( norm, uplo, n, kd, ab, rcond, minimal_workspace() );
+ return invoke( norm, uplo, kd, ab, rcond, minimal_workspace() );
     }
 
     //
@@ -226,19 +227,20 @@
     //
     template< typename MatrixAB, typename WORK, typename RWORK >
     static std::ptrdiff_t invoke( const char norm, const char uplo,
- const fortran_int_t n, const fortran_int_t kd,
- const MatrixAB& ab, real_type& rcond, detail::workspace2< WORK,
- RWORK > work ) {
+ const fortran_int_t kd, const MatrixAB& ab, real_type& rcond,
+ detail::workspace2< WORK, RWORK > work ) {
         typedef typename result_of::diag_tag< MatrixAB >::type diag;
         BOOST_ASSERT( kd >= 0 );
- BOOST_ASSERT( n >= 0 );
         BOOST_ASSERT( norm == '1' || norm == 'O' || norm == 'I' );
- BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork( n ));
- BOOST_ASSERT( size(work.select(value_type())) >= min_size_work( n ));
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork(
+ size_column(ab) ));
+ BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
+ size_column(ab) ));
+ BOOST_ASSERT( size_column(ab) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( stride_major(ab) >= kd+1 );
- return detail::tbcon( norm, uplo, diag(), n, kd, begin_value(ab),
- stride_major(ab), rcond,
+ return detail::tbcon( norm, uplo, diag(), size_column(ab), kd,
+ begin_value(ab), stride_major(ab), rcond,
                 begin_value(work.select(value_type())),
                 begin_value(work.select(real_type())) );
     }
@@ -252,12 +254,14 @@
     //
     template< typename MatrixAB >
     static std::ptrdiff_t invoke( const char norm, const char uplo,
- const fortran_int_t n, const fortran_int_t kd,
- const MatrixAB& ab, real_type& rcond, minimal_workspace work ) {
+ const fortran_int_t kd, const MatrixAB& ab, real_type& rcond,
+ minimal_workspace work ) {
         typedef typename result_of::diag_tag< MatrixAB >::type diag;
- bindings::detail::array< value_type > tmp_work( min_size_work( n ) );
- bindings::detail::array< real_type > tmp_rwork( min_size_rwork( n ) );
- return invoke( norm, uplo, n, kd, ab, rcond, workspace( tmp_work,
+ bindings::detail::array< value_type > tmp_work( min_size_work(
+ size_column(ab) ) );
+ bindings::detail::array< real_type > tmp_rwork( min_size_rwork(
+ size_column(ab) ) );
+ return invoke( norm, uplo, kd, ab, rcond, workspace( tmp_work,
                 tmp_rwork ) );
     }
 
@@ -270,10 +274,10 @@
     //
     template< typename MatrixAB >
     static std::ptrdiff_t invoke( const char norm, const char uplo,
- const fortran_int_t n, const fortran_int_t kd,
- const MatrixAB& ab, real_type& rcond, optimal_workspace work ) {
+ const fortran_int_t kd, const MatrixAB& ab, real_type& rcond,
+ optimal_workspace work ) {
         typedef typename result_of::diag_tag< MatrixAB >::type diag;
- return invoke( norm, uplo, n, kd, ab, rcond, minimal_workspace() );
+ return invoke( norm, uplo, kd, ab, rcond, minimal_workspace() );
     }
 
     //
@@ -309,11 +313,11 @@
 //
 template< typename MatrixAB, typename Workspace >
 inline std::ptrdiff_t tbcon( const char norm, const char uplo,
- const fortran_int_t n, const fortran_int_t kd,
- const MatrixAB& ab, typename remove_imaginary< typename value<
+ const fortran_int_t kd, const MatrixAB& ab,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, Workspace work ) {
     return tbcon_impl< typename value< MatrixAB >::type >::invoke( norm,
- uplo, n, kd, ab, rcond, work );
+ uplo, kd, ab, rcond, work );
 }
 
 //
@@ -322,11 +326,11 @@
 //
 template< typename MatrixAB >
 inline std::ptrdiff_t tbcon( const char norm, const char uplo,
- const fortran_int_t n, const fortran_int_t kd,
- const MatrixAB& ab, typename remove_imaginary< typename value<
+ const fortran_int_t kd, const MatrixAB& ab,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond ) {
     return tbcon_impl< typename value< MatrixAB >::type >::invoke( norm,
- uplo, n, kd, ab, rcond, optimal_workspace() );
+ uplo, kd, ab, rcond, optimal_workspace() );
 }
 
 } // namespace lapack

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tbrfs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tbrfs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tbrfs.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -156,10 +156,10 @@
     template< typename MatrixAB, typename MatrixB, typename MatrixX,
             typename VectorFERR, typename VectorBERR, typename WORK,
             typename IWORK >
- static std::ptrdiff_t invoke( const char uplo, const fortran_int_t n,
- const fortran_int_t kd, const MatrixAB& ab, const MatrixB& b,
- const MatrixX& x, VectorFERR& ferr, VectorBERR& berr,
- detail::workspace2< WORK, IWORK > work ) {
+ static std::ptrdiff_t invoke( const char uplo, const fortran_int_t kd,
+ const MatrixAB& ab, const MatrixB& b, const MatrixX& x,
+ VectorFERR& ferr, VectorBERR& berr, detail::workspace2< WORK,
+ IWORK > work ) {
         typedef typename result_of::diag_tag< MatrixAB >::type diag;
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< MatrixAB >::type >::type,
@@ -180,22 +180,25 @@
         BOOST_STATIC_ASSERT( (is_mutable< VectorFERR >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorBERR >::value) );
         BOOST_ASSERT( kd >= 0 );
- BOOST_ASSERT( n >= 0 );
- BOOST_ASSERT( size(berr) >= size_column(x) );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
- min_size_iwork( n ));
- BOOST_ASSERT( size(work.select(real_type())) >= min_size_work( n ));
- BOOST_ASSERT( size_column(x) >= 0 );
+ min_size_iwork( size_column(ab) ));
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
+ size_column(ab) ));
+ BOOST_ASSERT( size_column(ab) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_minor(x) == 1 || stride_minor(x) == 1 );
         BOOST_ASSERT( stride_major(ab) >= kd+1 );
- BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,n) );
- BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::tbrfs( uplo, trans(), diag(), n, kd, size_column(x),
- begin_value(ab), stride_major(ab), begin_value(b),
- stride_major(b), begin_value(x), stride_major(x),
- begin_value(ferr), begin_value(berr),
+ BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
+ size_column(ab)) );
+ BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,
+ size_column(ab)) );
+ return detail::tbrfs( uplo, trans(), diag(), size_column(ab), kd,
+ size_column(b), begin_value(ab), stride_major(ab),
+ begin_value(b), stride_major(b), begin_value(x),
+ stride_major(x), begin_value(ferr), begin_value(berr),
                 begin_value(work.select(real_type())),
                 begin_value(work.select(fortran_int_t())) );
     }
@@ -209,15 +212,15 @@
     //
     template< typename MatrixAB, typename MatrixB, typename MatrixX,
             typename VectorFERR, typename VectorBERR >
- static std::ptrdiff_t invoke( const char uplo, const fortran_int_t n,
- const fortran_int_t kd, const MatrixAB& ab, const MatrixB& b,
- const MatrixX& x, VectorFERR& ferr, VectorBERR& berr,
- minimal_workspace work ) {
+ static std::ptrdiff_t invoke( const char uplo, const fortran_int_t kd,
+ const MatrixAB& ab, const MatrixB& b, const MatrixX& x,
+ VectorFERR& ferr, VectorBERR& berr, minimal_workspace work ) {
         typedef typename result_of::diag_tag< MatrixAB >::type diag;
- bindings::detail::array< real_type > tmp_work( min_size_work( n ) );
+ bindings::detail::array< real_type > tmp_work( min_size_work(
+ size_column(ab) ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
- min_size_iwork( n ) );
- return invoke( uplo, n, kd, ab, b, x, ferr, berr, workspace( tmp_work,
+ min_size_iwork( size_column(ab) ) );
+ return invoke( uplo, kd, ab, b, x, ferr, berr, workspace( tmp_work,
                 tmp_iwork ) );
     }
 
@@ -230,13 +233,11 @@
     //
     template< typename MatrixAB, typename MatrixB, typename MatrixX,
             typename VectorFERR, typename VectorBERR >
- static std::ptrdiff_t invoke( const char uplo, const fortran_int_t n,
- const fortran_int_t kd, const MatrixAB& ab, const MatrixB& b,
- const MatrixX& x, VectorFERR& ferr, VectorBERR& berr,
- optimal_workspace work ) {
+ static std::ptrdiff_t invoke( const char uplo, const fortran_int_t kd,
+ const MatrixAB& ab, const MatrixB& b, const MatrixX& x,
+ VectorFERR& ferr, VectorBERR& berr, optimal_workspace work ) {
         typedef typename result_of::diag_tag< MatrixAB >::type diag;
- return invoke( uplo, n, kd, ab, b, x, ferr, berr,
- minimal_workspace() );
+ return invoke( uplo, kd, ab, b, x, ferr, berr, minimal_workspace() );
     }
 
     //
@@ -274,10 +275,10 @@
     template< typename MatrixAB, typename MatrixB, typename MatrixX,
             typename VectorFERR, typename VectorBERR, typename WORK,
             typename RWORK >
- static std::ptrdiff_t invoke( const char uplo, const fortran_int_t n,
- const fortran_int_t kd, const MatrixAB& ab, const MatrixB& b,
- const MatrixX& x, VectorFERR& ferr, VectorBERR& berr,
- detail::workspace2< WORK, RWORK > work ) {
+ static std::ptrdiff_t invoke( const char uplo, const fortran_int_t kd,
+ const MatrixAB& ab, const MatrixB& b, const MatrixX& x,
+ VectorFERR& ferr, VectorBERR& berr, detail::workspace2< WORK,
+ RWORK > work ) {
         typedef typename result_of::diag_tag< MatrixAB >::type diag;
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< VectorFERR >::type >::type,
@@ -294,21 +295,25 @@
         BOOST_STATIC_ASSERT( (is_mutable< VectorFERR >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorBERR >::value) );
         BOOST_ASSERT( kd >= 0 );
- BOOST_ASSERT( n >= 0 );
- BOOST_ASSERT( size(berr) >= size_column(x) );
- BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork( n ));
- BOOST_ASSERT( size(work.select(value_type())) >= min_size_work( n ));
- BOOST_ASSERT( size_column(x) >= 0 );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork(
+ size_column(ab) ));
+ BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
+ size_column(ab) ));
+ BOOST_ASSERT( size_column(ab) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_minor(x) == 1 || stride_minor(x) == 1 );
         BOOST_ASSERT( stride_major(ab) >= kd+1 );
- BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,n) );
- BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::tbrfs( uplo, trans(), diag(), n, kd, size_column(x),
- begin_value(ab), stride_major(ab), begin_value(b),
- stride_major(b), begin_value(x), stride_major(x),
- begin_value(ferr), begin_value(berr),
+ BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
+ size_column(ab)) );
+ BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,
+ size_column(ab)) );
+ return detail::tbrfs( uplo, trans(), diag(), size_column(ab), kd,
+ size_column(b), begin_value(ab), stride_major(ab),
+ begin_value(b), stride_major(b), begin_value(x),
+ stride_major(x), begin_value(ferr), begin_value(berr),
                 begin_value(work.select(value_type())),
                 begin_value(work.select(real_type())) );
     }
@@ -322,14 +327,15 @@
     //
     template< typename MatrixAB, typename MatrixB, typename MatrixX,
             typename VectorFERR, typename VectorBERR >
- static std::ptrdiff_t invoke( const char uplo, const fortran_int_t n,
- const fortran_int_t kd, const MatrixAB& ab, const MatrixB& b,
- const MatrixX& x, VectorFERR& ferr, VectorBERR& berr,
- minimal_workspace work ) {
+ static std::ptrdiff_t invoke( const char uplo, const fortran_int_t kd,
+ const MatrixAB& ab, const MatrixB& b, const MatrixX& x,
+ VectorFERR& ferr, VectorBERR& berr, minimal_workspace work ) {
         typedef typename result_of::diag_tag< MatrixAB >::type diag;
- bindings::detail::array< value_type > tmp_work( min_size_work( n ) );
- bindings::detail::array< real_type > tmp_rwork( min_size_rwork( n ) );
- return invoke( uplo, n, kd, ab, b, x, ferr, berr, workspace( tmp_work,
+ bindings::detail::array< value_type > tmp_work( min_size_work(
+ size_column(ab) ) );
+ bindings::detail::array< real_type > tmp_rwork( min_size_rwork(
+ size_column(ab) ) );
+ return invoke( uplo, kd, ab, b, x, ferr, berr, workspace( tmp_work,
                 tmp_rwork ) );
     }
 
@@ -342,13 +348,11 @@
     //
     template< typename MatrixAB, typename MatrixB, typename MatrixX,
             typename VectorFERR, typename VectorBERR >
- static std::ptrdiff_t invoke( const char uplo, const fortran_int_t n,
- const fortran_int_t kd, const MatrixAB& ab, const MatrixB& b,
- const MatrixX& x, VectorFERR& ferr, VectorBERR& berr,
- optimal_workspace work ) {
+ static std::ptrdiff_t invoke( const char uplo, const fortran_int_t kd,
+ const MatrixAB& ab, const MatrixB& b, const MatrixX& x,
+ VectorFERR& ferr, VectorBERR& berr, optimal_workspace work ) {
         typedef typename result_of::diag_tag< MatrixAB >::type diag;
- return invoke( uplo, n, kd, ab, b, x, ferr, berr,
- minimal_workspace() );
+ return invoke( uplo, kd, ab, b, x, ferr, berr, minimal_workspace() );
     }
 
     //
@@ -386,12 +390,11 @@
 //
 template< typename MatrixAB, typename MatrixB, typename MatrixX,
         typename VectorFERR, typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t tbrfs( const char uplo, const fortran_int_t n,
- const fortran_int_t kd, const MatrixAB& ab, const MatrixB& b,
- const MatrixX& x, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t tbrfs( const char uplo, const fortran_int_t kd,
+ const MatrixAB& ab, const MatrixB& b, const MatrixX& x,
+ VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return tbrfs_impl< typename value< MatrixAB >::type >::invoke( uplo,
- n, kd, ab, b, x, ferr, berr, work );
+ kd, ab, b, x, ferr, berr, work );
 }
 
 //
@@ -402,11 +405,11 @@
 //
 template< typename MatrixAB, typename MatrixB, typename MatrixX,
         typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t tbrfs( const char uplo, const fortran_int_t n,
- const fortran_int_t kd, const MatrixAB& ab, const MatrixB& b,
- const MatrixX& x, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t tbrfs( const char uplo, const fortran_int_t kd,
+ const MatrixAB& ab, const MatrixB& b, const MatrixX& x,
+ VectorFERR& ferr, VectorBERR& berr ) {
     return tbrfs_impl< typename value< MatrixAB >::type >::invoke( uplo,
- n, kd, ab, b, x, ferr, berr, optimal_workspace() );
+ kd, ab, b, x, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -417,12 +420,11 @@
 //
 template< typename MatrixAB, typename MatrixB, typename MatrixX,
         typename VectorFERR, typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t tbrfs( const char uplo, const fortran_int_t n,
- const fortran_int_t kd, const MatrixAB& ab, const MatrixB& b,
- const MatrixX& x, const VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t tbrfs( const char uplo, const fortran_int_t kd,
+ const MatrixAB& ab, const MatrixB& b, const MatrixX& x,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return tbrfs_impl< typename value< MatrixAB >::type >::invoke( uplo,
- n, kd, ab, b, x, ferr, berr, work );
+ kd, ab, b, x, ferr, berr, work );
 }
 
 //
@@ -433,11 +435,11 @@
 //
 template< typename MatrixAB, typename MatrixB, typename MatrixX,
         typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t tbrfs( const char uplo, const fortran_int_t n,
- const fortran_int_t kd, const MatrixAB& ab, const MatrixB& b,
- const MatrixX& x, const VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t tbrfs( const char uplo, const fortran_int_t kd,
+ const MatrixAB& ab, const MatrixB& b, const MatrixX& x,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return tbrfs_impl< typename value< MatrixAB >::type >::invoke( uplo,
- n, kd, ab, b, x, ferr, berr, optimal_workspace() );
+ kd, ab, b, x, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -448,12 +450,11 @@
 //
 template< typename MatrixAB, typename MatrixB, typename MatrixX,
         typename VectorFERR, typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t tbrfs( const char uplo, const fortran_int_t n,
- const fortran_int_t kd, const MatrixAB& ab, const MatrixB& b,
- const MatrixX& x, VectorFERR& ferr, const VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t tbrfs( const char uplo, const fortran_int_t kd,
+ const MatrixAB& ab, const MatrixB& b, const MatrixX& x,
+ VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return tbrfs_impl< typename value< MatrixAB >::type >::invoke( uplo,
- n, kd, ab, b, x, ferr, berr, work );
+ kd, ab, b, x, ferr, berr, work );
 }
 
 //
@@ -464,11 +465,11 @@
 //
 template< typename MatrixAB, typename MatrixB, typename MatrixX,
         typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t tbrfs( const char uplo, const fortran_int_t n,
- const fortran_int_t kd, const MatrixAB& ab, const MatrixB& b,
- const MatrixX& x, VectorFERR& ferr, const VectorBERR& berr ) {
+inline std::ptrdiff_t tbrfs( const char uplo, const fortran_int_t kd,
+ const MatrixAB& ab, const MatrixB& b, const MatrixX& x,
+ VectorFERR& ferr, const VectorBERR& berr ) {
     return tbrfs_impl< typename value< MatrixAB >::type >::invoke( uplo,
- n, kd, ab, b, x, ferr, berr, optimal_workspace() );
+ kd, ab, b, x, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -479,12 +480,11 @@
 //
 template< typename MatrixAB, typename MatrixB, typename MatrixX,
         typename VectorFERR, typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t tbrfs( const char uplo, const fortran_int_t n,
- const fortran_int_t kd, const MatrixAB& ab, const MatrixB& b,
- const MatrixX& x, const VectorFERR& ferr, const VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t tbrfs( const char uplo, const fortran_int_t kd,
+ const MatrixAB& ab, const MatrixB& b, const MatrixX& x,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return tbrfs_impl< typename value< MatrixAB >::type >::invoke( uplo,
- n, kd, ab, b, x, ferr, berr, work );
+ kd, ab, b, x, ferr, berr, work );
 }
 
 //
@@ -495,11 +495,11 @@
 //
 template< typename MatrixAB, typename MatrixB, typename MatrixX,
         typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t tbrfs( const char uplo, const fortran_int_t n,
- const fortran_int_t kd, const MatrixAB& ab, const MatrixB& b,
- const MatrixX& x, const VectorFERR& ferr, const VectorBERR& berr ) {
+inline std::ptrdiff_t tbrfs( const char uplo, const fortran_int_t kd,
+ const MatrixAB& ab, const MatrixB& b, const MatrixX& x,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return tbrfs_impl< typename value< MatrixAB >::type >::invoke( uplo,
- n, kd, ab, b, x, ferr, berr, optimal_workspace() );
+ kd, ab, b, x, ferr, berr, optimal_workspace() );
 }
 
 } // namespace lapack

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tbtrs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tbtrs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tbtrs.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -131,8 +131,8 @@
     // * Asserts that most arguments make sense.
     //
     template< typename MatrixAB, typename MatrixB >
- static std::ptrdiff_t invoke( const char uplo, const fortran_int_t n,
- const fortran_int_t kd, const MatrixAB& ab, MatrixB& b ) {
+ static std::ptrdiff_t invoke( const char uplo, const fortran_int_t kd,
+ const MatrixAB& ab, MatrixB& b ) {
         typedef typename result_of::trans_tag< MatrixAB, order >::type trans;
         typedef typename result_of::diag_tag< MatrixAB >::type diag;
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
@@ -141,15 +141,16 @@
                 MatrixB >::type >::type >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< MatrixB >::value) );
         BOOST_ASSERT( kd >= 0 );
- BOOST_ASSERT( n >= 0 );
         BOOST_ASSERT( size_column(b) >= 0 );
+ BOOST_ASSERT( size_column_op(ab, trans()) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( stride_major(ab) >= kd+1 );
- BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::tbtrs( uplo, trans(), diag(), n, kd, size_column(b),
- begin_value(ab), stride_major(ab), begin_value(b),
- stride_major(b) );
+ BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
+ size_column_op(ab, trans())) );
+ return detail::tbtrs( uplo, trans(), diag(), size_column_op(ab,
+ trans()), kd, size_column(b), begin_value(ab),
+ stride_major(ab), begin_value(b), stride_major(b) );
     }
 
 };
@@ -169,10 +170,10 @@
 // * MatrixB&
 //
 template< typename MatrixAB, typename MatrixB >
-inline std::ptrdiff_t tbtrs( const char uplo, const fortran_int_t n,
- const fortran_int_t kd, const MatrixAB& ab, MatrixB& b ) {
+inline std::ptrdiff_t tbtrs( const char uplo, const fortran_int_t kd,
+ const MatrixAB& ab, MatrixB& b ) {
     return tbtrs_impl< typename value< MatrixAB >::type >::invoke( uplo,
- n, kd, ab, b );
+ kd, ab, b );
 }
 
 //
@@ -180,10 +181,10 @@
 // * const MatrixB&
 //
 template< typename MatrixAB, typename MatrixB >
-inline std::ptrdiff_t tbtrs( const char uplo, const fortran_int_t n,
- const fortran_int_t kd, const MatrixAB& ab, const MatrixB& b ) {
+inline std::ptrdiff_t tbtrs( const char uplo, const fortran_int_t kd,
+ const MatrixAB& ab, const MatrixB& b ) {
     return tbtrs_impl< typename value< MatrixAB >::type >::invoke( uplo,
- n, kd, ab, b );
+ kd, ab, b );
 }
 
 } // namespace lapack

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-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -146,10 +146,9 @@
     template< typename VectorSELECT, typename MatrixS, typename MatrixP,
             typename MatrixVL, typename MatrixVR, typename WORK >
     static std::ptrdiff_t invoke( const char side, const char howmny,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixS& s, const MatrixP& p, MatrixVL& vl, MatrixVR& vr,
- const fortran_int_t mm, fortran_int_t& m,
- detail::workspace1< WORK > work ) {
+ const VectorSELECT& select, const MatrixS& s, const MatrixP& p,
+ MatrixVL& vl, MatrixVR& vr, const fortran_int_t mm,
+ fortran_int_t& m, detail::workspace1< WORK > work ) {
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< MatrixS >::type >::type,
                 typename remove_const< typename value<
@@ -166,19 +165,22 @@
         BOOST_STATIC_ASSERT( (is_mutable< MatrixVR >::value) );
         BOOST_ASSERT( howmny == 'A' || howmny == 'B' || howmny == 'S' );
         BOOST_ASSERT( mm >= m );
- BOOST_ASSERT( n >= 0 );
         BOOST_ASSERT( side == 'R' || side == 'L' || side == 'B' );
- BOOST_ASSERT( size(work.select(real_type())) >= min_size_work( n ));
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
+ size_column(s) ));
+ BOOST_ASSERT( size_column(s) >= 0 );
         BOOST_ASSERT( size_minor(p) == 1 || stride_minor(p) == 1 );
         BOOST_ASSERT( size_minor(s) == 1 || stride_minor(s) == 1 );
         BOOST_ASSERT( size_minor(vl) == 1 || stride_minor(vl) == 1 );
         BOOST_ASSERT( size_minor(vr) == 1 || stride_minor(vr) == 1 );
- BOOST_ASSERT( stride_major(p) >= std::max< std::ptrdiff_t >(1,n) );
- BOOST_ASSERT( stride_major(s) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::tgevc( side, howmny, begin_value(select), n,
- begin_value(s), stride_major(s), begin_value(p),
- stride_major(p), begin_value(vl), stride_major(vl),
- begin_value(vr), stride_major(vr), mm, m,
+ BOOST_ASSERT( stride_major(p) >= std::max< std::ptrdiff_t >(1,
+ size_column(s)) );
+ BOOST_ASSERT( stride_major(s) >= std::max< std::ptrdiff_t >(1,
+ size_column(s)) );
+ return detail::tgevc( side, howmny, begin_value(select),
+ size_column(s), begin_value(s), stride_major(s),
+ begin_value(p), stride_major(p), begin_value(vl),
+ stride_major(vl), begin_value(vr), stride_major(vr), mm, m,
                 begin_value(work.select(real_type())) );
     }
 
@@ -192,12 +194,12 @@
     template< typename VectorSELECT, typename MatrixS, typename MatrixP,
             typename MatrixVL, typename MatrixVR >
     static std::ptrdiff_t invoke( const char side, const char howmny,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixS& s, const MatrixP& p, MatrixVL& vl, MatrixVR& vr,
- const fortran_int_t mm, fortran_int_t& m,
- minimal_workspace work ) {
- bindings::detail::array< real_type > tmp_work( min_size_work( n ) );
- return invoke( side, howmny, select, n, s, p, vl, vr, mm, m,
+ const VectorSELECT& select, const MatrixS& s, const MatrixP& p,
+ MatrixVL& vl, MatrixVR& vr, const fortran_int_t mm,
+ fortran_int_t& m, minimal_workspace work ) {
+ bindings::detail::array< real_type > tmp_work( min_size_work(
+ size_column(s) ) );
+ return invoke( side, howmny, select, s, p, vl, vr, mm, m,
                 workspace( tmp_work ) );
     }
 
@@ -211,11 +213,10 @@
     template< typename VectorSELECT, typename MatrixS, typename MatrixP,
             typename MatrixVL, typename MatrixVR >
     static std::ptrdiff_t invoke( const char side, const char howmny,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixS& s, const MatrixP& p, MatrixVL& vl, MatrixVR& vr,
- const fortran_int_t mm, fortran_int_t& m,
- optimal_workspace work ) {
- return invoke( side, howmny, select, n, s, p, vl, vr, mm, m,
+ const VectorSELECT& select, const MatrixS& s, const MatrixP& p,
+ MatrixVL& vl, MatrixVR& vr, const fortran_int_t mm,
+ fortran_int_t& m, optimal_workspace work ) {
+ return invoke( side, howmny, select, s, p, vl, vr, mm, m,
                 minimal_workspace() );
     }
 
@@ -247,10 +248,9 @@
             typename MatrixVL, typename MatrixVR, typename WORK,
             typename RWORK >
     static std::ptrdiff_t invoke( const char side, const char howmny,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixS& s, const MatrixP& p, MatrixVL& vl, MatrixVR& vr,
- const fortran_int_t mm, fortran_int_t& m,
- detail::workspace2< WORK, RWORK > work ) {
+ const VectorSELECT& select, const MatrixS& s, const MatrixP& p,
+ MatrixVL& vl, MatrixVR& vr, const fortran_int_t mm,
+ fortran_int_t& m, detail::workspace2< WORK, RWORK > work ) {
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< MatrixS >::type >::type,
                 typename remove_const< typename value<
@@ -267,20 +267,24 @@
         BOOST_STATIC_ASSERT( (is_mutable< MatrixVR >::value) );
         BOOST_ASSERT( howmny == 'A' || howmny == 'B' || howmny == 'S' );
         BOOST_ASSERT( mm >= m );
- BOOST_ASSERT( n >= 0 );
         BOOST_ASSERT( side == 'R' || side == 'L' || side == 'B' );
- BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork( n ));
- BOOST_ASSERT( size(work.select(value_type())) >= min_size_work( n ));
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork(
+ size_column(s) ));
+ BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
+ size_column(s) ));
+ BOOST_ASSERT( size_column(s) >= 0 );
         BOOST_ASSERT( size_minor(p) == 1 || stride_minor(p) == 1 );
         BOOST_ASSERT( size_minor(s) == 1 || stride_minor(s) == 1 );
         BOOST_ASSERT( size_minor(vl) == 1 || stride_minor(vl) == 1 );
         BOOST_ASSERT( size_minor(vr) == 1 || stride_minor(vr) == 1 );
- BOOST_ASSERT( stride_major(p) >= std::max< std::ptrdiff_t >(1,n) );
- BOOST_ASSERT( stride_major(s) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::tgevc( side, howmny, begin_value(select), n,
- begin_value(s), stride_major(s), begin_value(p),
- stride_major(p), begin_value(vl), stride_major(vl),
- begin_value(vr), stride_major(vr), mm, m,
+ BOOST_ASSERT( stride_major(p) >= std::max< std::ptrdiff_t >(1,
+ size_column(s)) );
+ BOOST_ASSERT( stride_major(s) >= std::max< std::ptrdiff_t >(1,
+ size_column(s)) );
+ return detail::tgevc( side, howmny, begin_value(select),
+ size_column(s), begin_value(s), stride_major(s),
+ begin_value(p), stride_major(p), begin_value(vl),
+ stride_major(vl), begin_value(vr), stride_major(vr), mm, m,
                 begin_value(work.select(value_type())),
                 begin_value(work.select(real_type())) );
     }
@@ -295,13 +299,14 @@
     template< typename VectorSELECT, typename MatrixS, typename MatrixP,
             typename MatrixVL, typename MatrixVR >
     static std::ptrdiff_t invoke( const char side, const char howmny,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixS& s, const MatrixP& p, MatrixVL& vl, MatrixVR& vr,
- const fortran_int_t mm, fortran_int_t& m,
- minimal_workspace work ) {
- bindings::detail::array< value_type > tmp_work( min_size_work( n ) );
- bindings::detail::array< real_type > tmp_rwork( min_size_rwork( n ) );
- return invoke( side, howmny, select, n, s, p, vl, vr, mm, m,
+ const VectorSELECT& select, const MatrixS& s, const MatrixP& p,
+ MatrixVL& vl, MatrixVR& vr, const fortran_int_t mm,
+ fortran_int_t& m, minimal_workspace work ) {
+ bindings::detail::array< value_type > tmp_work( min_size_work(
+ size_column(s) ) );
+ bindings::detail::array< real_type > tmp_rwork( min_size_rwork(
+ size_column(s) ) );
+ return invoke( side, howmny, select, s, p, vl, vr, mm, m,
                 workspace( tmp_work, tmp_rwork ) );
     }
 
@@ -315,11 +320,10 @@
     template< typename VectorSELECT, typename MatrixS, typename MatrixP,
             typename MatrixVL, typename MatrixVR >
     static std::ptrdiff_t invoke( const char side, const char howmny,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixS& s, const MatrixP& p, MatrixVL& vl, MatrixVR& vr,
- const fortran_int_t mm, fortran_int_t& m,
- optimal_workspace work ) {
- return invoke( side, howmny, select, n, s, p, vl, vr, mm, m,
+ const VectorSELECT& select, const MatrixS& s, const MatrixP& p,
+ MatrixVL& vl, MatrixVR& vr, const fortran_int_t mm,
+ fortran_int_t& m, optimal_workspace work ) {
+ return invoke( side, howmny, select, s, p, vl, vr, mm, m,
                 minimal_workspace() );
     }
 
@@ -359,11 +363,11 @@
 template< typename VectorSELECT, typename MatrixS, typename MatrixP,
         typename MatrixVL, typename MatrixVR, typename Workspace >
 inline std::ptrdiff_t tgevc( const char side, const char howmny,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixS& s, const MatrixP& p, MatrixVL& vl, MatrixVR& vr,
- const fortran_int_t mm, fortran_int_t& m, Workspace work ) {
+ const VectorSELECT& select, const MatrixS& s, const MatrixP& p,
+ MatrixVL& vl, MatrixVR& vr, const fortran_int_t mm,
+ fortran_int_t& m, Workspace work ) {
     return tgevc_impl< typename value< MatrixS >::type >::invoke( side,
- howmny, select, n, s, p, vl, vr, mm, m, work );
+ howmny, select, s, p, vl, vr, mm, m, work );
 }
 
 //
@@ -375,11 +379,11 @@
 template< typename VectorSELECT, typename MatrixS, typename MatrixP,
         typename MatrixVL, typename MatrixVR >
 inline std::ptrdiff_t tgevc( const char side, const char howmny,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixS& s, const MatrixP& p, MatrixVL& vl, MatrixVR& vr,
- const fortran_int_t mm, fortran_int_t& m ) {
+ const VectorSELECT& select, const MatrixS& s, const MatrixP& p,
+ MatrixVL& vl, MatrixVR& vr, const fortran_int_t mm,
+ fortran_int_t& m ) {
     return tgevc_impl< typename value< MatrixS >::type >::invoke( side,
- howmny, select, n, s, p, vl, vr, mm, m, optimal_workspace() );
+ howmny, select, s, p, vl, vr, mm, m, optimal_workspace() );
 }
 
 //
@@ -391,11 +395,11 @@
 template< typename VectorSELECT, typename MatrixS, typename MatrixP,
         typename MatrixVL, typename MatrixVR, typename Workspace >
 inline std::ptrdiff_t tgevc( const char side, const char howmny,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixS& s, const MatrixP& p, const MatrixVL& vl, MatrixVR& vr,
- const fortran_int_t mm, fortran_int_t& m, Workspace work ) {
+ const VectorSELECT& select, const MatrixS& s, const MatrixP& p,
+ const MatrixVL& vl, MatrixVR& vr, const fortran_int_t mm,
+ fortran_int_t& m, Workspace work ) {
     return tgevc_impl< typename value< MatrixS >::type >::invoke( side,
- howmny, select, n, s, p, vl, vr, mm, m, work );
+ howmny, select, s, p, vl, vr, mm, m, work );
 }
 
 //
@@ -407,11 +411,11 @@
 template< typename VectorSELECT, typename MatrixS, typename MatrixP,
         typename MatrixVL, typename MatrixVR >
 inline std::ptrdiff_t tgevc( const char side, const char howmny,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixS& s, const MatrixP& p, const MatrixVL& vl, MatrixVR& vr,
- const fortran_int_t mm, fortran_int_t& m ) {
+ const VectorSELECT& select, const MatrixS& s, const MatrixP& p,
+ const MatrixVL& vl, MatrixVR& vr, const fortran_int_t mm,
+ fortran_int_t& m ) {
     return tgevc_impl< typename value< MatrixS >::type >::invoke( side,
- howmny, select, n, s, p, vl, vr, mm, m, optimal_workspace() );
+ howmny, select, s, p, vl, vr, mm, m, optimal_workspace() );
 }
 
 //
@@ -423,11 +427,11 @@
 template< typename VectorSELECT, typename MatrixS, typename MatrixP,
         typename MatrixVL, typename MatrixVR, typename Workspace >
 inline std::ptrdiff_t tgevc( const char side, const char howmny,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixS& s, const MatrixP& p, MatrixVL& vl, const MatrixVR& vr,
- const fortran_int_t mm, fortran_int_t& m, Workspace work ) {
+ const VectorSELECT& select, const MatrixS& s, const MatrixP& p,
+ MatrixVL& vl, const MatrixVR& vr, const fortran_int_t mm,
+ fortran_int_t& m, Workspace work ) {
     return tgevc_impl< typename value< MatrixS >::type >::invoke( side,
- howmny, select, n, s, p, vl, vr, mm, m, work );
+ howmny, select, s, p, vl, vr, mm, m, work );
 }
 
 //
@@ -439,11 +443,11 @@
 template< typename VectorSELECT, typename MatrixS, typename MatrixP,
         typename MatrixVL, typename MatrixVR >
 inline std::ptrdiff_t tgevc( const char side, const char howmny,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixS& s, const MatrixP& p, MatrixVL& vl, const MatrixVR& vr,
- const fortran_int_t mm, fortran_int_t& m ) {
+ const VectorSELECT& select, const MatrixS& s, const MatrixP& p,
+ MatrixVL& vl, const MatrixVR& vr, const fortran_int_t mm,
+ fortran_int_t& m ) {
     return tgevc_impl< typename value< MatrixS >::type >::invoke( side,
- howmny, select, n, s, p, vl, vr, mm, m, optimal_workspace() );
+ howmny, select, s, p, vl, vr, mm, m, optimal_workspace() );
 }
 
 //
@@ -455,12 +459,11 @@
 template< typename VectorSELECT, typename MatrixS, typename MatrixP,
         typename MatrixVL, typename MatrixVR, typename Workspace >
 inline std::ptrdiff_t tgevc( const char side, const char howmny,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixS& s, const MatrixP& p, const MatrixVL& vl,
- const MatrixVR& vr, const fortran_int_t mm, fortran_int_t& m,
- Workspace work ) {
+ const VectorSELECT& select, const MatrixS& s, const MatrixP& p,
+ const MatrixVL& vl, const MatrixVR& vr, const fortran_int_t mm,
+ fortran_int_t& m, Workspace work ) {
     return tgevc_impl< typename value< MatrixS >::type >::invoke( side,
- howmny, select, n, s, p, vl, vr, mm, m, work );
+ howmny, select, s, p, vl, vr, mm, m, work );
 }
 
 //
@@ -472,12 +475,11 @@
 template< typename VectorSELECT, typename MatrixS, typename MatrixP,
         typename MatrixVL, typename MatrixVR >
 inline std::ptrdiff_t tgevc( const char side, const char howmny,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixS& s, const MatrixP& p, const MatrixVL& vl,
- const MatrixVR& vr, const fortran_int_t mm,
+ const VectorSELECT& select, const MatrixS& s, const MatrixP& p,
+ const MatrixVL& vl, const MatrixVR& vr, const fortran_int_t mm,
         fortran_int_t& m ) {
     return tgevc_impl< typename value< MatrixS >::type >::invoke( side,
- howmny, select, n, s, p, vl, vr, mm, m, optimal_workspace() );
+ howmny, select, s, p, vl, vr, mm, m, optimal_workspace() );
 }
 
 } // namespace lapack

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-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -143,8 +143,8 @@
     template< typename MatrixA, typename MatrixB, typename MatrixQ,
             typename MatrixZ >
     static std::ptrdiff_t invoke( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, MatrixA& a, MatrixB& b, MatrixQ& q,
- MatrixZ& z, fortran_int_t& ifst, fortran_int_t& ilst ) {
+ MatrixA& a, MatrixB& b, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& ifst, fortran_int_t& ilst ) {
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< MatrixA >::type >::type,
                 typename remove_const< typename value<
@@ -161,16 +161,18 @@
         BOOST_STATIC_ASSERT( (is_mutable< MatrixB >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< MatrixQ >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< MatrixZ >::value) );
- BOOST_ASSERT( n >= 0 );
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
                 $CALL_MIN_SIZE ));
+ BOOST_ASSERT( size_column(a) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_minor(q) == 1 || stride_minor(q) == 1 );
         BOOST_ASSERT( size_minor(z) == 1 || stride_minor(z) == 1 );
- BOOST_ASSERT( stride_major(a) >= std::max< std::ptrdiff_t >(1,n) );
- BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::tgexc( wantq, wantz, n, begin_value(a),
+ BOOST_ASSERT( stride_major(a) >= std::max< std::ptrdiff_t >(1,
+ size_column(a)) );
+ BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
+ size_column(a)) );
+ return detail::tgexc( wantq, wantz, size_column(a), begin_value(a),
                 stride_major(a), begin_value(b), stride_major(b),
                 begin_value(q), stride_major(q), begin_value(z),
                 stride_major(z), ifst, ilst,
@@ -198,8 +200,8 @@
     template< typename MatrixA, typename MatrixB, typename MatrixQ,
             typename MatrixZ, $WORKSPACE_TYPENAMES >
     static std::ptrdiff_t invoke( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, MatrixA& a, MatrixB& b, MatrixQ& q,
- MatrixZ& z, const fortran_int_t ifst, fortran_int_t& ilst,
+ MatrixA& a, MatrixB& b, MatrixQ& q, MatrixZ& z,
+ const fortran_int_t ifst, fortran_int_t& ilst,
             detail::workspace$WORKSPACE_SIZE< $WORKSPACE_TYPES > work ) {
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< MatrixA >::type >::type,
@@ -217,14 +219,16 @@
         BOOST_STATIC_ASSERT( (is_mutable< MatrixB >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< MatrixQ >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< MatrixZ >::value) );
- BOOST_ASSERT( n >= 0 );
+ BOOST_ASSERT( size_column(a) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_minor(q) == 1 || stride_minor(q) == 1 );
         BOOST_ASSERT( size_minor(z) == 1 || stride_minor(z) == 1 );
- BOOST_ASSERT( stride_major(a) >= std::max< std::ptrdiff_t >(1,n) );
- BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::tgexc( wantq, wantz, n, begin_value(a),
+ BOOST_ASSERT( stride_major(a) >= std::max< std::ptrdiff_t >(1,
+ size_column(a)) );
+ BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
+ size_column(a)) );
+ return detail::tgexc( wantq, wantz, size_column(a), begin_value(a),
                 stride_major(a), begin_value(b), stride_major(b),
                 begin_value(q), stride_major(q), begin_value(z),
                 stride_major(z), ifst, ilst );
@@ -240,11 +244,11 @@
     template< typename MatrixA, typename MatrixB, typename MatrixQ,
             typename MatrixZ >
     static std::ptrdiff_t invoke( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, MatrixA& a, MatrixB& b, MatrixQ& q,
- MatrixZ& z, const fortran_int_t ifst, fortran_int_t& ilst,
+ MatrixA& a, MatrixB& b, MatrixQ& q, MatrixZ& z,
+ const fortran_int_t ifst, fortran_int_t& ilst,
             minimal_workspace work ) {
 $SETUP_MIN_WORKARRAYS_POST
- return invoke( wantq, wantz, n, a, b, q, z, ifst, ilst,
+ return invoke( wantq, wantz, a, b, q, z, ifst, ilst,
                 workspace( $TMP_WORKARRAYS ) );
     }
 
@@ -258,8 +262,8 @@
     template< typename MatrixA, typename MatrixB, typename MatrixQ,
             typename MatrixZ >
     static std::ptrdiff_t invoke( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, MatrixA& a, MatrixB& b, MatrixQ& q,
- MatrixZ& z, const fortran_int_t ifst, fortran_int_t& ilst,
+ MatrixA& a, MatrixB& b, MatrixQ& q, MatrixZ& z,
+ const fortran_int_t ifst, fortran_int_t& ilst,
             optimal_workspace work ) {
 $OPT_WORKSPACE_FUNC
     }
@@ -287,10 +291,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, MatrixA& a, MatrixB& b, MatrixQ& q,
- MatrixZ& z, fortran_int_t& ifst, fortran_int_t& ilst ) {
+ MatrixA& a, MatrixB& b, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst );
+ wantz, a, b, q, z, ifst, ilst );
 }
 
 //
@@ -303,10 +307,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, const MatrixA& a, MatrixB& b, MatrixQ& q,
- MatrixZ& z, fortran_int_t& ifst, fortran_int_t& ilst ) {
+ const MatrixA& a, MatrixB& b, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst );
+ wantz, a, b, q, z, ifst, ilst );
 }
 
 //
@@ -319,10 +323,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, MatrixA& a, const MatrixB& b, MatrixQ& q,
- MatrixZ& z, fortran_int_t& ifst, fortran_int_t& ilst ) {
+ MatrixA& a, const MatrixB& b, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst );
+ wantz, a, b, q, z, ifst, ilst );
 }
 
 //
@@ -335,11 +339,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, const MatrixA& a, const MatrixB& b,
- MatrixQ& q, MatrixZ& z, fortran_int_t& ifst,
- fortran_int_t& ilst ) {
+ const MatrixA& a, const MatrixB& b, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst );
+ wantz, a, b, q, z, ifst, ilst );
 }
 
 //
@@ -352,10 +355,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, MatrixA& a, MatrixB& b, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& ifst, fortran_int_t& ilst ) {
+ MatrixA& a, MatrixB& b, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst );
+ wantz, a, b, q, z, ifst, ilst );
 }
 
 //
@@ -368,11 +371,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, const MatrixA& a, MatrixB& b,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& ifst,
- fortran_int_t& ilst ) {
+ const MatrixA& a, MatrixB& b, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst );
+ wantz, a, b, q, z, ifst, ilst );
 }
 
 //
@@ -385,11 +387,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, MatrixA& a, const MatrixB& b,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& ifst,
- fortran_int_t& ilst ) {
+ MatrixA& a, const MatrixB& b, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst );
+ wantz, a, b, q, z, ifst, ilst );
 }
 
 //
@@ -402,11 +403,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, const MatrixA& a, const MatrixB& b,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& ifst,
- fortran_int_t& ilst ) {
+ const MatrixA& a, const MatrixB& b, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst );
+ wantz, a, b, q, z, ifst, ilst );
 }
 
 //
@@ -419,10 +419,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, MatrixA& a, MatrixB& b, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& ifst, fortran_int_t& ilst ) {
+ MatrixA& a, MatrixB& b, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst );
+ wantz, a, b, q, z, ifst, ilst );
 }
 
 //
@@ -435,10 +435,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, const MatrixA& a, MatrixB& b, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& ifst, fortran_int_t& ilst ) {
+ const MatrixA& a, MatrixB& b, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst );
+ wantz, a, b, q, z, ifst, ilst );
 }
 
 //
@@ -451,10 +451,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, MatrixA& a, const MatrixB& b, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& ifst, fortran_int_t& ilst ) {
+ MatrixA& a, const MatrixB& b, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst );
+ wantz, a, b, q, z, ifst, ilst );
 }
 
 //
@@ -467,11 +467,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, const MatrixA& a, const MatrixB& b,
- MatrixQ& q, const MatrixZ& z, fortran_int_t& ifst,
- fortran_int_t& ilst ) {
+ const MatrixA& a, const MatrixB& b, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst );
+ wantz, a, b, q, z, ifst, ilst );
 }
 
 //
@@ -484,10 +483,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, MatrixA& a, MatrixB& b, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& ifst, fortran_int_t& ilst ) {
+ MatrixA& a, MatrixB& b, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst );
+ wantz, a, b, q, z, ifst, ilst );
 }
 
 //
@@ -500,11 +499,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, const MatrixA& a, MatrixB& b,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& ifst,
- fortran_int_t& ilst ) {
+ const MatrixA& a, MatrixB& b, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst );
+ wantz, a, b, q, z, ifst, ilst );
 }
 
 //
@@ -517,11 +515,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, MatrixA& a, const MatrixB& b,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& ifst,
- fortran_int_t& ilst ) {
+ MatrixA& a, const MatrixB& b, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst );
+ wantz, a, b, q, z, ifst, ilst );
 }
 
 //
@@ -534,11 +531,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, const MatrixA& a, const MatrixB& b,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& ifst,
- fortran_int_t& ilst ) {
+ const MatrixA& a, const MatrixB& b, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst );
+ wantz, a, b, q, z, ifst, ilst );
 }
 //
 // Overloaded function for tgexc. Its overload differs for
@@ -551,11 +547,11 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ, typename Workspace >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, MatrixA& a, MatrixB& b, MatrixQ& q,
- MatrixZ& z, const fortran_int_t ifst, fortran_int_t& ilst,
+ MatrixA& a, MatrixB& b, MatrixQ& q, MatrixZ& z,
+ const fortran_int_t ifst, fortran_int_t& ilst,
         Workspace work ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst, work );
+ wantz, a, b, q, z, ifst, ilst, work );
 }
 
 //
@@ -569,10 +565,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, MatrixA& a, MatrixB& b, MatrixQ& q,
- MatrixZ& z, const fortran_int_t ifst, fortran_int_t& ilst ) {
+ MatrixA& a, MatrixB& b, MatrixQ& q, MatrixZ& z,
+ const fortran_int_t ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst, optimal_workspace() );
+ wantz, a, b, q, z, ifst, ilst, optimal_workspace() );
 }
 
 //
@@ -586,11 +582,11 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ, typename Workspace >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, const MatrixA& a, MatrixB& b, MatrixQ& q,
- MatrixZ& z, const fortran_int_t ifst, fortran_int_t& ilst,
+ const MatrixA& a, MatrixB& b, MatrixQ& q, MatrixZ& z,
+ const fortran_int_t ifst, fortran_int_t& ilst,
         Workspace work ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst, work );
+ wantz, a, b, q, z, ifst, ilst, work );
 }
 
 //
@@ -604,10 +600,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, const MatrixA& a, MatrixB& b, MatrixQ& q,
- MatrixZ& z, const fortran_int_t ifst, fortran_int_t& ilst ) {
+ const MatrixA& a, MatrixB& b, MatrixQ& q, MatrixZ& z,
+ const fortran_int_t ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst, optimal_workspace() );
+ wantz, a, b, q, z, ifst, ilst, optimal_workspace() );
 }
 
 //
@@ -621,11 +617,11 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ, typename Workspace >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, MatrixA& a, const MatrixB& b, MatrixQ& q,
- MatrixZ& z, const fortran_int_t ifst, fortran_int_t& ilst,
+ MatrixA& a, const MatrixB& b, MatrixQ& q, MatrixZ& z,
+ const fortran_int_t ifst, fortran_int_t& ilst,
         Workspace work ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst, work );
+ wantz, a, b, q, z, ifst, ilst, work );
 }
 
 //
@@ -639,10 +635,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, MatrixA& a, const MatrixB& b, MatrixQ& q,
- MatrixZ& z, const fortran_int_t ifst, fortran_int_t& ilst ) {
+ MatrixA& a, const MatrixB& b, MatrixQ& q, MatrixZ& z,
+ const fortran_int_t ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst, optimal_workspace() );
+ wantz, a, b, q, z, ifst, ilst, optimal_workspace() );
 }
 
 //
@@ -656,11 +652,11 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ, typename Workspace >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, const MatrixA& a, const MatrixB& b,
- MatrixQ& q, MatrixZ& z, const fortran_int_t ifst,
- fortran_int_t& ilst, Workspace work ) {
+ const MatrixA& a, const MatrixB& b, MatrixQ& q, MatrixZ& z,
+ const fortran_int_t ifst, fortran_int_t& ilst,
+ Workspace work ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst, work );
+ wantz, a, b, q, z, ifst, ilst, work );
 }
 
 //
@@ -674,11 +670,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, const MatrixA& a, const MatrixB& b,
- MatrixQ& q, MatrixZ& z, const fortran_int_t ifst,
- fortran_int_t& ilst ) {
+ const MatrixA& a, const MatrixB& b, MatrixQ& q, MatrixZ& z,
+ const fortran_int_t ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst, optimal_workspace() );
+ wantz, a, b, q, z, ifst, ilst, optimal_workspace() );
 }
 
 //
@@ -692,11 +687,11 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ, typename Workspace >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, MatrixA& a, MatrixB& b, const MatrixQ& q,
- MatrixZ& z, const fortran_int_t ifst, fortran_int_t& ilst,
+ MatrixA& a, MatrixB& b, const MatrixQ& q, MatrixZ& z,
+ const fortran_int_t ifst, fortran_int_t& ilst,
         Workspace work ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst, work );
+ wantz, a, b, q, z, ifst, ilst, work );
 }
 
 //
@@ -710,10 +705,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, MatrixA& a, MatrixB& b, const MatrixQ& q,
- MatrixZ& z, const fortran_int_t ifst, fortran_int_t& ilst ) {
+ MatrixA& a, MatrixB& b, const MatrixQ& q, MatrixZ& z,
+ const fortran_int_t ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst, optimal_workspace() );
+ wantz, a, b, q, z, ifst, ilst, optimal_workspace() );
 }
 
 //
@@ -727,11 +722,11 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ, typename Workspace >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, const MatrixA& a, MatrixB& b,
- const MatrixQ& q, MatrixZ& z, const fortran_int_t ifst,
- fortran_int_t& ilst, Workspace work ) {
+ const MatrixA& a, MatrixB& b, const MatrixQ& q, MatrixZ& z,
+ const fortran_int_t ifst, fortran_int_t& ilst,
+ Workspace work ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst, work );
+ wantz, a, b, q, z, ifst, ilst, work );
 }
 
 //
@@ -745,11 +740,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, const MatrixA& a, MatrixB& b,
- const MatrixQ& q, MatrixZ& z, const fortran_int_t ifst,
- fortran_int_t& ilst ) {
+ const MatrixA& a, MatrixB& b, const MatrixQ& q, MatrixZ& z,
+ const fortran_int_t ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst, optimal_workspace() );
+ wantz, a, b, q, z, ifst, ilst, optimal_workspace() );
 }
 
 //
@@ -763,11 +757,11 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ, typename Workspace >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, MatrixA& a, const MatrixB& b,
- const MatrixQ& q, MatrixZ& z, const fortran_int_t ifst,
- fortran_int_t& ilst, Workspace work ) {
+ MatrixA& a, const MatrixB& b, const MatrixQ& q, MatrixZ& z,
+ const fortran_int_t ifst, fortran_int_t& ilst,
+ Workspace work ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst, work );
+ wantz, a, b, q, z, ifst, ilst, work );
 }
 
 //
@@ -781,11 +775,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, MatrixA& a, const MatrixB& b,
- const MatrixQ& q, MatrixZ& z, const fortran_int_t ifst,
- fortran_int_t& ilst ) {
+ MatrixA& a, const MatrixB& b, const MatrixQ& q, MatrixZ& z,
+ const fortran_int_t ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst, optimal_workspace() );
+ wantz, a, b, q, z, ifst, ilst, optimal_workspace() );
 }
 
 //
@@ -799,11 +792,11 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ, typename Workspace >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, const MatrixA& a, const MatrixB& b,
- const MatrixQ& q, MatrixZ& z, const fortran_int_t ifst,
- fortran_int_t& ilst, Workspace work ) {
+ const MatrixA& a, const MatrixB& b, const MatrixQ& q, MatrixZ& z,
+ const fortran_int_t ifst, fortran_int_t& ilst,
+ Workspace work ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst, work );
+ wantz, a, b, q, z, ifst, ilst, work );
 }
 
 //
@@ -817,11 +810,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, const MatrixA& a, const MatrixB& b,
- const MatrixQ& q, MatrixZ& z, const fortran_int_t ifst,
- fortran_int_t& ilst ) {
+ const MatrixA& a, const MatrixB& b, const MatrixQ& q, MatrixZ& z,
+ const fortran_int_t ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst, optimal_workspace() );
+ wantz, a, b, q, z, ifst, ilst, optimal_workspace() );
 }
 
 //
@@ -835,11 +827,11 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ, typename Workspace >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, MatrixA& a, MatrixB& b, MatrixQ& q,
- const MatrixZ& z, const fortran_int_t ifst,
- fortran_int_t& ilst, Workspace work ) {
+ MatrixA& a, MatrixB& b, MatrixQ& q, const MatrixZ& z,
+ const fortran_int_t ifst, fortran_int_t& ilst,
+ Workspace work ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst, work );
+ wantz, a, b, q, z, ifst, ilst, work );
 }
 
 //
@@ -853,11 +845,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, MatrixA& a, MatrixB& b, MatrixQ& q,
- const MatrixZ& z, const fortran_int_t ifst,
- fortran_int_t& ilst ) {
+ MatrixA& a, MatrixB& b, MatrixQ& q, const MatrixZ& z,
+ const fortran_int_t ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst, optimal_workspace() );
+ wantz, a, b, q, z, ifst, ilst, optimal_workspace() );
 }
 
 //
@@ -871,11 +862,11 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ, typename Workspace >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, const MatrixA& a, MatrixB& b, MatrixQ& q,
- const MatrixZ& z, const fortran_int_t ifst,
- fortran_int_t& ilst, Workspace work ) {
+ const MatrixA& a, MatrixB& b, MatrixQ& q, const MatrixZ& z,
+ const fortran_int_t ifst, fortran_int_t& ilst,
+ Workspace work ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst, work );
+ wantz, a, b, q, z, ifst, ilst, work );
 }
 
 //
@@ -889,11 +880,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, const MatrixA& a, MatrixB& b, MatrixQ& q,
- const MatrixZ& z, const fortran_int_t ifst,
- fortran_int_t& ilst ) {
+ const MatrixA& a, MatrixB& b, MatrixQ& q, const MatrixZ& z,
+ const fortran_int_t ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst, optimal_workspace() );
+ wantz, a, b, q, z, ifst, ilst, optimal_workspace() );
 }
 
 //
@@ -907,11 +897,11 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ, typename Workspace >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, MatrixA& a, const MatrixB& b, MatrixQ& q,
- const MatrixZ& z, const fortran_int_t ifst,
- fortran_int_t& ilst, Workspace work ) {
+ MatrixA& a, const MatrixB& b, MatrixQ& q, const MatrixZ& z,
+ const fortran_int_t ifst, fortran_int_t& ilst,
+ Workspace work ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst, work );
+ wantz, a, b, q, z, ifst, ilst, work );
 }
 
 //
@@ -925,11 +915,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, MatrixA& a, const MatrixB& b, MatrixQ& q,
- const MatrixZ& z, const fortran_int_t ifst,
- fortran_int_t& ilst ) {
+ MatrixA& a, const MatrixB& b, MatrixQ& q, const MatrixZ& z,
+ const fortran_int_t ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst, optimal_workspace() );
+ wantz, a, b, q, z, ifst, ilst, optimal_workspace() );
 }
 
 //
@@ -943,11 +932,11 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ, typename Workspace >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, const MatrixA& a, const MatrixB& b,
- MatrixQ& q, const MatrixZ& z, const fortran_int_t ifst,
- fortran_int_t& ilst, Workspace work ) {
+ const MatrixA& a, const MatrixB& b, MatrixQ& q, const MatrixZ& z,
+ const fortran_int_t ifst, fortran_int_t& ilst,
+ Workspace work ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst, work );
+ wantz, a, b, q, z, ifst, ilst, work );
 }
 
 //
@@ -961,11 +950,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, const MatrixA& a, const MatrixB& b,
- MatrixQ& q, const MatrixZ& z, const fortran_int_t ifst,
- fortran_int_t& ilst ) {
+ const MatrixA& a, const MatrixB& b, MatrixQ& q, const MatrixZ& z,
+ const fortran_int_t ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst, optimal_workspace() );
+ wantz, a, b, q, z, ifst, ilst, optimal_workspace() );
 }
 
 //
@@ -979,11 +967,11 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ, typename Workspace >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, MatrixA& a, MatrixB& b, const MatrixQ& q,
- const MatrixZ& z, const fortran_int_t ifst,
- fortran_int_t& ilst, Workspace work ) {
+ MatrixA& a, MatrixB& b, const MatrixQ& q, const MatrixZ& z,
+ const fortran_int_t ifst, fortran_int_t& ilst,
+ Workspace work ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst, work );
+ wantz, a, b, q, z, ifst, ilst, work );
 }
 
 //
@@ -997,11 +985,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, MatrixA& a, MatrixB& b, const MatrixQ& q,
- const MatrixZ& z, const fortran_int_t ifst,
- fortran_int_t& ilst ) {
+ MatrixA& a, MatrixB& b, const MatrixQ& q, const MatrixZ& z,
+ const fortran_int_t ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst, optimal_workspace() );
+ wantz, a, b, q, z, ifst, ilst, optimal_workspace() );
 }
 
 //
@@ -1015,11 +1002,11 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ, typename Workspace >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, const MatrixA& a, MatrixB& b,
- const MatrixQ& q, const MatrixZ& z, const fortran_int_t ifst,
- fortran_int_t& ilst, Workspace work ) {
+ const MatrixA& a, MatrixB& b, const MatrixQ& q, const MatrixZ& z,
+ const fortran_int_t ifst, fortran_int_t& ilst,
+ Workspace work ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst, work );
+ wantz, a, b, q, z, ifst, ilst, work );
 }
 
 //
@@ -1033,11 +1020,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, const MatrixA& a, MatrixB& b,
- const MatrixQ& q, const MatrixZ& z, const fortran_int_t ifst,
- fortran_int_t& ilst ) {
+ const MatrixA& a, MatrixB& b, const MatrixQ& q, const MatrixZ& z,
+ const fortran_int_t ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst, optimal_workspace() );
+ wantz, a, b, q, z, ifst, ilst, optimal_workspace() );
 }
 
 //
@@ -1051,11 +1037,11 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ, typename Workspace >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, MatrixA& a, const MatrixB& b,
- const MatrixQ& q, const MatrixZ& z, const fortran_int_t ifst,
- fortran_int_t& ilst, Workspace work ) {
+ MatrixA& a, const MatrixB& b, const MatrixQ& q, const MatrixZ& z,
+ const fortran_int_t ifst, fortran_int_t& ilst,
+ Workspace work ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst, work );
+ wantz, a, b, q, z, ifst, ilst, work );
 }
 
 //
@@ -1069,11 +1055,10 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, MatrixA& a, const MatrixB& b,
- const MatrixQ& q, const MatrixZ& z, const fortran_int_t ifst,
- fortran_int_t& ilst ) {
+ MatrixA& a, const MatrixB& b, const MatrixQ& q, const MatrixZ& z,
+ const fortran_int_t ifst, fortran_int_t& ilst ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst, optimal_workspace() );
+ wantz, a, b, q, z, ifst, ilst, optimal_workspace() );
 }
 
 //
@@ -1087,11 +1072,11 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ, typename Workspace >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, const MatrixA& a, const MatrixB& b,
- const MatrixQ& q, const MatrixZ& z, const fortran_int_t ifst,
+ const MatrixA& a, const MatrixB& b, const MatrixQ& q,
+ const MatrixZ& z, const fortran_int_t ifst,
         fortran_int_t& ilst, Workspace work ) {
     return tgexc_impl< typename value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst, work );
+ wantz, a, b, q, z, ifst, ilst, work );
 }
 
 //
@@ -1105,11 +1090,11 @@
 template< typename MatrixA, typename MatrixB, typename MatrixQ,
         typename MatrixZ >
 inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
- const fortran_int_t n, const MatrixA& a, const MatrixB& b,
- const MatrixQ& q, const MatrixZ& z, const fortran_int_t ifst,
+ 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 value< MatrixA >::type >::invoke( wantq,
- wantz, n, a, b, q, z, ifst, ilst, optimal_workspace() );
+ wantz, a, b, q, z, ifst, ilst, optimal_workspace() );
 }
 
 } // namespace lapack

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-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -162,11 +162,11 @@
             typename WORK, typename IWORK >
     static std::ptrdiff_t invoke( const fortran_int_t ijob,
             const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- real_type& pl, real_type& pr, VectorDIF& dif, detail::workspace2<
- WORK, IWORK > work ) {
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m, real_type& pl,
+ real_type& pr, VectorDIF& dif, detail::workspace2< WORK,
+ IWORK > work ) {
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< MatrixA >::type >::type,
                 typename remove_const< typename value<
@@ -203,26 +203,28 @@
         BOOST_STATIC_ASSERT( (is_mutable< MatrixQ >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< MatrixZ >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorDIF >::value) );
- BOOST_ASSERT( n >= 0 );
- BOOST_ASSERT( size(alphai) >= n );
- BOOST_ASSERT( size(alphar) >= n );
- BOOST_ASSERT( size(select) >= n );
+ BOOST_ASSERT( size(alphai) >= size_column(a) );
+ BOOST_ASSERT( size(alphar) >= size_column(a) );
+ BOOST_ASSERT( size(select) >= size_column(a) );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
                 min_size_iwork( $CALL_MIN_SIZE ));
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
                 $CALL_MIN_SIZE ));
+ BOOST_ASSERT( size_column(a) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_minor(q) == 1 || stride_minor(q) == 1 );
         BOOST_ASSERT( size_minor(z) == 1 || stride_minor(z) == 1 );
- BOOST_ASSERT( stride_major(a) >= std::max< std::ptrdiff_t >(1,n) );
- BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::tgsen( ijob, wantq, wantz, begin_value(select), n,
- begin_value(a), stride_major(a), begin_value(b),
- stride_major(b), begin_value(alphar), begin_value(alphai),
- begin_value(beta), begin_value(q), stride_major(q),
- begin_value(z), stride_major(z), m, pl, pr, begin_value(dif),
- begin_value(work.select(real_type())),
+ BOOST_ASSERT( stride_major(a) >= std::max< std::ptrdiff_t >(1,
+ size_column(a)) );
+ BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
+ size_column(a)) );
+ return detail::tgsen( ijob, wantq, wantz, begin_value(select),
+ size_column(a), begin_value(a), stride_major(a),
+ begin_value(b), stride_major(b), begin_value(alphar),
+ begin_value(alphai), begin_value(beta), begin_value(q),
+ stride_major(q), begin_value(z), stride_major(z), m, pl, pr,
+ begin_value(dif), begin_value(work.select(real_type())),
                 size(work.select(real_type())),
                 begin_value(work.select(fortran_int_t())),
                 size(work.select(fortran_int_t())) );
@@ -240,17 +242,16 @@
             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 VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- real_type& pl, real_type& pr, VectorDIF& dif,
- minimal_workspace work ) {
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m, real_type& pl,
+ real_type& pr, VectorDIF& dif, minimal_workspace work ) {
         bindings::detail::array< real_type > tmp_work( min_size_work(
                 $CALL_MIN_SIZE ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
                 min_size_iwork( $CALL_MIN_SIZE ) );
- return invoke( ijob, wantq, wantz, select, n, a, b, alphar, alphai,
- beta, q, z, m, pl, pr, dif, workspace( tmp_work, tmp_iwork ) );
+ return invoke( ijob, wantq, wantz, select, a, b, alphar, alphai, beta,
+ q, z, m, pl, pr, dif, workspace( tmp_work, tmp_iwork ) );
     }
 
     //
@@ -265,25 +266,24 @@
             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 VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- real_type& pl, real_type& pr, VectorDIF& dif,
- optimal_workspace work ) {
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m, real_type& pl,
+ real_type& pr, VectorDIF& dif, optimal_workspace work ) {
         real_type opt_size_work;
         fortran_int_t opt_size_iwork;
- detail::tgsen( ijob, wantq, wantz, begin_value(select), n,
- begin_value(a), stride_major(a), begin_value(b),
- stride_major(b), begin_value(alphar), begin_value(alphai),
- begin_value(beta), begin_value(q), stride_major(q),
- begin_value(z), stride_major(z), m, pl, pr, begin_value(dif),
- &opt_size_work, -1, &opt_size_iwork, -1 );
+ detail::tgsen( ijob, wantq, wantz, begin_value(select),
+ size_column(a), begin_value(a), stride_major(a),
+ begin_value(b), stride_major(b), begin_value(alphar),
+ begin_value(alphai), begin_value(beta), begin_value(q),
+ stride_major(q), begin_value(z), stride_major(z), m, pl, pr,
+ begin_value(dif), &opt_size_work, -1, &opt_size_iwork, -1 );
         bindings::detail::array< real_type > tmp_work(
                 traits::detail::to_int( opt_size_work ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
                 opt_size_iwork );
- return invoke( ijob, wantq, wantz, select, n, a, b, alphar, alphai,
- beta, q, z, m, pl, pr, dif, workspace( tmp_work, tmp_iwork ) );
+ return invoke( ijob, wantq, wantz, select, a, b, alphar, alphai, beta,
+ q, z, m, pl, pr, dif, workspace( tmp_work, tmp_iwork ) );
     }
 
     //
@@ -324,9 +324,9 @@
             typename IWORK >
     static std::ptrdiff_t invoke( const fortran_int_t ijob,
             const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, real_type& pl, real_type& pr,
+ 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,
             VectorDIF& dif, detail::workspace2< WORK, IWORK > work ) {
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< MatrixA >::type >::type,
@@ -355,24 +355,26 @@
         BOOST_STATIC_ASSERT( (is_mutable< MatrixQ >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< MatrixZ >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorDIF >::value) );
- BOOST_ASSERT( n >= 0 );
- BOOST_ASSERT( size(alpha) >= n );
- BOOST_ASSERT( size(select) >= n );
+ BOOST_ASSERT( size(alpha) >= size_column(a) );
+ BOOST_ASSERT( size(select) >= size_column(a) );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
                 min_size_iwork( $CALL_MIN_SIZE ));
         BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
                 $CALL_MIN_SIZE ));
+ BOOST_ASSERT( size_column(a) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_minor(q) == 1 || stride_minor(q) == 1 );
         BOOST_ASSERT( size_minor(z) == 1 || stride_minor(z) == 1 );
- BOOST_ASSERT( stride_major(a) >= std::max< std::ptrdiff_t >(1,n) );
- BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::tgsen( ijob, wantq, wantz, begin_value(select), n,
- begin_value(a), stride_major(a), begin_value(b),
- stride_major(b), begin_value(alpha), begin_value(beta),
- begin_value(q), stride_major(q), begin_value(z),
- stride_major(z), m, pl, pr, begin_value(dif),
+ BOOST_ASSERT( stride_major(a) >= std::max< std::ptrdiff_t >(1,
+ size_column(a)) );
+ BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
+ size_column(a)) );
+ return detail::tgsen( ijob, wantq, wantz, begin_value(select),
+ size_column(a), begin_value(a), stride_major(a),
+ begin_value(b), stride_major(b), begin_value(alpha),
+ begin_value(beta), begin_value(q), stride_major(q),
+ begin_value(z), stride_major(z), m, pl, pr, begin_value(dif),
                 begin_value(work.select(value_type())),
                 size(work.select(value_type())),
                 begin_value(work.select(fortran_int_t())),
@@ -391,16 +393,16 @@
             typename MatrixZ, typename VectorDIF >
     static std::ptrdiff_t invoke( const fortran_int_t ijob,
             const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, real_type& pl, real_type& pr,
+ 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,
             VectorDIF& dif, minimal_workspace work ) {
         bindings::detail::array< value_type > tmp_work( min_size_work(
                 $CALL_MIN_SIZE ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
                 min_size_iwork( $CALL_MIN_SIZE ) );
- return invoke( ijob, wantq, wantz, select, n, a, b, alpha, beta, q, z,
- m, pl, pr, dif, workspace( tmp_work, tmp_iwork ) );
+ return invoke( ijob, wantq, wantz, select, a, b, alpha, beta, q, z, m,
+ pl, pr, dif, workspace( tmp_work, tmp_iwork ) );
     }
 
     //
@@ -415,24 +417,24 @@
             typename MatrixZ, typename VectorDIF >
     static std::ptrdiff_t invoke( const fortran_int_t ijob,
             const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, real_type& pl, real_type& pr,
+ 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,
             VectorDIF& dif, optimal_workspace work ) {
         value_type opt_size_work;
         fortran_int_t opt_size_iwork;
- detail::tgsen( ijob, wantq, wantz, begin_value(select), n,
- begin_value(a), stride_major(a), begin_value(b),
- stride_major(b), begin_value(alpha), begin_value(beta),
- begin_value(q), stride_major(q), begin_value(z),
- stride_major(z), m, pl, pr, begin_value(dif), &opt_size_work,
- -1, &opt_size_iwork, -1 );
+ detail::tgsen( ijob, wantq, wantz, begin_value(select),
+ size_column(a), begin_value(a), stride_major(a),
+ begin_value(b), stride_major(b), begin_value(alpha),
+ begin_value(beta), begin_value(q), stride_major(q),
+ begin_value(z), stride_major(z), m, pl, pr, begin_value(dif),
+ &opt_size_work, -1, &opt_size_iwork, -1 );
         bindings::detail::array< value_type > tmp_work(
                 traits::detail::to_int( opt_size_work ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
                 opt_size_iwork );
- return invoke( ijob, wantq, wantz, select, n, a, b, alpha, beta, q, z,
- m, pl, pr, dif, workspace( tmp_work, tmp_iwork ) );
+ return invoke( ijob, wantq, wantz, select, a, b, alpha, beta, q, z, m,
+ pl, pr, dif, workspace( tmp_work, tmp_iwork ) );
     }
 
     //
@@ -480,16 +482,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -509,15 +511,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -538,16 +540,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -567,15 +569,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -596,16 +598,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -625,15 +627,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -654,16 +656,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -683,15 +685,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -712,16 +714,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -741,15 +743,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -770,16 +772,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -799,15 +801,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -828,16 +830,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -857,15 +859,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -886,16 +888,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -915,15 +917,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -944,16 +946,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -973,15 +975,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -1002,16 +1004,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -1031,15 +1033,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -1060,16 +1062,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -1089,15 +1091,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -1118,16 +1120,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -1147,15 +1149,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -1176,16 +1178,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
         VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -1205,15 +1207,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
         VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -1234,16 +1236,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -1263,15 +1265,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -1292,16 +1294,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -1321,15 +1323,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -1350,16 +1352,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -1379,15 +1381,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -1408,16 +1410,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -1437,15 +1439,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -1466,16 +1468,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -1495,15 +1497,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -1524,16 +1526,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -1553,15 +1555,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -1582,16 +1584,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -1611,15 +1613,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -1640,16 +1642,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -1669,15 +1671,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -1698,16 +1700,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -1727,15 +1729,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -1756,16 +1758,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -1785,15 +1787,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -1814,16 +1816,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -1843,15 +1845,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -1872,16 +1874,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -1901,15 +1903,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -1930,16 +1932,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -1959,16 +1961,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -1989,16 +1990,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -2018,15 +2019,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -2047,16 +2048,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -2076,16 +2077,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -2106,16 +2106,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -2135,15 +2135,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -2164,16 +2164,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -2193,16 +2193,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -2223,16 +2222,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -2252,16 +2251,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -2282,16 +2280,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -2311,16 +2309,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -2341,16 +2338,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -2370,15 +2367,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -2399,16 +2396,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -2428,15 +2425,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -2457,16 +2454,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -2486,15 +2483,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -2515,16 +2512,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- 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 value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -2544,15 +2541,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- 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 value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -2573,16 +2570,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -2602,15 +2599,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -2631,16 +2628,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -2660,15 +2657,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -2689,16 +2686,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -2718,15 +2715,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -2747,16 +2744,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -2776,15 +2773,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -2805,16 +2802,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -2834,15 +2831,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -2863,16 +2860,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -2892,16 +2889,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -2922,16 +2918,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -2951,15 +2947,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -2980,16 +2976,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -3009,16 +3005,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -3039,16 +3034,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
         VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -3068,15 +3063,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
         VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -3097,16 +3092,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -3126,16 +3121,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -3156,16 +3150,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -3185,16 +3179,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -3215,16 +3208,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -3244,16 +3237,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -3274,16 +3266,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -3303,15 +3295,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -3332,16 +3324,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -3361,16 +3353,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -3391,16 +3382,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -3420,15 +3411,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -3449,16 +3440,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -3478,16 +3469,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -3508,16 +3498,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -3537,15 +3527,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -3566,16 +3556,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -3595,16 +3585,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -3625,16 +3614,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -3654,15 +3643,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -3683,16 +3672,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -3712,16 +3701,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -3742,16 +3730,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -3771,15 +3759,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -3800,16 +3788,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -3829,16 +3817,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -3859,16 +3846,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -3888,15 +3875,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -3917,16 +3904,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -3946,16 +3933,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -3976,16 +3962,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -4005,15 +3991,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -4034,16 +4020,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -4063,16 +4049,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -4093,16 +4078,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -4122,16 +4107,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -4152,16 +4136,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -4181,16 +4165,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -4211,16 +4194,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -4240,15 +4223,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -4269,16 +4252,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -4298,15 +4281,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -4327,16 +4310,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -4356,15 +4339,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -4385,16 +4368,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- 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 value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -4414,15 +4397,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- 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 value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -4443,16 +4426,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -4472,15 +4455,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -4501,16 +4484,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -4530,15 +4513,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -4559,16 +4542,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -4588,15 +4571,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -4617,16 +4600,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -4646,15 +4629,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -4675,16 +4658,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -4704,15 +4687,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -4733,16 +4716,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -4762,16 +4745,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -4792,16 +4774,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -4821,15 +4803,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -4850,16 +4832,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -4879,16 +4861,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -4909,16 +4890,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
         VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -4938,15 +4919,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
         VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -4967,16 +4948,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -4996,16 +4977,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -5026,16 +5006,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -5055,16 +5035,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -5085,16 +5064,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -5114,16 +5093,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -5144,16 +5122,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -5173,15 +5151,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -5202,16 +5180,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -5231,16 +5209,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -5261,16 +5238,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -5290,15 +5267,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -5319,16 +5296,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -5348,16 +5325,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -5378,16 +5354,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -5407,15 +5383,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -5436,16 +5412,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -5465,16 +5441,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -5495,16 +5470,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -5524,15 +5499,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -5553,16 +5528,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -5582,16 +5557,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -5612,16 +5586,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -5641,15 +5615,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -5670,16 +5644,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -5699,16 +5673,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -5729,16 +5702,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -5758,15 +5731,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -5787,16 +5760,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -5816,16 +5789,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -5846,16 +5818,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -5875,15 +5847,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -5904,16 +5876,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -5933,16 +5905,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -5963,16 +5934,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -5992,16 +5963,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -6022,16 +5992,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -6051,16 +6021,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -6081,16 +6050,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ 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< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -6110,15 +6079,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ 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< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -6139,16 +6108,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- 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 value< MatrixA >::type >::type& pl,
+ 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 value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -6168,16 +6137,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- 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 value< MatrixA >::type >::type& pl,
+ 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 value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -6198,16 +6166,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, 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 value<
+ 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< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -6227,15 +6195,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, 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 value<
+ 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< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -6256,17 +6224,17 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- 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 value< MatrixA >::type >::type& pl,
+ 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 value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
- return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
-}
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
+ return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
+}
 
 //
 // Overloaded function for tgsen. Its overload differs for
@@ -6285,16 +6253,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- 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 value< MatrixA >::type >::type& pl,
+ 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 value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -6315,16 +6282,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -6344,15 +6311,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -6373,16 +6340,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -6402,16 +6369,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -6432,16 +6398,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -6461,15 +6427,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -6490,16 +6456,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -6519,16 +6485,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -6549,16 +6514,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -6578,15 +6543,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -6607,16 +6572,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -6636,16 +6601,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -6666,16 +6630,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -6695,15 +6659,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -6724,16 +6688,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -6753,16 +6717,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -6783,16 +6746,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
         VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -6812,15 +6775,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
         VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -6841,16 +6804,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -6870,16 +6833,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -6900,16 +6862,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -6929,16 +6891,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -6959,16 +6920,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -6988,16 +6949,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -7018,16 +6978,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -7047,15 +7007,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -7076,16 +7036,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -7105,16 +7065,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -7135,16 +7094,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -7164,15 +7123,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -7193,16 +7152,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -7222,16 +7181,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -7252,16 +7210,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -7281,15 +7239,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -7310,16 +7268,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -7339,16 +7297,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -7369,16 +7326,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -7398,15 +7355,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -7427,16 +7384,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -7456,16 +7413,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -7486,16 +7442,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -7515,15 +7471,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -7544,16 +7500,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -7573,16 +7529,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -7603,16 +7558,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -7632,15 +7587,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -7661,16 +7616,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -7690,16 +7645,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -7720,16 +7674,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -7749,15 +7703,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -7778,16 +7732,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -7807,16 +7761,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -7837,16 +7790,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -7866,16 +7819,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -7896,16 +7848,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -7925,16 +7877,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -7955,16 +7906,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -7984,15 +7935,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -8013,16 +7964,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -8042,15 +7993,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -8071,16 +8022,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -8100,15 +8051,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -8129,16 +8080,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -8158,15 +8109,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -8187,16 +8138,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -8216,15 +8167,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -8245,16 +8196,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -8274,15 +8225,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -8303,16 +8254,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -8332,15 +8283,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -8361,16 +8312,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -8390,15 +8341,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -8419,16 +8370,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -8448,15 +8399,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -8477,16 +8428,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -8506,15 +8457,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -8535,16 +8486,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -8564,15 +8515,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -8593,16 +8544,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -8622,15 +8573,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -8651,16 +8602,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
         VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -8680,15 +8631,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
         VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -8709,16 +8660,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -8738,15 +8689,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -8767,16 +8718,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -8796,15 +8747,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -8825,16 +8776,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -8854,15 +8805,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -8883,16 +8834,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -8912,15 +8863,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -8941,16 +8892,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -8970,15 +8921,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -8999,16 +8950,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -9028,15 +8979,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -9057,16 +9008,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -9086,15 +9037,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -9115,16 +9066,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -9144,15 +9095,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -9173,16 +9124,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -9202,15 +9153,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -9231,16 +9182,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -9260,15 +9211,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -9289,16 +9240,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -9318,15 +9269,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -9347,16 +9298,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -9376,15 +9327,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -9405,16 +9356,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -9434,16 +9385,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -9464,16 +9414,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -9493,15 +9443,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -9522,16 +9472,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -9551,16 +9501,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -9581,16 +9530,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -9610,15 +9559,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -9639,16 +9588,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -9668,16 +9617,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -9698,16 +9646,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -9727,16 +9675,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -9757,16 +9704,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -9786,16 +9733,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -9816,16 +9762,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -9845,15 +9791,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -9874,16 +9820,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -9903,15 +9849,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -9932,16 +9878,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -9961,15 +9907,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -9990,16 +9936,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- 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 value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -10019,15 +9965,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- 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 value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -10048,16 +9994,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -10077,15 +10023,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -10106,16 +10052,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -10135,15 +10081,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -10164,16 +10110,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -10193,15 +10139,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -10222,16 +10168,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -10251,15 +10197,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -10280,16 +10226,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -10309,15 +10255,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -10338,16 +10284,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -10367,16 +10313,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -10397,16 +10342,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -10426,15 +10371,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -10455,16 +10400,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -10484,16 +10429,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -10514,16 +10458,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
         VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -10543,15 +10487,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
         VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -10572,16 +10516,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -10601,16 +10545,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -10631,16 +10574,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -10660,16 +10603,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -10690,16 +10632,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -10719,16 +10661,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -10749,16 +10690,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -10778,15 +10719,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -10807,16 +10748,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -10836,16 +10777,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -10866,16 +10806,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -10895,15 +10835,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -10924,16 +10864,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -10953,16 +10893,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -10983,16 +10922,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -11012,15 +10951,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -11041,16 +10980,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -11070,16 +11009,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -11100,16 +11038,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -11129,15 +11067,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -11158,16 +11096,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -11187,16 +11125,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -11217,16 +11154,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -11246,15 +11183,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -11275,16 +11212,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -11304,16 +11241,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -11334,16 +11270,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -11363,15 +11299,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -11392,16 +11328,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -11421,16 +11357,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -11451,16 +11386,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -11480,15 +11415,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -11509,16 +11444,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -11538,16 +11473,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -11568,16 +11502,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -11597,16 +11531,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -11627,16 +11560,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -11656,16 +11589,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -11686,16 +11618,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -11715,15 +11647,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -11744,16 +11676,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -11773,15 +11705,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -11802,16 +11734,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -11831,15 +11763,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -11860,16 +11792,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- 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 value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -11889,15 +11821,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- 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 value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -11918,16 +11850,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -11947,15 +11879,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -11976,16 +11908,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -12005,15 +11937,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -12034,16 +11966,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -12063,15 +11995,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -12092,16 +12024,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -12121,15 +12053,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -12150,16 +12082,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -12179,15 +12111,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -12208,16 +12140,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -12237,16 +12169,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -12267,16 +12198,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -12296,15 +12227,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -12325,16 +12256,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -12354,16 +12285,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -12384,16 +12314,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
         VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -12413,15 +12343,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
         VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -12442,16 +12372,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -12471,16 +12401,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -12501,16 +12430,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -12530,16 +12459,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -12560,16 +12488,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -12589,16 +12517,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -12619,16 +12546,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -12648,15 +12575,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -12677,16 +12604,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -12706,16 +12633,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -12736,16 +12662,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -12765,15 +12691,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -12794,16 +12720,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -12823,16 +12749,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -12853,16 +12778,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -12882,15 +12807,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -12911,16 +12836,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -12940,16 +12865,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -12970,16 +12894,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -12999,15 +12923,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -13028,16 +12952,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -13057,16 +12981,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -13087,16 +13010,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -13116,15 +13039,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -13145,16 +13068,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -13174,16 +13097,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -13204,16 +13126,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -13233,15 +13155,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -13262,16 +13184,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -13291,16 +13213,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -13321,16 +13242,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -13350,15 +13271,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -13379,16 +13300,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -13408,16 +13329,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -13438,16 +13358,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -13467,16 +13387,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -13497,16 +13416,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -13526,16 +13445,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -13556,16 +13474,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ 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< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -13585,15 +13503,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ 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< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -13614,16 +13532,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- 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 value< MatrixA >::type >::type& pl,
+ 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 value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -13643,16 +13561,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- 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 value< MatrixA >::type >::type& pl,
+ 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 value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -13673,16 +13590,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, 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 value<
+ 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< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -13702,15 +13619,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, 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 value<
+ 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< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -13731,16 +13648,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- 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 value< MatrixA >::type >::type& pl,
+ 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 value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -13760,16 +13677,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- 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 value< MatrixA >::type >::type& pl,
+ 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 value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -13790,16 +13706,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -13819,15 +13735,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -13848,16 +13764,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -13877,16 +13793,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -13907,16 +13822,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -13936,15 +13851,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -13965,16 +13880,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -13994,16 +13909,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -14024,16 +13938,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -14053,15 +13967,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -14082,16 +13996,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -14111,16 +14025,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -14141,16 +14054,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -14170,15 +14083,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
- VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -14199,16 +14112,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -14228,16 +14141,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai, VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -14258,16 +14170,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
         VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -14287,15 +14199,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
         VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -14316,16 +14228,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -14345,16 +14257,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -14375,16 +14286,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -14404,16 +14315,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -14434,16 +14344,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -14463,16 +14373,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -14493,16 +14402,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -14522,15 +14431,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -14551,16 +14460,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -14580,16 +14489,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -14610,16 +14518,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -14639,15 +14547,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, VectorALPHAI& alphai,
- const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -14668,16 +14576,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -14697,16 +14605,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, VectorALPHAI& alphai, const VectorBETA& beta,
+ const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -14727,16 +14634,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -14756,15 +14663,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -14785,16 +14692,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -14814,16 +14721,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -14844,16 +14750,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -14873,15 +14779,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -14902,16 +14808,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -14931,16 +14837,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
- return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -14961,16 +14866,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -14990,15 +14895,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -15019,16 +14924,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -15048,16 +14953,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -15078,16 +14982,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -15107,15 +15011,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -15136,16 +15040,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -15165,16 +15069,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -15195,16 +15098,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -15224,15 +15127,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
         const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
         fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -15253,16 +15156,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -15282,16 +15185,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -15312,16 +15214,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -15341,16 +15243,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 
 //
@@ -15371,16 +15272,16 @@
         typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, work );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, work );
 }
 
 //
@@ -15400,16 +15301,15 @@
         typename MatrixQ, typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHAR& alphar,
- const VectorALPHAI& alphai, const VectorBETA& beta, const MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHAR& alphar, const VectorALPHAI& alphai,
+ const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alphar, alphai, beta, q, z, m, pl,
- pr, dif, optimal_workspace() );
+ wantq, wantz, select, a, b, alphar, alphai, beta, q, z, m, pl, pr,
+ dif, optimal_workspace() );
 }
 //
 // Overloaded function for tgsen. Its overload differs for
@@ -15427,14 +15327,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -15454,14 +15354,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -15481,15 +15380,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
- MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -15509,14 +15407,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
- MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -15536,14 +15433,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -15563,14 +15460,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -15590,15 +15486,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -15618,14 +15513,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -15645,14 +15539,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -15672,14 +15566,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -15699,15 +15592,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHA& alpha,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -15727,14 +15619,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHA& alpha,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -15754,15 +15645,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHA& alpha, VectorBETA& beta,
- MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -15782,14 +15672,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHA& alpha, VectorBETA& beta,
- MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -15809,15 +15698,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHA& alpha,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -15837,14 +15725,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHA& alpha,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -15864,14 +15751,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -15891,14 +15778,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -15918,15 +15804,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHA& alpha,
- const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -15946,14 +15831,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHA& alpha,
- const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -15973,15 +15857,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, const VectorBETA& beta,
- MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -16001,14 +15884,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, const VectorBETA& beta,
- MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -16028,15 +15910,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
- const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -16056,14 +15937,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
- const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -16083,15 +15963,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHA& alpha, const VectorBETA& beta,
- MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -16111,14 +15990,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHA& alpha, const VectorBETA& beta,
- MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -16138,15 +16017,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHA& alpha,
- const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -16166,14 +16044,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHA& alpha,
- const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -16193,15 +16071,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHA& alpha, const VectorBETA& beta,
- MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -16221,14 +16098,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHA& alpha, const VectorBETA& beta,
- MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -16248,15 +16125,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHA& alpha,
- const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -16276,14 +16152,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHA& alpha,
- const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -16303,15 +16179,15 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
- return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
- work );
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
+ return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ work );
 }
 
 //
@@ -16330,14 +16206,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -16357,15 +16232,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -16385,14 +16259,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -16412,15 +16285,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -16440,14 +16312,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -16467,15 +16338,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -16495,14 +16365,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -16522,15 +16391,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHA& alpha, VectorBETA& beta,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -16550,14 +16418,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHA& alpha, VectorBETA& beta,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -16577,15 +16445,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHA& alpha,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -16605,14 +16472,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHA& alpha,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -16632,15 +16499,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHA& alpha, VectorBETA& beta,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -16660,14 +16526,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHA& alpha, VectorBETA& beta,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -16687,15 +16553,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHA& alpha,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -16715,14 +16580,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHA& alpha,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -16742,15 +16607,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, const VectorBETA& beta,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -16770,14 +16634,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, const VectorBETA& beta,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -16797,15 +16661,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHA& alpha,
- const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -16825,14 +16688,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHA& alpha,
- const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -16852,15 +16715,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, const VectorBETA& beta,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -16880,14 +16742,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, const VectorBETA& beta,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -16907,15 +16769,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
- const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -16935,14 +16796,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
- const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -16962,15 +16823,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHA& alpha, const VectorBETA& beta,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -16990,14 +16850,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHA& alpha, const VectorBETA& beta,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -17017,15 +16877,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHA& alpha,
- const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -17045,14 +16904,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHA& alpha,
- const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -17072,15 +16931,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHA& alpha, const VectorBETA& beta,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -17100,14 +16958,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHA& alpha, const VectorBETA& beta,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -17127,15 +16985,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHA& alpha,
- const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -17155,14 +17012,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHA& alpha,
- const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -17182,14 +17039,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -17209,14 +17066,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -17236,15 +17092,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
- MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -17264,14 +17119,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
- MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -17291,14 +17145,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
+ 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 value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -17318,14 +17172,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ 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 value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -17345,15 +17198,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -17373,14 +17225,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -17400,14 +17251,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
         const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -17427,14 +17278,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
         const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -17454,15 +17305,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHA& alpha,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -17482,14 +17332,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHA& alpha,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -17509,15 +17359,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHA& alpha, VectorBETA& beta,
- MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -17537,14 +17386,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHA& alpha, VectorBETA& beta,
- MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -17564,15 +17413,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHA& alpha,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -17592,14 +17440,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHA& alpha,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -17619,14 +17467,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
         const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -17646,14 +17494,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
         const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -17673,15 +17521,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHA& alpha,
- const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -17701,14 +17548,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHA& alpha,
- const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -17728,15 +17575,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, const VectorBETA& beta,
- MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -17756,14 +17602,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, const VectorBETA& beta,
- MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -17783,15 +17629,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
- const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -17811,14 +17656,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
- const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -17838,15 +17683,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHA& alpha, const VectorBETA& beta,
- MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -17866,14 +17710,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHA& alpha, const VectorBETA& beta,
- MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -17893,15 +17737,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHA& alpha,
- const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -17921,14 +17764,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHA& alpha,
- const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -17948,15 +17791,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHA& alpha, const VectorBETA& beta,
- MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -17976,14 +17818,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHA& alpha, const VectorBETA& beta,
- MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -18003,15 +17845,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHA& alpha,
- const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -18031,14 +17872,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHA& alpha,
- const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -18058,14 +17899,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
+ 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 value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -18085,14 +17926,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
+ 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 value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -18112,15 +17953,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ 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 value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -18140,14 +17980,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ 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 value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -18167,15 +18007,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ 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 value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -18195,14 +18034,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ 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 value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -18222,15 +18061,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
- VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ 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 value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -18250,14 +18088,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
- VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ 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 value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -18277,15 +18115,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHA& alpha, VectorBETA& beta,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -18305,14 +18142,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHA& alpha, VectorBETA& beta,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -18332,15 +18169,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHA& alpha,
- VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -18360,14 +18196,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHA& alpha,
- VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -18387,15 +18223,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHA& alpha, VectorBETA& beta,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -18415,14 +18250,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHA& alpha, VectorBETA& beta,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -18442,15 +18277,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHA& alpha,
- VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -18470,14 +18304,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHA& alpha,
- VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -18497,15 +18331,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, const VectorBETA& beta,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -18525,14 +18358,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, const VectorBETA& beta,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -18552,15 +18385,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHA& alpha,
- const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -18580,14 +18412,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHA& alpha,
- const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -18607,15 +18439,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, const VectorBETA& beta,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -18635,14 +18466,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, const VectorBETA& beta,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -18662,15 +18493,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
- const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -18690,14 +18520,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
- const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -18717,15 +18547,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHA& alpha, const VectorBETA& beta,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -18745,14 +18574,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHA& alpha, const VectorBETA& beta,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -18772,15 +18601,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHA& alpha,
- const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -18800,14 +18628,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHA& alpha,
- const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -18827,15 +18655,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHA& alpha, const VectorBETA& beta,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -18855,14 +18682,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHA& alpha, const VectorBETA& beta,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -18882,15 +18709,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHA& alpha,
- const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif,
- Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -18910,14 +18736,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHA& alpha,
- const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -18937,14 +18763,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -18964,14 +18790,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -18991,15 +18816,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
- MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -19019,14 +18843,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
- MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -19046,14 +18869,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -19073,14 +18896,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -19100,15 +18922,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -19128,14 +18949,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -19155,14 +18975,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -19182,14 +19002,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -19209,15 +19028,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHA& alpha,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -19237,14 +19055,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHA& alpha,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -19264,15 +19081,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHA& alpha, VectorBETA& beta,
- MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -19292,14 +19108,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHA& alpha, VectorBETA& beta,
- MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -19319,15 +19134,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHA& alpha,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -19347,14 +19161,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHA& alpha,
- VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -19374,14 +19187,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -19401,14 +19214,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -19428,15 +19240,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHA& alpha,
- const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -19456,14 +19267,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHA& alpha,
- const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -19483,15 +19293,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, const VectorBETA& beta,
- MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -19511,14 +19320,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, const VectorBETA& beta,
- MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -19538,15 +19346,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
- const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -19566,14 +19373,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
- const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -19593,15 +19399,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHA& alpha, const VectorBETA& beta,
- MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -19621,14 +19426,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHA& alpha, const VectorBETA& beta,
- MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -19648,15 +19453,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHA& alpha,
- const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -19676,14 +19480,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHA& alpha,
- const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -19703,15 +19507,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHA& alpha, const VectorBETA& beta,
- MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -19731,14 +19534,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHA& alpha, const VectorBETA& beta,
- MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -19758,15 +19561,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHA& alpha,
- const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -19786,14 +19588,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHA& alpha,
- const VectorBETA& beta, MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -19813,14 +19615,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -19840,14 +19642,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
- MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -19867,15 +19668,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -19895,14 +19695,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -19922,15 +19721,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -19950,14 +19748,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -19977,15 +19774,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -20005,14 +19801,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -20032,15 +19827,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHA& alpha, VectorBETA& beta,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -20060,14 +19854,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHA& alpha, VectorBETA& beta,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -20087,15 +19881,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHA& alpha,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -20115,14 +19908,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHA& alpha,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -20142,15 +19935,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHA& alpha, VectorBETA& beta,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -20170,14 +19962,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHA& alpha, VectorBETA& beta,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -20197,15 +19989,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHA& alpha,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -20225,14 +20016,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHA& alpha,
- VectorBETA& beta, const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -20252,15 +20043,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, const VectorBETA& beta,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -20280,14 +20070,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, const VectorBETA& beta,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -20307,15 +20097,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHA& alpha,
- const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -20335,14 +20124,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHA& alpha,
- const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -20362,15 +20151,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, const VectorBETA& beta,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -20390,14 +20178,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, const VectorBETA& beta,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -20417,15 +20205,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
- const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -20445,14 +20232,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
- const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -20472,15 +20259,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHA& alpha, const VectorBETA& beta,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -20500,14 +20286,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHA& alpha, const VectorBETA& beta,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -20527,15 +20313,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHA& alpha,
- const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -20555,14 +20340,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHA& alpha,
- const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -20582,15 +20367,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHA& alpha, const VectorBETA& beta,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -20610,14 +20394,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHA& alpha, const VectorBETA& beta,
- const MatrixQ& q, MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -20637,15 +20421,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHA& alpha,
- const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -20665,14 +20448,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHA& alpha,
- const VectorBETA& beta, const MatrixQ& q, MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -20692,14 +20475,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -20719,14 +20502,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
+ fortran_int_t& m, typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -20746,15 +20528,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
- MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -20774,14 +20555,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
- MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -20801,14 +20581,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
+ 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 value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
+ Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -20828,14 +20608,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
- const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pl,
- typename remove_imaginary< typename value<
- MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ 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 value<
+ MatrixA >::type >::type& pl, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -20855,15 +20634,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
         Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -20883,14 +20661,13 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
- typename remove_imaginary< typename value<
+ 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 value<
         MatrixA >::type >::type& pl, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -20910,14 +20687,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
         const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -20937,14 +20714,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
         const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -20964,15 +20741,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHA& alpha,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -20992,14 +20768,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHA& alpha,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -21019,15 +20795,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHA& alpha, VectorBETA& beta,
- MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -21047,14 +20822,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHA& alpha, VectorBETA& beta,
- MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -21074,15 +20849,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHA& alpha,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -21102,14 +20876,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHA& alpha,
- VectorBETA& beta, MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -21129,14 +20903,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
         const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -21156,14 +20930,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
         const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
         typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -21183,15 +20957,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHA& alpha,
- const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -21211,14 +20984,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHA& alpha,
- const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -21238,15 +21011,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, const VectorBETA& beta,
- MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -21266,14 +21038,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, const VectorBETA& beta,
- MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -21293,15 +21065,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
- const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -21321,14 +21092,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
- const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -21348,15 +21119,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHA& alpha, const VectorBETA& beta,
- MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -21376,14 +21146,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHA& alpha, const VectorBETA& beta,
- MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -21403,15 +21173,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHA& alpha,
- const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -21431,14 +21200,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHA& alpha,
- const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -21458,15 +21227,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHA& alpha, const VectorBETA& beta,
- MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -21486,14 +21254,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHA& alpha, const VectorBETA& beta,
- MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -21513,15 +21281,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHA& alpha,
- const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -21541,14 +21308,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHA& alpha,
- const VectorBETA& beta, MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -21568,14 +21335,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
+ 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 value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -21595,14 +21362,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
+ 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 value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -21622,15 +21389,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ 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 value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -21650,14 +21416,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ 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 value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -21677,15 +21443,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ 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 value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -21705,14 +21470,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ 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 value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -21732,15 +21497,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
- VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ 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 value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -21760,14 +21524,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
- VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ 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 value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -21787,15 +21551,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHA& alpha, VectorBETA& beta,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -21815,14 +21578,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHA& alpha, VectorBETA& beta,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -21842,15 +21605,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHA& alpha,
- VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -21870,14 +21632,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHA& alpha,
- VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -21897,15 +21659,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHA& alpha, VectorBETA& beta,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -21925,14 +21686,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHA& alpha, VectorBETA& beta,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -21952,15 +21713,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHA& alpha,
- VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -21980,14 +21740,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHA& alpha,
- VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -22007,15 +21767,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, const VectorBETA& beta,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -22035,14 +21794,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorALPHA& alpha, const VectorBETA& beta,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -22062,15 +21821,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHA& alpha,
- const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -22090,14 +21848,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, VectorALPHA& alpha,
- const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -22117,15 +21875,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, const VectorBETA& beta,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -22145,14 +21902,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorALPHA& alpha, const VectorBETA& beta,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -22172,15 +21929,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
- const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -22200,14 +21956,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, VectorALPHA& alpha,
- const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -22227,15 +21983,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHA& alpha, const VectorBETA& beta,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -22255,14 +22010,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- MatrixB& b, const VectorALPHA& alpha, const VectorBETA& beta,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -22282,15 +22037,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHA& alpha,
- const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -22310,14 +22064,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const VectorALPHA& alpha,
- const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -22337,15 +22091,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHA& alpha, const VectorBETA& beta,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -22365,14 +22118,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorALPHA& alpha, const VectorBETA& beta,
- const MatrixQ& q, const MatrixZ& z, fortran_int_t& m,
+ const VectorSELECT& select, MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
         typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 
@@ -22392,15 +22145,14 @@
         typename MatrixZ, typename VectorDIF, typename Workspace >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHA& alpha,
- const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif,
- Workspace work ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, const VectorDIF& dif, Workspace work ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             work );
 }
 
@@ -22420,14 +22172,14 @@
         typename MatrixZ, typename VectorDIF >
 inline std::ptrdiff_t tgsen( const fortran_int_t ijob,
         const logical_t wantq, const logical_t wantz,
- const VectorSELECT& select, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const VectorALPHA& alpha,
- const VectorBETA& beta, const MatrixQ& q, const MatrixZ& z,
- fortran_int_t& m, typename remove_imaginary< typename value<
- MatrixA >::type >::type& pl, typename remove_imaginary<
- typename value< MatrixA >::type >::type& pr, const VectorDIF& dif ) {
+ const VectorSELECT& select, const MatrixA& a, const MatrixB& b,
+ const VectorALPHA& alpha, const VectorBETA& beta, const MatrixQ& q,
+ const MatrixZ& z, fortran_int_t& m, typename remove_imaginary<
+ typename value< MatrixA >::type >::type& pl,
+ typename remove_imaginary< typename value<
+ MatrixA >::type >::type& pr, const VectorDIF& dif ) {
     return tgsen_impl< typename value< MatrixA >::type >::invoke( ijob,
- wantq, wantz, select, n, a, b, alpha, beta, q, z, m, pl, pr, dif,
+ wantq, wantz, select, a, b, alpha, beta, q, z, m, pl, pr, dif,
             optimal_workspace() );
 }
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsja.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsja.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsja.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -198,10 +198,10 @@
         BOOST_ASSERT( jobq == 'Q' || jobq == 'I' || jobq == 'N' );
         BOOST_ASSERT( jobu == 'U' || jobu == 'I' || jobu == 'N' );
         BOOST_ASSERT( jobv == 'V' || jobv == 'I' || jobv == 'N' );
- BOOST_ASSERT( size(alpha) >= size_column(b) );
+ BOOST_ASSERT( size(alpha) >= size_column(a) );
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
- size_column(b) ));
- BOOST_ASSERT( size_column(b) >= 0 );
+ size_column(a) ));
+ BOOST_ASSERT( size_column(a) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_minor(q) == 1 || stride_minor(q) == 1 );
@@ -214,7 +214,7 @@
         BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
                 size_row(b)) );
         return detail::tgsja( jobu, jobv, jobq, size_row(a), size_row(b),
- size_column(b), k, l, begin_value(a), stride_major(a),
+ size_column(a), k, l, begin_value(a), stride_major(a),
                 begin_value(b), stride_major(b), tola, tolb,
                 begin_value(alpha), begin_value(beta), begin_value(u),
                 stride_major(u), begin_value(v), stride_major(v),
@@ -239,7 +239,7 @@
             VectorBETA& beta, MatrixU& u, MatrixV& v, MatrixQ& q,
             fortran_int_t& ncycle, minimal_workspace work ) {
         bindings::detail::array< real_type > tmp_work( min_size_work(
- size_column(b) ) );
+ size_column(a) ) );
         return invoke( jobu, jobv, jobq, k, l, a, b, tola, tolb, alpha, beta,
                 u, v, q, ncycle, workspace( tmp_work ) );
     }
@@ -327,10 +327,10 @@
         BOOST_ASSERT( jobq == 'Q' || jobq == 'I' || jobq == 'N' );
         BOOST_ASSERT( jobu == 'U' || jobu == 'I' || jobu == 'N' );
         BOOST_ASSERT( jobv == 'V' || jobv == 'I' || jobv == 'N' );
- BOOST_ASSERT( size(alpha) >= size_column(b) );
+ BOOST_ASSERT( size(alpha) >= size_column(a) );
         BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
- size_column(b) ));
- BOOST_ASSERT( size_column(b) >= 0 );
+ size_column(a) ));
+ BOOST_ASSERT( size_column(a) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_minor(q) == 1 || stride_minor(q) == 1 );
@@ -343,7 +343,7 @@
         BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
                 size_row(b)) );
         return detail::tgsja( jobu, jobv, jobq, size_row(a), size_row(b),
- size_column(b), k, l, begin_value(a), stride_major(a),
+ size_column(a), k, l, begin_value(a), stride_major(a),
                 begin_value(b), stride_major(b), tola, tolb,
                 begin_value(alpha), begin_value(beta), begin_value(u),
                 stride_major(u), begin_value(v), stride_major(v),
@@ -368,7 +368,7 @@
             VectorBETA& beta, MatrixU& u, MatrixV& v, MatrixQ& q,
             fortran_int_t& ncycle, minimal_workspace work ) {
         bindings::detail::array< value_type > tmp_work( min_size_work(
- size_column(b) ) );
+ size_column(a) ) );
         return invoke( jobu, jobv, jobq, k, l, a, b, tola, tolb, alpha, beta,
                 u, v, q, ncycle, workspace( tmp_work ) );
     }

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsyl.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsyl.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsyl.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -163,7 +163,6 @@
             typename MatrixD, typename MatrixE, typename MatrixF,
             typename WORK, typename IWORK >
     static std::ptrdiff_t invoke( const fortran_int_t ijob,
- const fortran_int_t m, const fortran_int_t n,
             const MatrixA& a, const MatrixB& b, MatrixC& c, const MatrixD& d,
             const MatrixE& e, MatrixF& f, real_type& scale, real_type& dif,
             detail::workspace2< WORK, IWORK > work ) {
@@ -191,7 +190,7 @@
         BOOST_STATIC_ASSERT( (is_mutable< MatrixC >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< MatrixF >::value) );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
- min_size_iwork( m, n ));
+ min_size_iwork( size_column_op(a, trans()), size_column(b) ));
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
                 $CALL_MIN_SIZE ));
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
@@ -200,11 +199,12 @@
         BOOST_ASSERT( size_minor(d) == 1 || stride_minor(d) == 1 );
         BOOST_ASSERT( size_minor(e) == 1 || stride_minor(e) == 1 );
         BOOST_ASSERT( size_minor(f) == 1 || stride_minor(f) == 1 );
- return detail::tgsyl( trans(), ijob, m, n, begin_value(a),
- stride_major(a), begin_value(b), stride_major(b),
- begin_value(c), stride_major(c), begin_value(d),
- stride_major(d), begin_value(e), stride_major(e),
- begin_value(f), stride_major(f), scale, dif,
+ return detail::tgsyl( trans(), ijob, size_column_op(a, trans()),
+ size_column(b), begin_value(a), stride_major(a),
+ begin_value(b), stride_major(b), begin_value(c),
+ stride_major(c), begin_value(d), stride_major(d),
+ begin_value(e), stride_major(e), begin_value(f),
+ stride_major(f), scale, dif,
                 begin_value(work.select(real_type())),
                 size(work.select(real_type())),
                 begin_value(work.select(fortran_int_t())) );
@@ -220,7 +220,6 @@
     template< typename MatrixA, typename MatrixB, typename MatrixC,
             typename MatrixD, typename MatrixE, typename MatrixF >
     static std::ptrdiff_t invoke( const fortran_int_t ijob,
- const fortran_int_t m, const fortran_int_t n,
             const MatrixA& a, const MatrixB& b, MatrixC& c, const MatrixD& d,
             const MatrixE& e, MatrixF& f, real_type& scale, real_type& dif,
             minimal_workspace work ) {
@@ -228,8 +227,8 @@
         bindings::detail::array< real_type > tmp_work( min_size_work(
                 $CALL_MIN_SIZE ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
- min_size_iwork( m, n ) );
- return invoke( ijob, m, n, a, b, c, d, e, f, scale, dif,
+ min_size_iwork( size_column_op(a, trans()), size_column(b) ) );
+ return invoke( ijob, a, b, c, d, e, f, scale, dif,
                 workspace( tmp_work, tmp_iwork ) );
     }
 
@@ -243,23 +242,23 @@
     template< typename MatrixA, typename MatrixB, typename MatrixC,
             typename MatrixD, typename MatrixE, typename MatrixF >
     static std::ptrdiff_t invoke( const fortran_int_t ijob,
- const fortran_int_t m, const fortran_int_t n,
             const MatrixA& a, const MatrixB& b, MatrixC& c, const MatrixD& d,
             const MatrixE& e, MatrixF& f, real_type& scale, real_type& dif,
             optimal_workspace work ) {
         typedef typename result_of::trans_tag< MatrixA, order >::type trans;
         real_type opt_size_work;
         bindings::detail::array< fortran_int_t > tmp_iwork(
- min_size_iwork( m, n ) );
- detail::tgsyl( trans(), ijob, m, n, begin_value(a),
- stride_major(a), begin_value(b), stride_major(b),
- begin_value(c), stride_major(c), begin_value(d),
- stride_major(d), begin_value(e), stride_major(e),
- begin_value(f), stride_major(f), scale, dif, &opt_size_work,
- -1, begin_value(tmp_iwork) );
+ min_size_iwork( size_column_op(a, trans()), size_column(b) ) );
+ detail::tgsyl( trans(), ijob, size_column_op(a, trans()),
+ size_column(b), begin_value(a), stride_major(a),
+ begin_value(b), stride_major(b), begin_value(c),
+ stride_major(c), begin_value(d), stride_major(d),
+ begin_value(e), stride_major(e), begin_value(f),
+ stride_major(f), scale, dif, &opt_size_work, -1,
+ begin_value(tmp_iwork) );
         bindings::detail::array< real_type > tmp_work(
                 traits::detail::to_int( opt_size_work ) );
- return invoke( ijob, m, n, a, b, c, d, e, f, scale, dif,
+ return invoke( ijob, a, b, c, d, e, f, scale, dif,
                 workspace( tmp_work, tmp_iwork ) );
     }
 
@@ -300,7 +299,6 @@
             typename MatrixD, typename MatrixE, typename MatrixF,
             typename WORK, typename IWORK >
     static std::ptrdiff_t invoke( const fortran_int_t ijob,
- const fortran_int_t m, const fortran_int_t n,
             const MatrixA& a, const MatrixB& b, MatrixC& c, const MatrixD& d,
             const MatrixE& e, MatrixF& f, real_type& scale, real_type& dif,
             detail::workspace2< WORK, IWORK > work ) {
@@ -328,7 +326,7 @@
         BOOST_STATIC_ASSERT( (is_mutable< MatrixC >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< MatrixF >::value) );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
- min_size_iwork( m, n ));
+ min_size_iwork( size_column_op(a, trans()), size_column(b) ));
         BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
                 $CALL_MIN_SIZE ));
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
@@ -337,11 +335,12 @@
         BOOST_ASSERT( size_minor(d) == 1 || stride_minor(d) == 1 );
         BOOST_ASSERT( size_minor(e) == 1 || stride_minor(e) == 1 );
         BOOST_ASSERT( size_minor(f) == 1 || stride_minor(f) == 1 );
- return detail::tgsyl( trans(), ijob, m, n, begin_value(a),
- stride_major(a), begin_value(b), stride_major(b),
- begin_value(c), stride_major(c), begin_value(d),
- stride_major(d), begin_value(e), stride_major(e),
- begin_value(f), stride_major(f), scale, dif,
+ return detail::tgsyl( trans(), ijob, size_column_op(a, trans()),
+ size_column(b), begin_value(a), stride_major(a),
+ begin_value(b), stride_major(b), begin_value(c),
+ stride_major(c), begin_value(d), stride_major(d),
+ begin_value(e), stride_major(e), begin_value(f),
+ stride_major(f), scale, dif,
                 begin_value(work.select(value_type())),
                 size(work.select(value_type())),
                 begin_value(work.select(fortran_int_t())) );
@@ -357,7 +356,6 @@
     template< typename MatrixA, typename MatrixB, typename MatrixC,
             typename MatrixD, typename MatrixE, typename MatrixF >
     static std::ptrdiff_t invoke( const fortran_int_t ijob,
- const fortran_int_t m, const fortran_int_t n,
             const MatrixA& a, const MatrixB& b, MatrixC& c, const MatrixD& d,
             const MatrixE& e, MatrixF& f, real_type& scale, real_type& dif,
             minimal_workspace work ) {
@@ -365,8 +363,8 @@
         bindings::detail::array< value_type > tmp_work( min_size_work(
                 $CALL_MIN_SIZE ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
- min_size_iwork( m, n ) );
- return invoke( ijob, m, n, a, b, c, d, e, f, scale, dif,
+ min_size_iwork( size_column_op(a, trans()), size_column(b) ) );
+ return invoke( ijob, a, b, c, d, e, f, scale, dif,
                 workspace( tmp_work, tmp_iwork ) );
     }
 
@@ -380,23 +378,23 @@
     template< typename MatrixA, typename MatrixB, typename MatrixC,
             typename MatrixD, typename MatrixE, typename MatrixF >
     static std::ptrdiff_t invoke( const fortran_int_t ijob,
- const fortran_int_t m, const fortran_int_t n,
             const MatrixA& a, const MatrixB& b, MatrixC& c, const MatrixD& d,
             const MatrixE& e, MatrixF& f, real_type& scale, real_type& dif,
             optimal_workspace work ) {
         typedef typename result_of::trans_tag< MatrixA, order >::type trans;
         value_type opt_size_work;
         bindings::detail::array< fortran_int_t > tmp_iwork(
- min_size_iwork( m, n ) );
- detail::tgsyl( trans(), ijob, m, n, begin_value(a),
- stride_major(a), begin_value(b), stride_major(b),
- begin_value(c), stride_major(c), begin_value(d),
- stride_major(d), begin_value(e), stride_major(e),
- begin_value(f), stride_major(f), scale, dif, &opt_size_work,
- -1, begin_value(tmp_iwork) );
+ min_size_iwork( size_column_op(a, trans()), size_column(b) ) );
+ detail::tgsyl( trans(), ijob, size_column_op(a, trans()),
+ size_column(b), begin_value(a), stride_major(a),
+ begin_value(b), stride_major(b), begin_value(c),
+ stride_major(c), begin_value(d), stride_major(d),
+ begin_value(e), stride_major(e), begin_value(f),
+ stride_major(f), scale, dif, &opt_size_work, -1,
+ begin_value(tmp_iwork) );
         bindings::detail::array< value_type > tmp_work(
                 traits::detail::to_int( opt_size_work ) );
- return invoke( ijob, m, n, a, b, c, d, e, f, scale, dif,
+ return invoke( ijob, a, b, c, d, e, f, scale, dif,
                 workspace( tmp_work, tmp_iwork ) );
     }
 
@@ -438,14 +436,13 @@
         typename MatrixD, typename MatrixE, typename MatrixF,
         typename Workspace >
 inline std::ptrdiff_t tgsyl( const fortran_int_t ijob,
- const fortran_int_t m, const fortran_int_t n,
         const MatrixA& a, const MatrixB& b, MatrixC& c, const MatrixD& d,
         const MatrixE& e, MatrixF& f, typename remove_imaginary<
         typename value< MatrixA >::type >::type& scale,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& dif, Workspace work ) {
     return tgsyl_impl< typename value< MatrixA >::type >::invoke( ijob,
- m, n, a, b, c, d, e, f, scale, dif, work );
+ a, b, c, d, e, f, scale, dif, work );
 }
 
 //
@@ -457,14 +454,13 @@
 template< typename MatrixA, typename MatrixB, typename MatrixC,
         typename MatrixD, typename MatrixE, typename MatrixF >
 inline std::ptrdiff_t tgsyl( const fortran_int_t ijob,
- const fortran_int_t m, const fortran_int_t n,
         const MatrixA& a, const MatrixB& b, MatrixC& c, const MatrixD& d,
         const MatrixE& e, MatrixF& f, typename remove_imaginary<
         typename value< MatrixA >::type >::type& scale,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& dif ) {
     return tgsyl_impl< typename value< MatrixA >::type >::invoke( ijob,
- m, n, a, b, c, d, e, f, scale, dif, optimal_workspace() );
+ a, b, c, d, e, f, scale, dif, optimal_workspace() );
 }
 
 //
@@ -477,14 +473,13 @@
         typename MatrixD, typename MatrixE, typename MatrixF,
         typename Workspace >
 inline std::ptrdiff_t tgsyl( const fortran_int_t ijob,
- const fortran_int_t m, const fortran_int_t n,
         const MatrixA& a, const MatrixB& b, const MatrixC& c,
         const MatrixD& d, const MatrixE& e, MatrixF& f,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& scale, typename remove_imaginary<
         typename value< MatrixA >::type >::type& dif, Workspace work ) {
     return tgsyl_impl< typename value< MatrixA >::type >::invoke( ijob,
- m, n, a, b, c, d, e, f, scale, dif, work );
+ a, b, c, d, e, f, scale, dif, work );
 }
 
 //
@@ -496,14 +491,13 @@
 template< typename MatrixA, typename MatrixB, typename MatrixC,
         typename MatrixD, typename MatrixE, typename MatrixF >
 inline std::ptrdiff_t tgsyl( const fortran_int_t ijob,
- const fortran_int_t m, const fortran_int_t n,
         const MatrixA& a, const MatrixB& b, const MatrixC& c,
         const MatrixD& d, const MatrixE& e, MatrixF& f,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& scale, typename remove_imaginary<
         typename value< MatrixA >::type >::type& dif ) {
     return tgsyl_impl< typename value< MatrixA >::type >::invoke( ijob,
- m, n, a, b, c, d, e, f, scale, dif, optimal_workspace() );
+ a, b, c, d, e, f, scale, dif, optimal_workspace() );
 }
 
 //
@@ -516,14 +510,13 @@
         typename MatrixD, typename MatrixE, typename MatrixF,
         typename Workspace >
 inline std::ptrdiff_t tgsyl( const fortran_int_t ijob,
- const fortran_int_t m, const fortran_int_t n,
         const MatrixA& a, const MatrixB& b, MatrixC& c, const MatrixD& d,
         const MatrixE& e, const MatrixF& f, typename remove_imaginary<
         typename value< MatrixA >::type >::type& scale,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& dif, Workspace work ) {
     return tgsyl_impl< typename value< MatrixA >::type >::invoke( ijob,
- m, n, a, b, c, d, e, f, scale, dif, work );
+ a, b, c, d, e, f, scale, dif, work );
 }
 
 //
@@ -535,14 +528,13 @@
 template< typename MatrixA, typename MatrixB, typename MatrixC,
         typename MatrixD, typename MatrixE, typename MatrixF >
 inline std::ptrdiff_t tgsyl( const fortran_int_t ijob,
- const fortran_int_t m, const fortran_int_t n,
         const MatrixA& a, const MatrixB& b, MatrixC& c, const MatrixD& d,
         const MatrixE& e, const MatrixF& f, typename remove_imaginary<
         typename value< MatrixA >::type >::type& scale,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& dif ) {
     return tgsyl_impl< typename value< MatrixA >::type >::invoke( ijob,
- m, n, a, b, c, d, e, f, scale, dif, optimal_workspace() );
+ a, b, c, d, e, f, scale, dif, optimal_workspace() );
 }
 
 //
@@ -555,14 +547,13 @@
         typename MatrixD, typename MatrixE, typename MatrixF,
         typename Workspace >
 inline std::ptrdiff_t tgsyl( const fortran_int_t ijob,
- const fortran_int_t m, const fortran_int_t n,
         const MatrixA& a, const MatrixB& b, const MatrixC& c,
         const MatrixD& d, const MatrixE& e, const MatrixF& f,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& scale, typename remove_imaginary<
         typename value< MatrixA >::type >::type& dif, Workspace work ) {
     return tgsyl_impl< typename value< MatrixA >::type >::invoke( ijob,
- m, n, a, b, c, d, e, f, scale, dif, work );
+ a, b, c, d, e, f, scale, dif, work );
 }
 
 //
@@ -574,14 +565,13 @@
 template< typename MatrixA, typename MatrixB, typename MatrixC,
         typename MatrixD, typename MatrixE, typename MatrixF >
 inline std::ptrdiff_t tgsyl( const fortran_int_t ijob,
- const fortran_int_t m, const fortran_int_t n,
         const MatrixA& a, const MatrixB& b, const MatrixC& c,
         const MatrixD& d, const MatrixE& e, const MatrixF& f,
         typename remove_imaginary< typename value<
         MatrixA >::type >::type& scale, typename remove_imaginary<
         typename value< MatrixA >::type >::type& dif ) {
     return tgsyl_impl< typename value< MatrixA >::type >::invoke( ijob,
- m, n, a, b, c, d, e, f, scale, dif, optimal_workspace() );
+ a, b, c, d, e, f, scale, dif, optimal_workspace() );
 }
 
 } // namespace lapack

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tprfs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tprfs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tprfs.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -175,16 +175,16 @@
         BOOST_STATIC_ASSERT( (is_mutable< VectorFERR >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorBERR >::value) );
         BOOST_ASSERT( n >= 0 );
- BOOST_ASSERT( size(berr) >= size_column(x) );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
                 min_size_iwork( n ));
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_work( n ));
- BOOST_ASSERT( size_column(x) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_minor(x) == 1 || stride_minor(x) == 1 );
         BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,n) );
         BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::tprfs( uplo, trans(), diag(), n, size_column(x),
+ return detail::tprfs( uplo, trans(), diag(), n, size_column(b),
                 begin_value(ap), begin_value(b), stride_major(b),
                 begin_value(x), stride_major(x), begin_value(ferr),
                 begin_value(berr), begin_value(work.select(real_type())),
@@ -282,15 +282,15 @@
         BOOST_STATIC_ASSERT( (is_mutable< VectorFERR >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorBERR >::value) );
         BOOST_ASSERT( n >= 0 );
- BOOST_ASSERT( size(berr) >= size_column(x) );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork( n ));
         BOOST_ASSERT( size(work.select(value_type())) >= min_size_work( n ));
- BOOST_ASSERT( size_column(x) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_minor(x) == 1 || stride_minor(x) == 1 );
         BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,n) );
         BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::tprfs( uplo, trans(), diag(), n, size_column(x),
+ return detail::tprfs( uplo, trans(), diag(), n, size_column(b),
                 begin_value(ap), begin_value(b), stride_major(b),
                 begin_value(x), stride_major(x), begin_value(ferr),
                 begin_value(berr), begin_value(work.select(value_type())),

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trrfs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trrfs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trrfs.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -174,12 +174,12 @@
                 VectorBERR >::type >::type >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorFERR >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorBERR >::value) );
- BOOST_ASSERT( size(berr) >= size_column(x) );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
                 min_size_iwork( size_column_op(a, trans()) ));
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
                 size_column_op(a, trans()) ));
- BOOST_ASSERT( size_column(x) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_column_op(a, trans()) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
@@ -191,7 +191,7 @@
         BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,
                 size_column_op(a, trans())) );
         return detail::trrfs( uplo, trans(), diag(), size_column_op(a,
- trans()), size_column(x), begin_value(a), stride_major(a),
+ trans()), size_column(b), begin_value(a), stride_major(a),
                 begin_value(b), stride_major(b), begin_value(x),
                 stride_major(x), begin_value(ferr), begin_value(berr),
                 begin_value(work.select(real_type())),
@@ -291,12 +291,12 @@
                 MatrixX >::type >::type >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorFERR >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorBERR >::value) );
- BOOST_ASSERT( size(berr) >= size_column(x) );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork(
                 size_column_op(a, trans()) ));
         BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
                 size_column_op(a, trans()) ));
- BOOST_ASSERT( size_column(x) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_column_op(a, trans()) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
@@ -308,7 +308,7 @@
         BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,
                 size_column_op(a, trans())) );
         return detail::trrfs( uplo, trans(), diag(), size_column_op(a,
- trans()), size_column(x), begin_value(a), stride_major(a),
+ trans()), size_column(b), begin_value(a), stride_major(a),
                 begin_value(b), stride_major(b), begin_value(x),
                 stride_major(x), begin_value(ferr), begin_value(berr),
                 begin_value(work.select(value_type())),

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/cgesv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/cgesv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/cgesv.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -94,28 +94,29 @@
                 MatrixX >::type >::type >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorIPIV >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< MatrixX >::value) );
- BOOST_ASSERT( size(ipiv) >= size_column(a) );
+ BOOST_ASSERT( size(ipiv) >= stride_major(work) );
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork(
- size_column(a) ));
+ stride_major(work) ));
         BOOST_ASSERT( size(work.select(value_type())) >= min_size_swork(
- size_column(a), size_column(b) ));
+ stride_major(work), size_column(b) ));
         BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
                 $CALL_MIN_SIZE ));
- BOOST_ASSERT( size_column(a) >= 0 );
         BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_minor(x) == 1 || stride_minor(x) == 1 );
         BOOST_ASSERT( stride_major(a) >= std::max< std::ptrdiff_t >(1,
- size_column(a)) );
+ stride_major(work)) );
         BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
- size_column(a)) );
+ stride_major(work)) );
+ BOOST_ASSERT( stride_major(work) >= 0 );
         BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,
- size_column(a)) );
- return detail::cgesv( size_column(a), size_column(b), begin_value(a),
- stride_major(a), begin_value(ipiv), begin_value(b),
- stride_major(b), begin_value(x), stride_major(x),
- begin_value(work), begin_value(work.select(value_type())),
+ stride_major(work)) );
+ return detail::cgesv( stride_major(work), size_column(b),
+ begin_value(a), stride_major(a), begin_value(ipiv),
+ begin_value(b), stride_major(b), begin_value(x),
+ stride_major(x), begin_value(work),
+ begin_value(work.select(value_type())),
                 begin_value(work.select(real_type())), iter );
     }
 
@@ -134,9 +135,9 @@
         bindings::detail::array< value_type > tmp_work( min_size_work(
                 $CALL_MIN_SIZE ) );
         bindings::detail::array< value_type > tmp_swork( min_size_swork(
- size_column(a), size_column(b) ) );
+ stride_major(work), size_column(b) ) );
         bindings::detail::array< real_type > tmp_rwork( min_size_rwork(
- size_column(a) ) );
+ stride_major(work) ) );
         return invoke( a, ipiv, b, x, iter, workspace( tmp_work, tmp_swork,
                 tmp_rwork ) );
     }

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/cposv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/cposv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/cposv.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -97,23 +97,23 @@
                 MatrixX >::type >::type >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< MatrixX >::value) );
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork(
- size_column(a) ));
+ stride_major(work) ));
         BOOST_ASSERT( size(work.select(value_type())) >= min_size_swork(
- size_column(a), size_column(b) ));
+ stride_major(work), size_column(b) ));
         BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
                 $CALL_MIN_SIZE ));
- BOOST_ASSERT( size_column(a) >= 0 );
         BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_minor(x) == 1 || stride_minor(x) == 1 );
         BOOST_ASSERT( stride_major(a) >= std::max< std::ptrdiff_t >(1,
- size_column(a)) );
+ stride_major(work)) );
         BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
- size_column(a)) );
+ stride_major(work)) );
+ BOOST_ASSERT( stride_major(work) >= 0 );
         BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,
- size_column(a)) );
- return detail::cposv( uplo(), size_column(a), size_column(b),
+ stride_major(work)) );
+ return detail::cposv( uplo(), stride_major(work), size_column(b),
                 begin_value(a), stride_major(a), begin_value(b),
                 stride_major(b), begin_value(x), stride_major(x),
                 begin_value(work), begin_value(work.select(value_type())),
@@ -134,9 +134,9 @@
         bindings::detail::array< value_type > tmp_work( min_size_work(
                 $CALL_MIN_SIZE ) );
         bindings::detail::array< value_type > tmp_swork( min_size_swork(
- size_column(a), size_column(b) ) );
+ stride_major(work), size_column(b) ) );
         bindings::detail::array< real_type > tmp_rwork( min_size_rwork(
- size_column(a) ) );
+ stride_major(work) ) );
         return invoke( a, b, x, iter, workspace( tmp_work, tmp_swork,
                 tmp_rwork ) );
     }

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gbsvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gbsvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gbsvx.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -160,9 +160,9 @@
             typename VectorR, typename VectorC, typename MatrixB,
             typename MatrixX, typename VectorFERR, typename VectorBERR,
             typename WORK, typename IWORK >
- static std::ptrdiff_t invoke( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x, real_type& rcond,
+ static std::ptrdiff_t invoke( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, real_type& rcond,
             VectorFERR& ferr, VectorBERR& berr, detail::workspace2< WORK,
             IWORK > work ) {
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
@@ -207,12 +207,13 @@
         BOOST_ASSERT( equed == 'N' || equed == 'R' || equed == 'C' ||
                 equed == 'B' );
         BOOST_ASSERT( fact == 'F' || fact == 'N' || fact == 'E' );
- BOOST_ASSERT( n >= 0 );
- BOOST_ASSERT( size(berr) >= size_column(x) );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
- min_size_iwork( n ));
- BOOST_ASSERT( size(work.select(real_type())) >= min_size_work( n ));
- BOOST_ASSERT( size_column(x) >= 0 );
+ min_size_iwork( size_column(ab) ));
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
+ size_column(ab) ));
+ BOOST_ASSERT( size_column(ab) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( size_minor(afb) == 1 || stride_minor(afb) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
@@ -220,15 +221,17 @@
         BOOST_ASSERT( stride_major(ab) >= bandwidth_lower(ab)+
                 bandwidth_upper(ab)+1 );
         BOOST_ASSERT( stride_major(afb) >= 2 );
- BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,n) );
- BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::gbsvx( fact, trans(), n, bandwidth_lower(ab),
- bandwidth_upper(ab), size_column(x), begin_value(ab),
- stride_major(ab), begin_value(afb), stride_major(afb),
- begin_value(ipiv), equed, begin_value(r), begin_value(c),
- begin_value(b), stride_major(b), begin_value(x),
- stride_major(x), rcond, begin_value(ferr), begin_value(berr),
- begin_value(work.select(real_type())),
+ BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
+ size_column(ab)) );
+ BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,
+ size_column(ab)) );
+ return detail::gbsvx( fact, trans(), size_column(ab),
+ bandwidth_lower(ab), bandwidth_upper(ab), size_column(b),
+ begin_value(ab), stride_major(ab), begin_value(afb),
+ stride_major(afb), begin_value(ipiv), equed, begin_value(r),
+ begin_value(c), begin_value(b), stride_major(b),
+ begin_value(x), stride_major(x), rcond, begin_value(ferr),
+ begin_value(berr), begin_value(work.select(real_type())),
                 begin_value(work.select(fortran_int_t())) );
     }
 
@@ -242,14 +245,15 @@
     template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
             typename VectorR, typename VectorC, typename MatrixB,
             typename MatrixX, typename VectorFERR, typename VectorBERR >
- static std::ptrdiff_t invoke( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x, real_type& rcond,
+ static std::ptrdiff_t invoke( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, real_type& rcond,
             VectorFERR& ferr, VectorBERR& berr, minimal_workspace work ) {
- bindings::detail::array< real_type > tmp_work( min_size_work( n ) );
+ bindings::detail::array< real_type > tmp_work( min_size_work(
+ size_column(ab) ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
- min_size_iwork( n ) );
- return invoke( fact, n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr,
+ min_size_iwork( size_column(ab) ) );
+ return invoke( fact, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr,
                 berr, workspace( tmp_work, tmp_iwork ) );
     }
 
@@ -263,11 +267,11 @@
     template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
             typename VectorR, typename VectorC, typename MatrixB,
             typename MatrixX, typename VectorFERR, typename VectorBERR >
- static std::ptrdiff_t invoke( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x, real_type& rcond,
+ static std::ptrdiff_t invoke( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, real_type& rcond,
             VectorFERR& ferr, VectorBERR& berr, optimal_workspace work ) {
- return invoke( fact, n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr,
+ return invoke( fact, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr,
                 berr, minimal_workspace() );
     }
 
@@ -307,9 +311,9 @@
             typename VectorR, typename VectorC, typename MatrixB,
             typename MatrixX, typename VectorFERR, typename VectorBERR,
             typename WORK, typename RWORK >
- static std::ptrdiff_t invoke( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x, real_type& rcond,
+ static std::ptrdiff_t invoke( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, real_type& rcond,
             VectorFERR& ferr, VectorBERR& berr, detail::workspace2< WORK,
             RWORK > work ) {
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
@@ -350,11 +354,13 @@
         BOOST_ASSERT( equed == 'N' || equed == 'R' || equed == 'C' ||
                 equed == 'B' );
         BOOST_ASSERT( fact == 'F' || fact == 'N' || fact == 'E' );
- BOOST_ASSERT( n >= 0 );
- BOOST_ASSERT( size(berr) >= size_column(x) );
- BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork( n ));
- BOOST_ASSERT( size(work.select(value_type())) >= min_size_work( n ));
- BOOST_ASSERT( size_column(x) >= 0 );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork(
+ size_column(ab) ));
+ BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
+ size_column(ab) ));
+ BOOST_ASSERT( size_column(ab) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( size_minor(afb) == 1 || stride_minor(afb) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
@@ -362,15 +368,17 @@
         BOOST_ASSERT( stride_major(ab) >= bandwidth_lower(ab)+
                 bandwidth_upper(ab)+1 );
         BOOST_ASSERT( stride_major(afb) >= 2 );
- BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,n) );
- BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::gbsvx( fact, trans(), n, bandwidth_lower(ab),
- bandwidth_upper(ab), size_column(x), begin_value(ab),
- stride_major(ab), begin_value(afb), stride_major(afb),
- begin_value(ipiv), equed, begin_value(r), begin_value(c),
- begin_value(b), stride_major(b), begin_value(x),
- stride_major(x), rcond, begin_value(ferr), begin_value(berr),
- begin_value(work.select(value_type())),
+ BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
+ size_column(ab)) );
+ BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,
+ size_column(ab)) );
+ return detail::gbsvx( fact, trans(), size_column(ab),
+ bandwidth_lower(ab), bandwidth_upper(ab), size_column(b),
+ begin_value(ab), stride_major(ab), begin_value(afb),
+ stride_major(afb), begin_value(ipiv), equed, begin_value(r),
+ begin_value(c), begin_value(b), stride_major(b),
+ begin_value(x), stride_major(x), rcond, begin_value(ferr),
+ begin_value(berr), begin_value(work.select(value_type())),
                 begin_value(work.select(real_type())) );
     }
 
@@ -384,13 +392,15 @@
     template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
             typename VectorR, typename VectorC, typename MatrixB,
             typename MatrixX, typename VectorFERR, typename VectorBERR >
- static std::ptrdiff_t invoke( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x, real_type& rcond,
+ static std::ptrdiff_t invoke( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, real_type& rcond,
             VectorFERR& ferr, VectorBERR& berr, minimal_workspace work ) {
- bindings::detail::array< value_type > tmp_work( min_size_work( n ) );
- bindings::detail::array< real_type > tmp_rwork( min_size_rwork( n ) );
- return invoke( fact, n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr,
+ bindings::detail::array< value_type > tmp_work( min_size_work(
+ size_column(ab) ) );
+ bindings::detail::array< real_type > tmp_rwork( min_size_rwork(
+ size_column(ab) ) );
+ return invoke( fact, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr,
                 berr, workspace( tmp_work, tmp_rwork ) );
     }
 
@@ -404,11 +414,11 @@
     template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
             typename VectorR, typename VectorC, typename MatrixB,
             typename MatrixX, typename VectorFERR, typename VectorBERR >
- static std::ptrdiff_t invoke( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x, real_type& rcond,
+ static std::ptrdiff_t invoke( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, real_type& rcond,
             VectorFERR& ferr, VectorBERR& berr, optimal_workspace work ) {
- return invoke( fact, n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr,
+ return invoke( fact, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr,
                 berr, minimal_workspace() );
     }
 
@@ -456,14 +466,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -482,13 +491,12 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -509,14 +517,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -535,13 +542,12 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -562,14 +568,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -588,13 +593,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -615,14 +620,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -641,13 +645,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -668,14 +672,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -694,13 +697,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -721,14 +724,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -747,13 +749,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -774,14 +776,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -800,13 +801,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -827,14 +828,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -853,13 +853,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -880,14 +880,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -906,13 +905,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -933,14 +932,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -959,13 +957,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -986,14 +984,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1012,13 +1009,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -1039,14 +1036,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1065,13 +1061,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -1092,14 +1088,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1118,13 +1113,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -1145,14 +1140,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1171,13 +1165,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -1198,14 +1192,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1224,13 +1218,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -1251,14 +1245,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1277,13 +1271,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -1304,14 +1298,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1330,13 +1323,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -1357,14 +1350,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1383,13 +1375,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -1410,14 +1402,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1436,13 +1427,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -1463,14 +1454,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1489,13 +1479,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -1516,14 +1506,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1542,13 +1531,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -1569,14 +1558,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1595,13 +1583,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -1622,14 +1610,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1648,13 +1635,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -1675,14 +1662,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1701,13 +1687,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -1728,14 +1714,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1754,13 +1739,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -1781,14 +1766,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1807,13 +1791,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -1834,14 +1818,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1860,13 +1843,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -1887,14 +1870,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1913,13 +1895,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -1940,14 +1922,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1966,13 +1947,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -1993,14 +1974,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2019,13 +1999,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -2046,14 +2026,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2072,13 +2052,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -2099,14 +2079,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2125,13 +2105,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -2152,14 +2132,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2178,13 +2157,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -2205,14 +2184,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2231,13 +2209,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -2258,14 +2236,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2284,13 +2261,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -2311,14 +2288,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2337,13 +2313,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -2364,14 +2340,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2390,13 +2365,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -2417,14 +2392,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2443,13 +2417,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -2470,14 +2444,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2496,13 +2469,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -2523,14 +2496,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2549,13 +2521,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -2576,14 +2548,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2602,13 +2573,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -2629,14 +2600,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2655,13 +2625,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -2682,14 +2652,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2708,13 +2677,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -2735,14 +2704,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2761,13 +2729,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -2788,14 +2756,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2814,13 +2781,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -2841,14 +2808,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2867,13 +2833,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -2894,14 +2860,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2920,13 +2886,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -2947,14 +2913,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2973,13 +2939,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -3000,14 +2966,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3026,13 +2992,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -3053,14 +3019,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3079,13 +3045,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -3106,14 +3072,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3132,13 +3098,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -3159,14 +3125,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3185,13 +3151,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -3212,14 +3178,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3238,13 +3204,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -3265,14 +3231,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3291,13 +3257,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -3318,14 +3284,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3344,13 +3310,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -3371,14 +3337,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3397,13 +3363,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -3424,14 +3390,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3450,13 +3416,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -3477,14 +3443,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3503,13 +3469,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -3530,14 +3496,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3556,13 +3522,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -3583,14 +3549,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3609,13 +3575,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -3636,14 +3602,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3662,13 +3628,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -3689,14 +3655,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3715,13 +3681,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -3742,14 +3708,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3768,13 +3734,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -3795,14 +3761,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3821,13 +3787,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -3848,14 +3814,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3874,13 +3839,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -3901,14 +3866,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3927,13 +3891,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -3954,14 +3918,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3980,13 +3943,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -4007,14 +3970,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4033,13 +3995,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -4060,14 +4022,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4086,13 +4047,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -4113,14 +4074,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4139,13 +4099,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -4166,14 +4126,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4192,13 +4151,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -4219,14 +4178,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4245,13 +4203,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -4272,14 +4230,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4298,13 +4255,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -4325,14 +4282,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4351,13 +4307,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -4378,14 +4334,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4404,13 +4359,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -4431,14 +4386,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4457,13 +4411,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -4484,14 +4438,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4510,13 +4463,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -4537,14 +4490,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4563,13 +4515,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -4590,14 +4542,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4616,13 +4568,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -4643,14 +4595,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4669,13 +4621,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -4696,14 +4648,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4722,13 +4674,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -4749,14 +4701,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4775,13 +4727,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -4802,14 +4754,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4828,13 +4780,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -4855,14 +4807,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4881,13 +4833,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -4908,14 +4860,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4934,13 +4886,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -4961,14 +4913,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4987,13 +4939,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -5014,14 +4966,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5040,13 +4992,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -5067,14 +5019,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5093,13 +5045,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -5120,14 +5072,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5146,13 +5098,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -5173,14 +5125,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5199,13 +5151,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -5226,14 +5178,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5252,13 +5204,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -5279,14 +5231,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5305,13 +5257,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -5332,14 +5284,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5358,13 +5310,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -5385,14 +5337,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5411,13 +5363,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -5438,14 +5390,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5464,13 +5416,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -5491,14 +5443,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5517,13 +5469,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -5544,14 +5496,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ const MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5570,13 +5521,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ const MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -5597,14 +5548,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
- Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ const MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5623,13 +5573,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ const MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+ VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -5650,14 +5600,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5676,13 +5626,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -5703,14 +5653,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5729,13 +5679,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -5756,14 +5706,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5782,13 +5732,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -5809,14 +5759,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5835,13 +5785,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -5862,14 +5812,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5888,13 +5838,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -5915,14 +5865,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5941,13 +5891,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -5968,14 +5918,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5994,13 +5944,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -6021,14 +5971,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -6047,13 +5997,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -6074,14 +6024,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -6100,13 +6050,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -6127,14 +6077,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -6153,13 +6103,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -6180,14 +6130,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -6206,13 +6156,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -6233,14 +6183,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -6259,13 +6209,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -6286,14 +6236,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -6312,13 +6262,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -6339,14 +6289,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -6365,13 +6315,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -6392,14 +6342,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -6418,13 +6368,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -6445,14 +6395,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -6471,13 +6421,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -6498,14 +6448,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -6524,13 +6474,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -6551,14 +6501,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -6577,13 +6527,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -6604,14 +6554,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -6630,13 +6580,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -6657,14 +6607,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -6683,13 +6633,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -6710,14 +6660,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -6736,13 +6686,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -6763,14 +6713,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -6789,13 +6739,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -6816,14 +6766,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -6842,13 +6792,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -6869,14 +6819,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -6895,13 +6845,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -6922,14 +6872,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -6948,13 +6898,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -6975,14 +6925,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -7001,13 +6951,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -7028,14 +6978,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -7054,13 +7004,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -7081,14 +7031,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -7107,13 +7057,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -7134,14 +7084,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, const MatrixB& b,
         const MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -7160,13 +7110,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, const MatrixB& b,
         const MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -7187,14 +7137,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, const MatrixB& b,
         const MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -7213,13 +7163,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, const MatrixB& b,
         const MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -7240,14 +7190,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -7266,14 +7215,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -7294,14 +7242,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -7320,14 +7267,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -7348,14 +7294,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -7374,14 +7319,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -7402,14 +7346,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -7428,14 +7371,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -7456,14 +7398,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -7482,14 +7423,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -7510,14 +7450,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -7536,14 +7475,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -7564,14 +7502,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -7590,14 +7527,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -7618,14 +7554,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -7644,14 +7579,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -7672,14 +7606,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -7698,14 +7631,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -7726,14 +7658,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -7752,14 +7683,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -7780,14 +7710,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -7806,14 +7735,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -7834,14 +7762,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -7860,14 +7787,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -7888,14 +7814,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -7914,14 +7839,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -7942,14 +7866,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -7968,14 +7891,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -7996,14 +7918,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -8022,14 +7944,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -8050,14 +7972,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -8076,14 +7998,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -8104,14 +8026,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -8130,14 +8051,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -8158,14 +8078,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -8184,14 +8103,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -8212,14 +8130,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -8238,14 +8155,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -8266,14 +8182,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -8292,14 +8207,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -8320,14 +8234,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -8346,14 +8259,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -8374,14 +8286,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -8400,14 +8311,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -8428,14 +8338,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -8454,14 +8363,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -8482,14 +8390,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -8508,14 +8415,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -8536,14 +8442,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -8562,14 +8467,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -8590,14 +8494,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -8616,14 +8519,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -8644,14 +8546,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -8670,14 +8571,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -8698,14 +8598,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -8724,14 +8623,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -8752,14 +8650,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -8778,14 +8675,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -8806,14 +8702,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -8832,14 +8727,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -8860,14 +8754,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -8886,14 +8780,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -8914,14 +8808,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -8940,14 +8834,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -8968,14 +8862,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -8994,14 +8887,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -9022,14 +8914,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -9048,14 +8939,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -9076,14 +8966,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -9102,14 +8991,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -9130,14 +9018,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -9156,14 +9043,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -9184,14 +9070,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -9210,14 +9095,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -9238,14 +9122,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -9264,14 +9147,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -9292,14 +9174,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -9318,14 +9199,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -9346,14 +9226,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -9372,14 +9251,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -9400,14 +9278,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -9426,14 +9303,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -9454,14 +9330,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -9480,14 +9355,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -9508,14 +9382,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -9534,14 +9407,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -9562,14 +9434,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -9588,14 +9459,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -9616,14 +9486,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -9642,14 +9511,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -9670,14 +9538,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -9696,14 +9563,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -9724,14 +9590,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -9750,14 +9616,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -9778,14 +9644,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -9804,14 +9670,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -9832,14 +9698,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -9858,14 +9724,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -9886,14 +9752,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -9912,14 +9778,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -9940,14 +9806,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -9966,14 +9832,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -9994,14 +9860,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -10020,14 +9886,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -10048,14 +9914,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -10074,14 +9940,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -10102,14 +9968,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -10128,14 +9994,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -10156,14 +10022,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -10182,14 +10048,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -10210,14 +10076,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -10236,14 +10102,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -10264,14 +10130,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -10290,14 +10156,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -10318,14 +10184,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -10344,14 +10210,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -10372,14 +10238,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -10398,14 +10264,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -10426,14 +10292,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -10452,14 +10318,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -10480,14 +10346,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -10506,14 +10372,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -10534,14 +10400,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -10560,14 +10426,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -10588,14 +10454,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -10614,14 +10480,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -10642,14 +10508,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -10668,14 +10534,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -10696,14 +10562,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -10722,14 +10587,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -10750,14 +10614,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -10776,14 +10639,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -10804,14 +10666,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -10830,14 +10691,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -10858,14 +10718,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -10884,14 +10743,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -10912,14 +10770,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -10938,14 +10795,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -10966,14 +10822,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -10992,14 +10847,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -11020,14 +10874,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -11046,14 +10899,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -11074,14 +10926,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -11100,14 +10951,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -11128,14 +10978,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -11154,14 +11003,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -11182,14 +11030,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -11208,14 +11055,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -11236,14 +11082,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -11262,14 +11107,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -11290,14 +11134,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -11316,14 +11159,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -11344,14 +11186,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -11370,14 +11211,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -11398,14 +11238,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -11424,14 +11263,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -11452,14 +11290,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -11478,14 +11316,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -11506,14 +11344,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -11532,14 +11370,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -11560,14 +11398,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -11586,14 +11424,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -11614,14 +11452,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -11640,14 +11478,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -11668,14 +11506,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -11694,14 +11532,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -11722,14 +11560,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -11748,14 +11586,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -11776,14 +11614,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -11802,14 +11640,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -11830,14 +11668,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -11856,14 +11694,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -11884,14 +11722,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -11910,14 +11748,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -11938,14 +11776,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -11964,14 +11802,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -11992,14 +11830,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -12018,14 +11856,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -12046,14 +11884,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -12072,14 +11910,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -12100,14 +11938,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -12126,14 +11964,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -12154,14 +11992,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -12180,14 +12018,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -12208,14 +12046,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -12234,14 +12072,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -12262,14 +12100,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -12288,14 +12126,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -12316,14 +12154,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -12342,14 +12180,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -12370,14 +12208,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -12396,14 +12234,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -12424,14 +12262,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ const MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -12450,14 +12287,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ const MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -12478,14 +12314,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ const MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -12504,14 +12339,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ const MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -12532,14 +12366,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -12558,14 +12392,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -12586,14 +12420,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -12612,14 +12446,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -12640,14 +12474,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -12666,14 +12500,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -12694,14 +12528,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -12720,14 +12554,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -12748,14 +12582,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -12774,14 +12608,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -12802,14 +12636,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -12828,14 +12662,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -12856,14 +12690,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -12882,14 +12716,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -12910,14 +12744,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -12936,14 +12770,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -12964,14 +12798,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -12990,14 +12824,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -13018,14 +12852,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -13044,14 +12878,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -13072,14 +12906,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -13098,14 +12932,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -13126,14 +12960,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -13152,14 +12986,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -13180,14 +13014,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -13206,14 +13040,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -13234,14 +13068,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -13260,14 +13094,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -13288,14 +13122,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -13314,14 +13148,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -13342,14 +13176,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -13368,14 +13202,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -13396,14 +13230,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -13422,14 +13256,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -13450,14 +13284,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -13476,14 +13310,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -13504,14 +13338,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -13530,14 +13364,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -13558,14 +13392,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -13584,14 +13418,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -13612,14 +13446,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -13638,14 +13472,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -13666,14 +13500,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -13692,14 +13526,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -13720,14 +13554,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -13746,14 +13580,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -13774,14 +13608,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -13800,14 +13634,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -13828,14 +13662,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -13854,14 +13688,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -13882,14 +13716,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -13908,14 +13742,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -13936,14 +13770,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -13962,14 +13796,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -13990,14 +13824,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -14016,14 +13850,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -14044,14 +13878,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, const MatrixB& b,
         const MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -14070,14 +13904,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, const MatrixB& b,
         const MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -14098,14 +13932,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, const MatrixB& b,
         const MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -14124,14 +13958,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, const MatrixB& b,
         const MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -14152,14 +13986,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -14178,14 +14011,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -14206,14 +14038,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -14232,14 +14063,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -14260,14 +14090,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -14286,14 +14115,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -14314,14 +14142,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -14340,14 +14167,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -14368,14 +14194,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -14394,14 +14219,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -14422,14 +14246,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -14448,14 +14271,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -14476,14 +14298,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -14502,14 +14323,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -14530,14 +14350,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -14556,14 +14375,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -14584,14 +14402,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -14610,14 +14427,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -14638,14 +14454,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -14664,14 +14479,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -14692,14 +14506,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -14718,14 +14531,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -14746,14 +14558,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -14772,14 +14583,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -14800,14 +14610,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -14826,14 +14635,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -14854,14 +14662,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -14880,14 +14687,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -14908,14 +14714,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -14934,14 +14740,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -14962,14 +14768,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -14988,14 +14794,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -15016,14 +14822,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -15042,14 +14847,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -15070,14 +14874,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -15096,14 +14899,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -15124,14 +14926,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -15150,14 +14951,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -15178,14 +14978,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -15204,14 +15003,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -15232,14 +15030,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -15258,14 +15055,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -15286,14 +15082,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -15312,14 +15107,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -15340,14 +15134,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -15366,14 +15159,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -15394,14 +15186,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -15420,14 +15211,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -15448,14 +15238,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -15474,14 +15263,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -15502,14 +15290,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -15528,14 +15315,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -15556,14 +15342,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -15582,14 +15367,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -15610,14 +15394,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -15636,14 +15419,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -15664,14 +15446,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -15690,14 +15471,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -15718,14 +15498,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -15744,14 +15523,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -15772,14 +15550,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -15798,14 +15576,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -15826,14 +15604,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -15852,14 +15630,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -15880,14 +15658,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -15906,14 +15683,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -15934,14 +15710,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -15960,14 +15735,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -15988,14 +15762,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -16014,14 +15787,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -16042,14 +15814,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -16068,14 +15839,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -16096,14 +15866,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -16122,14 +15891,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -16150,14 +15918,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -16176,14 +15943,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -16204,14 +15970,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -16230,14 +15995,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -16258,14 +16022,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -16284,14 +16047,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -16312,14 +16074,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -16338,14 +16099,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -16366,14 +16126,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -16392,14 +16151,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -16420,14 +16178,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -16446,14 +16203,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -16474,14 +16230,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -16500,14 +16255,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -16528,14 +16282,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -16554,14 +16307,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -16582,14 +16334,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -16608,14 +16359,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -16636,14 +16386,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -16662,14 +16412,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -16690,14 +16440,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -16716,14 +16466,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -16744,14 +16494,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -16770,14 +16520,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -16798,14 +16548,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -16824,14 +16574,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -16852,14 +16602,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -16878,14 +16628,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -16906,14 +16656,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -16932,14 +16682,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -16960,14 +16710,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -16986,14 +16736,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -17014,14 +16764,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -17040,14 +16790,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -17068,14 +16818,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -17094,14 +16844,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -17122,14 +16872,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -17148,14 +16898,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -17176,14 +16926,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -17202,14 +16952,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -17230,14 +16980,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -17256,14 +17006,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -17284,14 +17034,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -17310,14 +17060,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -17338,14 +17088,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -17364,14 +17114,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -17392,14 +17142,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -17418,14 +17168,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -17446,14 +17196,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -17472,14 +17222,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -17500,14 +17250,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -17526,14 +17276,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -17554,14 +17304,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -17580,14 +17330,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -17608,14 +17358,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -17634,14 +17383,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -17662,14 +17410,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -17688,14 +17435,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -17716,14 +17462,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -17742,14 +17487,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -17770,14 +17514,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -17796,14 +17539,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -17824,14 +17566,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -17850,14 +17591,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -17878,14 +17618,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -17904,14 +17643,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -17932,14 +17670,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -17958,14 +17695,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -17986,14 +17722,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -18012,14 +17747,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -18040,14 +17774,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -18066,14 +17799,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -18094,14 +17826,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -18120,14 +17851,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -18148,14 +17878,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -18174,14 +17903,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -18202,14 +17930,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -18228,14 +17955,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -18256,14 +17982,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -18282,14 +18007,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -18310,14 +18034,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -18336,14 +18059,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -18364,14 +18086,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -18390,14 +18112,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -18418,14 +18140,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -18444,14 +18166,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -18472,14 +18194,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -18498,14 +18220,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -18526,14 +18248,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -18552,14 +18274,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -18580,14 +18302,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -18606,14 +18328,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -18634,14 +18356,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -18660,14 +18382,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -18688,14 +18410,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -18714,14 +18436,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -18742,14 +18464,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -18768,14 +18490,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -18796,14 +18518,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -18822,14 +18544,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -18850,14 +18572,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -18876,14 +18598,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -18904,14 +18626,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -18930,14 +18652,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -18958,14 +18680,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -18984,14 +18706,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -19012,14 +18734,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -19038,14 +18760,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -19066,14 +18788,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -19092,14 +18814,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -19120,14 +18842,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -19146,14 +18868,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -19174,14 +18896,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -19200,14 +18922,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -19228,14 +18950,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -19254,14 +18976,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -19282,14 +19004,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -19308,14 +19030,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -19336,14 +19058,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ const MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -19362,14 +19083,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ const MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -19390,14 +19110,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ const MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -19416,14 +19135,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ const MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -19444,14 +19162,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -19470,14 +19188,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -19498,14 +19216,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -19524,14 +19242,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -19552,14 +19270,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -19578,14 +19296,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -19606,14 +19324,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -19632,14 +19350,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -19660,14 +19378,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -19686,14 +19404,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -19714,14 +19432,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -19740,14 +19458,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -19768,14 +19486,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -19794,14 +19512,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -19822,14 +19540,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -19848,14 +19566,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -19876,14 +19594,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -19902,14 +19620,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -19930,14 +19648,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -19956,14 +19674,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -19984,14 +19702,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -20010,14 +19728,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -20038,14 +19756,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -20064,14 +19782,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -20092,14 +19810,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -20118,14 +19836,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -20146,14 +19864,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -20172,14 +19890,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -20200,14 +19918,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -20226,14 +19944,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -20254,14 +19972,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -20280,14 +19998,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -20308,14 +20026,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -20334,14 +20052,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -20362,14 +20080,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -20388,14 +20106,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -20416,14 +20134,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -20442,14 +20160,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -20470,14 +20188,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -20496,14 +20214,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -20524,14 +20242,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -20550,14 +20268,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -20578,14 +20296,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -20604,14 +20322,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -20632,14 +20350,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -20658,14 +20376,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -20686,14 +20404,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -20712,14 +20430,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -20740,14 +20458,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -20766,14 +20484,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -20794,14 +20512,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -20820,14 +20538,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -20848,14 +20566,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -20874,14 +20592,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -20902,14 +20620,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -20928,14 +20646,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -20956,14 +20674,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, const MatrixB& b,
         const MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -20982,14 +20700,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, const MatrixB& b,
         const MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -21010,14 +20728,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, const MatrixB& b,
         const MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -21036,14 +20754,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, const MatrixB& b,
         const MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -21064,14 +20782,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -21090,14 +20807,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -21118,14 +20834,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -21144,14 +20859,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -21172,14 +20886,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -21198,14 +20911,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -21226,14 +20938,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -21252,14 +20963,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -21280,14 +20990,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -21306,14 +21015,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -21334,14 +21042,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -21360,14 +21067,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -21388,14 +21094,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -21414,14 +21119,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -21442,14 +21146,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -21468,14 +21171,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -21496,14 +21198,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -21522,14 +21223,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -21550,14 +21250,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -21576,14 +21275,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -21604,14 +21302,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -21630,14 +21327,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -21658,14 +21354,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -21684,14 +21379,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -21712,14 +21406,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -21738,14 +21431,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -21766,14 +21458,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -21792,14 +21483,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -21820,14 +21510,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -21846,14 +21536,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -21874,14 +21564,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -21900,14 +21590,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -21928,14 +21618,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -21954,14 +21643,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -21982,14 +21670,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -22008,14 +21695,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -22036,14 +21722,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -22062,14 +21747,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -22090,14 +21774,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -22116,14 +21799,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -22144,14 +21826,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -22170,14 +21851,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -22198,14 +21878,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -22224,14 +21903,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -22252,14 +21930,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -22278,14 +21955,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -22306,14 +21982,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -22332,14 +22007,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -22360,14 +22034,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -22386,14 +22059,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -22414,14 +22086,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -22440,14 +22111,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -22468,14 +22138,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -22494,14 +22163,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -22522,14 +22190,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -22548,14 +22215,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -22576,14 +22242,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -22602,14 +22267,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -22630,14 +22294,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -22656,14 +22319,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -22684,14 +22346,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -22710,14 +22372,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -22738,14 +22400,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -22764,14 +22426,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -22792,14 +22454,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -22818,14 +22479,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -22846,14 +22506,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -22872,14 +22531,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -22900,14 +22558,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -22926,14 +22583,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -22954,14 +22610,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -22980,14 +22635,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -23008,14 +22662,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -23034,14 +22687,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -23062,14 +22714,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -23088,14 +22739,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -23116,14 +22766,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -23142,14 +22791,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -23170,14 +22818,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -23196,14 +22843,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -23224,14 +22870,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -23250,14 +22895,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -23278,14 +22922,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -23304,14 +22947,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -23332,14 +22974,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -23358,14 +22999,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -23386,14 +23026,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -23412,14 +23051,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -23440,14 +23078,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -23466,14 +23103,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -23494,14 +23130,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -23520,14 +23155,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -23548,14 +23182,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -23574,14 +23208,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -23602,14 +23236,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -23628,14 +23262,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -23656,14 +23290,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -23682,14 +23316,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -23710,14 +23344,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -23736,14 +23370,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -23764,14 +23398,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -23790,14 +23424,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -23818,14 +23452,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -23844,14 +23478,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -23872,14 +23506,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -23898,14 +23532,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -23926,14 +23560,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -23952,14 +23586,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -23980,14 +23614,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -24006,14 +23640,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -24034,14 +23668,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -24060,14 +23694,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -24088,14 +23722,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -24114,14 +23748,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -24142,14 +23776,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -24168,14 +23802,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -24196,14 +23830,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -24222,14 +23856,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -24250,14 +23884,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -24276,14 +23910,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -24304,14 +23938,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -24330,14 +23964,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -24358,14 +23992,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -24384,14 +24018,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -24412,14 +24046,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -24438,14 +24072,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -24466,14 +24100,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -24492,14 +24126,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -24520,14 +24154,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -24546,14 +24179,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -24574,14 +24206,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -24600,14 +24231,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -24628,14 +24258,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -24654,14 +24283,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -24682,14 +24310,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -24708,14 +24335,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -24736,14 +24362,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -24762,14 +24387,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -24790,14 +24414,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -24816,14 +24439,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -24844,14 +24466,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -24870,14 +24491,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -24898,14 +24518,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -24924,14 +24543,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -24952,14 +24570,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -24978,14 +24595,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -25006,14 +24622,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -25032,14 +24647,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -25060,14 +24674,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -25086,14 +24699,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -25114,14 +24726,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -25140,14 +24751,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -25168,14 +24778,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -25194,14 +24803,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -25222,14 +24830,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -25248,14 +24855,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -25276,14 +24882,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -25302,14 +24908,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -25330,14 +24936,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -25356,14 +24962,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -25384,14 +24990,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -25410,14 +25016,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -25438,14 +25044,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -25464,14 +25070,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -25492,14 +25098,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -25518,14 +25124,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -25546,14 +25152,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -25572,14 +25178,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -25600,14 +25206,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -25626,14 +25232,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -25654,14 +25260,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -25680,14 +25286,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -25708,14 +25314,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -25734,14 +25340,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -25762,14 +25368,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -25788,14 +25394,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -25816,14 +25422,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -25842,14 +25448,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -25870,14 +25476,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -25896,14 +25502,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -25924,14 +25530,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -25950,14 +25556,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -25978,14 +25584,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -26004,14 +25610,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -26032,14 +25638,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -26058,14 +25664,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -26086,14 +25692,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -26112,14 +25718,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -26140,14 +25746,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -26166,14 +25772,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -26194,14 +25800,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -26220,14 +25826,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -26248,14 +25854,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ const MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -26274,14 +25879,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ const MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -26302,14 +25906,13 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ const MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -26328,14 +25931,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
- MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
- const VectorBERR& berr ) {
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r, VectorC& c,
+ const MatrixB& b, const MatrixX& x, typename remove_imaginary<
+ typename value< MatrixAB >::type >::type& rcond,
+ const VectorFERR& ferr, const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -26356,14 +25958,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -26382,14 +25984,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -26410,14 +26012,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -26436,14 +26038,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -26464,14 +26066,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -26490,14 +26092,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -26518,14 +26120,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -26544,14 +26146,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -26572,14 +26174,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -26598,14 +26200,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -26626,14 +26228,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -26652,14 +26254,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -26680,14 +26282,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -26706,14 +26308,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -26734,14 +26336,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -26760,14 +26362,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -26788,14 +26390,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -26814,14 +26416,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -26842,14 +26444,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -26868,14 +26470,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -26896,14 +26498,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -26922,14 +26524,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -26950,14 +26552,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -26976,14 +26578,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -27004,14 +26606,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -27030,14 +26632,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -27058,14 +26660,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -27084,14 +26686,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -27112,14 +26714,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -27138,14 +26740,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -27166,14 +26768,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -27192,14 +26794,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -27220,14 +26822,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -27246,14 +26848,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -27274,14 +26876,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -27300,14 +26902,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -27328,14 +26930,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -27354,14 +26956,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- VectorR& r, const VectorC& c, const MatrixB& b, const MatrixX& x,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
         typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -27382,14 +26984,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -27408,14 +27010,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -27436,14 +27038,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -27462,14 +27064,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -27490,14 +27092,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -27516,14 +27118,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -27544,14 +27146,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -27570,14 +27172,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -27598,14 +27200,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -27624,14 +27226,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -27652,14 +27254,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -27678,14 +27280,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -27706,14 +27308,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -27732,14 +27334,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -27760,14 +27362,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -27786,14 +27388,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
- const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -27814,14 +27416,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -27840,14 +27442,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, const VectorIPIV& ipiv, char& equed, const VectorR& r,
+ const VectorC& c, const MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -27868,14 +27470,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, const MatrixB& b,
         const MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -27894,14 +27496,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
+inline std::ptrdiff_t gbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, const MatrixB& b,
         const MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 
@@ -27922,14 +27524,14 @@
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR,
         typename Workspace >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, const MatrixB& b,
         const MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -27948,14 +27550,14 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorIPIV,
         typename VectorR, typename VectorC, typename MatrixB,
         typename MatrixX, typename VectorFERR, typename VectorBERR >
-inline std::ptrdiff_t gbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, const VectorIPIV& ipiv,
- char& equed, const VectorR& r, const VectorC& c, const MatrixB& b,
+inline std::ptrdiff_t gbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, const VectorIPIV& ipiv, char& equed,
+ const VectorR& r, const VectorC& c, const MatrixB& b,
         const MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return gbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
+ ab, afb, ipiv, equed, r, c, b, x, rcond, ferr, berr,
             optimal_workspace() );
 }
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gesvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gesvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gesvx.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -200,12 +200,12 @@
         BOOST_ASSERT( equed == 'N' || equed == 'R' || equed == 'C' ||
                 equed == 'B' );
         BOOST_ASSERT( fact == 'F' || fact == 'N' || fact == 'E' );
- BOOST_ASSERT( size(berr) >= size_column(x) );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
                 min_size_iwork( size_column_op(a, trans()) ));
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
                 size_column_op(a, trans()) ));
- BOOST_ASSERT( size_column(x) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_column_op(a, trans()) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(af) == 1 || stride_minor(af) == 1 );
@@ -220,7 +220,7 @@
         BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,
                 size_column_op(a, trans())) );
         return detail::gesvx( fact, trans(), size_column_op(a, trans()),
- size_column(x), begin_value(a), stride_major(a),
+ size_column(b), begin_value(a), stride_major(a),
                 begin_value(af), stride_major(af), begin_value(ipiv), equed,
                 begin_value(r), begin_value(c), begin_value(b),
                 stride_major(b), begin_value(x), stride_major(x), rcond,
@@ -348,12 +348,12 @@
         BOOST_ASSERT( equed == 'N' || equed == 'R' || equed == 'C' ||
                 equed == 'B' );
         BOOST_ASSERT( fact == 'F' || fact == 'N' || fact == 'E' );
- BOOST_ASSERT( size(berr) >= size_column(x) );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork(
                 size_column_op(a, trans()) ));
         BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
                 size_column_op(a, trans()) ));
- BOOST_ASSERT( size_column(x) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_column_op(a, trans()) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(af) == 1 || stride_minor(af) == 1 );
@@ -368,7 +368,7 @@
         BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,
                 size_column_op(a, trans())) );
         return detail::gesvx( fact, trans(), size_column_op(a, trans()),
- size_column(x), begin_value(a), stride_major(a),
+ size_column(b), begin_value(a), stride_major(a),
                 begin_value(af), stride_major(af), begin_value(ipiv), equed,
                 begin_value(r), begin_value(c), begin_value(b),
                 stride_major(b), begin_value(x), stride_major(x), rcond,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggglm.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggglm.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggglm.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -161,20 +161,20 @@
         BOOST_STATIC_ASSERT( (is_mutable< VectorD >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorX >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorY >::value) );
- BOOST_ASSERT( size(d) >= size_row(b) );
+ BOOST_ASSERT( size(d) >= size_row(a) );
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
- size_column(a), size_row(b), size_column(b) ));
+ size_column(a), size_row(a), size_column(b) ));
         BOOST_ASSERT( size(x) >= size_column(a) );
         BOOST_ASSERT( size(y) >= size_column(b) );
- BOOST_ASSERT( size_column(b) >= size_row(b)-size_column(a) );
+ BOOST_ASSERT( size_column(b) >= size_row(a)-size_column(a) );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
- BOOST_ASSERT( size_row(b) >= 0 );
+ BOOST_ASSERT( size_row(a) >= 0 );
         BOOST_ASSERT( stride_major(a) >= std::max< std::ptrdiff_t >(1,
- size_row(b)) );
+ size_row(a)) );
         BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
- size_row(b)) );
- return detail::ggglm( size_row(b), size_column(a), size_column(b),
+ size_row(a)) );
+ return detail::ggglm( size_row(a), size_column(a), size_column(b),
                 begin_value(a), stride_major(a), begin_value(b),
                 stride_major(b), begin_value(d), begin_value(x),
                 begin_value(y), begin_value(work.select(real_type())),
@@ -193,7 +193,7 @@
     static std::ptrdiff_t invoke( MatrixA& a, MatrixB& b, VectorD& d,
             VectorX& x, VectorY& y, minimal_workspace work ) {
         bindings::detail::array< real_type > tmp_work( min_size_work(
- size_column(a), size_row(b), size_column(b) ) );
+ size_column(a), size_row(a), size_column(b) ) );
         return invoke( a, b, d, x, y, workspace( tmp_work ) );
     }
 
@@ -209,7 +209,7 @@
     static std::ptrdiff_t invoke( MatrixA& a, MatrixB& b, VectorD& d,
             VectorX& x, VectorY& y, optimal_workspace work ) {
         real_type opt_size_work;
- detail::ggglm( size_row(b), size_column(a), size_column(b),
+ detail::ggglm( size_row(a), size_column(a), size_column(b),
                 begin_value(a), stride_major(a), begin_value(b),
                 stride_major(b), begin_value(d), begin_value(x),
                 begin_value(y), &opt_size_work, -1 );
@@ -268,20 +268,20 @@
         BOOST_STATIC_ASSERT( (is_mutable< VectorD >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorX >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorY >::value) );
- BOOST_ASSERT( size(d) >= size_row(b) );
+ BOOST_ASSERT( size(d) >= size_row(a) );
         BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
- size_column(a), size_row(b), size_column(b) ));
+ size_column(a), size_row(a), size_column(b) ));
         BOOST_ASSERT( size(x) >= size_column(a) );
         BOOST_ASSERT( size(y) >= size_column(b) );
- BOOST_ASSERT( size_column(b) >= size_row(b)-size_column(a) );
+ BOOST_ASSERT( size_column(b) >= size_row(a)-size_column(a) );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
- BOOST_ASSERT( size_row(b) >= 0 );
+ BOOST_ASSERT( size_row(a) >= 0 );
         BOOST_ASSERT( stride_major(a) >= std::max< std::ptrdiff_t >(1,
- size_row(b)) );
+ size_row(a)) );
         BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
- size_row(b)) );
- return detail::ggglm( size_row(b), size_column(a), size_column(b),
+ size_row(a)) );
+ return detail::ggglm( size_row(a), size_column(a), size_column(b),
                 begin_value(a), stride_major(a), begin_value(b),
                 stride_major(b), begin_value(d), begin_value(x),
                 begin_value(y), begin_value(work.select(value_type())),
@@ -300,7 +300,7 @@
     static std::ptrdiff_t invoke( MatrixA& a, MatrixB& b, VectorD& d,
             VectorX& x, VectorY& y, minimal_workspace work ) {
         bindings::detail::array< value_type > tmp_work( min_size_work(
- size_column(a), size_row(b), size_column(b) ) );
+ size_column(a), size_row(a), size_column(b) ) );
         return invoke( a, b, d, x, y, workspace( tmp_work ) );
     }
 
@@ -316,7 +316,7 @@
     static std::ptrdiff_t invoke( MatrixA& a, MatrixB& b, VectorD& d,
             VectorX& x, VectorY& y, optimal_workspace work ) {
         value_type opt_size_work;
- detail::ggglm( size_row(b), size_column(a), size_column(b),
+ detail::ggglm( size_row(a), size_column(a), size_column(b),
                 begin_value(a), stride_major(a), begin_value(b),
                 stride_major(b), begin_value(d), begin_value(x),
                 begin_value(y), &opt_size_work, -1 );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gglse.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gglse.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gglse.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -164,9 +164,9 @@
         BOOST_ASSERT( size(c) >= size_row(a) );
         BOOST_ASSERT( size(d) >= size_row(b) );
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
- size_row(a), size_column(b), size_row(b) ));
- BOOST_ASSERT( size(x) >= size_column(b) );
- BOOST_ASSERT( size_column(b) >= 0 );
+ size_row(a), size_column(a), size_row(b) ));
+ BOOST_ASSERT( size(x) >= size_column(a) );
+ BOOST_ASSERT( size_column(a) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_row(a) >= 0 );
@@ -174,7 +174,7 @@
                 size_row(a)) );
         BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
                 size_row(b)) );
- return detail::gglse( size_row(a), size_column(b), size_row(b),
+ return detail::gglse( size_row(a), size_column(a), size_row(b),
                 begin_value(a), stride_major(a), begin_value(b),
                 stride_major(b), begin_value(c), begin_value(d),
                 begin_value(x), begin_value(work.select(real_type())),
@@ -193,7 +193,7 @@
     static std::ptrdiff_t invoke( MatrixA& a, MatrixB& b, VectorC& c,
             VectorD& d, VectorX& x, minimal_workspace work ) {
         bindings::detail::array< real_type > tmp_work( min_size_work(
- size_row(a), size_column(b), size_row(b) ) );
+ size_row(a), size_column(a), size_row(b) ) );
         return invoke( a, b, c, d, x, workspace( tmp_work ) );
     }
 
@@ -209,7 +209,7 @@
     static std::ptrdiff_t invoke( MatrixA& a, MatrixB& b, VectorC& c,
             VectorD& d, VectorX& x, optimal_workspace work ) {
         real_type opt_size_work;
- detail::gglse( size_row(a), size_column(b), size_row(b),
+ detail::gglse( size_row(a), size_column(a), size_row(b),
                 begin_value(a), stride_major(a), begin_value(b),
                 stride_major(b), begin_value(c), begin_value(d),
                 begin_value(x), &opt_size_work, -1 );
@@ -271,9 +271,9 @@
         BOOST_ASSERT( size(c) >= size_row(a) );
         BOOST_ASSERT( size(d) >= size_row(b) );
         BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
- size_row(a), size_column(b), size_row(b) ));
- BOOST_ASSERT( size(x) >= size_column(b) );
- BOOST_ASSERT( size_column(b) >= 0 );
+ size_row(a), size_column(a), size_row(b) ));
+ BOOST_ASSERT( size(x) >= size_column(a) );
+ BOOST_ASSERT( size_column(a) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_row(a) >= 0 );
@@ -281,7 +281,7 @@
                 size_row(a)) );
         BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
                 size_row(b)) );
- return detail::gglse( size_row(a), size_column(b), size_row(b),
+ return detail::gglse( size_row(a), size_column(a), size_row(b),
                 begin_value(a), stride_major(a), begin_value(b),
                 stride_major(b), begin_value(c), begin_value(d),
                 begin_value(x), begin_value(work.select(value_type())),
@@ -300,7 +300,7 @@
     static std::ptrdiff_t invoke( MatrixA& a, MatrixB& b, VectorC& c,
             VectorD& d, VectorX& x, minimal_workspace work ) {
         bindings::detail::array< value_type > tmp_work( min_size_work(
- size_row(a), size_column(b), size_row(b) ) );
+ size_row(a), size_column(a), size_row(b) ) );
         return invoke( a, b, c, d, x, workspace( tmp_work ) );
     }
 
@@ -316,7 +316,7 @@
     static std::ptrdiff_t invoke( MatrixA& a, MatrixB& b, VectorC& c,
             VectorD& d, VectorX& x, optimal_workspace work ) {
         value_type opt_size_work;
- detail::gglse( size_row(a), size_column(b), size_row(b),
+ detail::gglse( size_row(a), size_column(a), size_row(b),
                 begin_value(a), stride_major(a), begin_value(b),
                 stride_major(b), begin_value(c), begin_value(d),
                 begin_value(x), &opt_size_work, -1 );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggsvd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggsvd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggsvd.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -191,12 +191,12 @@
         BOOST_ASSERT( jobq == 'Q' || jobq == 'N' );
         BOOST_ASSERT( jobu == 'U' || jobu == 'N' );
         BOOST_ASSERT( jobv == 'V' || jobv == 'N' );
- BOOST_ASSERT( size(alpha) >= size_column(b) );
+ BOOST_ASSERT( size(alpha) >= size_column(a) );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
- min_size_iwork( size_column(b) ));
+ min_size_iwork( size_column(a) ));
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
- size_column(b), size_row(a), size_row(b) ));
- BOOST_ASSERT( size_column(b) >= 0 );
+ size_column(a), size_row(a), size_row(b) ));
+ BOOST_ASSERT( size_column(a) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_minor(q) == 1 || stride_minor(q) == 1 );
@@ -208,7 +208,7 @@
                 size_row(a)) );
         BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
                 size_row(b)) );
- return detail::ggsvd( jobu, jobv, jobq, size_row(a), size_column(b),
+ return detail::ggsvd( jobu, jobv, jobq, size_row(a), size_column(a),
                 size_row(b), k, l, begin_value(a), stride_major(a),
                 begin_value(b), stride_major(b), begin_value(alpha),
                 begin_value(beta), begin_value(u), stride_major(u),
@@ -232,9 +232,9 @@
             MatrixA& a, MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
             MatrixU& u, MatrixV& v, MatrixQ& q, minimal_workspace work ) {
         bindings::detail::array< real_type > tmp_work( min_size_work(
- size_column(b), size_row(a), size_row(b) ) );
+ size_column(a), size_row(a), size_row(b) ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
- min_size_iwork( size_column(b) ) );
+ min_size_iwork( size_column(a) ) );
         return invoke( jobu, jobv, jobq, k, l, a, b, alpha, beta, u, v, q,
                 workspace( tmp_work, tmp_iwork ) );
     }
@@ -328,14 +328,14 @@
         BOOST_ASSERT( jobq == 'Q' || jobq == 'N' );
         BOOST_ASSERT( jobu == 'U' || jobu == 'N' );
         BOOST_ASSERT( jobv == 'V' || jobv == 'N' );
- BOOST_ASSERT( size(alpha) >= size_column(b) );
+ BOOST_ASSERT( size(alpha) >= size_column(a) );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
- min_size_iwork( size_column(b) ));
+ min_size_iwork( size_column(a) ));
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork(
- size_column(b) ));
+ size_column(a) ));
         BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
- size_column(b), size_row(a), size_row(b) ));
- BOOST_ASSERT( size_column(b) >= 0 );
+ size_column(a), size_row(a), size_row(b) ));
+ BOOST_ASSERT( size_column(a) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_minor(q) == 1 || stride_minor(q) == 1 );
@@ -347,7 +347,7 @@
                 size_row(a)) );
         BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
                 size_row(b)) );
- return detail::ggsvd( jobu, jobv, jobq, size_row(a), size_column(b),
+ return detail::ggsvd( jobu, jobv, jobq, size_row(a), size_column(a),
                 size_row(b), k, l, begin_value(a), stride_major(a),
                 begin_value(b), stride_major(b), begin_value(alpha),
                 begin_value(beta), begin_value(u), stride_major(u),
@@ -372,11 +372,11 @@
             MatrixA& a, MatrixB& b, VectorALPHA& alpha, VectorBETA& beta,
             MatrixU& u, MatrixV& v, MatrixQ& q, minimal_workspace work ) {
         bindings::detail::array< value_type > tmp_work( min_size_work(
- size_column(b), size_row(a), size_row(b) ) );
+ size_column(a), size_row(a), size_row(b) ) );
         bindings::detail::array< real_type > tmp_rwork( min_size_rwork(
- size_column(b) ) );
+ size_column(a) ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
- min_size_iwork( size_column(b) ) );
+ min_size_iwork( size_column(a) ) );
         return invoke( jobu, jobv, jobq, k, l, a, b, alpha, beta, u, v, q,
                 workspace( tmp_work, tmp_rwork, tmp_iwork ) );
     }

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbevd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbevd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbevd.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -103,9 +103,8 @@
     //
     template< typename MatrixAB, typename VectorW, typename MatrixZ,
             typename WORK, typename RWORK, typename IWORK >
- static std::ptrdiff_t invoke( const char jobz, const fortran_int_t n,
- MatrixAB& ab, VectorW& w, MatrixZ& z, detail::workspace3< WORK,
- RWORK, IWORK > work ) {
+ static std::ptrdiff_t invoke( const char jobz, MatrixAB& ab, VectorW& w,
+ MatrixZ& z, detail::workspace3< WORK, RWORK, IWORK > work ) {
         typedef typename result_of::data_side< MatrixAB >::type uplo;
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< MatrixAB >::type >::type,
@@ -116,18 +115,18 @@
         BOOST_STATIC_ASSERT( (is_mutable< MatrixZ >::value) );
         BOOST_ASSERT( bandwidth(ab, uplo()) >= 0 );
         BOOST_ASSERT( jobz == 'N' || jobz == 'V' );
- BOOST_ASSERT( n >= 0 );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
- min_size_iwork( jobz, n ));
+ min_size_iwork( jobz, size_column(ab) ));
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork( jobz,
- n ));
+ size_column(ab) ));
         BOOST_ASSERT( size(work.select(value_type())) >= min_size_work( jobz,
- n ));
+ size_column(ab) ));
+ BOOST_ASSERT( size_column(ab) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( size_minor(z) == 1 || stride_minor(z) == 1 );
         BOOST_ASSERT( stride_major(ab) >= bandwidth(ab, uplo()) );
- return detail::hbevd( jobz, uplo(), n, bandwidth(ab, uplo()),
- begin_value(ab), stride_major(ab), begin_value(w),
+ return detail::hbevd( jobz, uplo(), size_column(ab), bandwidth(ab,
+ uplo()), begin_value(ab), stride_major(ab), begin_value(w),
                 begin_value(z), stride_major(z),
                 begin_value(work.select(value_type())),
                 size(work.select(value_type())),
@@ -145,16 +144,16 @@
     // * Enables the unblocked algorithm (BLAS level 2)
     //
     template< typename MatrixAB, typename VectorW, typename MatrixZ >
- static std::ptrdiff_t invoke( const char jobz, const fortran_int_t n,
- MatrixAB& ab, VectorW& w, MatrixZ& z, minimal_workspace work ) {
+ static std::ptrdiff_t invoke( const char jobz, MatrixAB& ab, VectorW& w,
+ MatrixZ& z, minimal_workspace work ) {
         typedef typename result_of::data_side< MatrixAB >::type uplo;
         bindings::detail::array< value_type > tmp_work( min_size_work( jobz,
- n ) );
+ size_column(ab) ) );
         bindings::detail::array< real_type > tmp_rwork( min_size_rwork( jobz,
- n ) );
+ size_column(ab) ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
- min_size_iwork( jobz, n ) );
- return invoke( jobz, n, ab, w, z, workspace( tmp_work, tmp_rwork,
+ min_size_iwork( jobz, size_column(ab) ) );
+ return invoke( jobz, ab, w, z, workspace( tmp_work, tmp_rwork,
                 tmp_iwork ) );
     }
 
@@ -166,14 +165,14 @@
     // * Enables the blocked algorithm (BLAS level 3)
     //
     template< typename MatrixAB, typename VectorW, typename MatrixZ >
- static std::ptrdiff_t invoke( const char jobz, const fortran_int_t n,
- MatrixAB& ab, VectorW& w, MatrixZ& z, optimal_workspace work ) {
+ static std::ptrdiff_t invoke( const char jobz, MatrixAB& ab, VectorW& w,
+ MatrixZ& z, optimal_workspace work ) {
         typedef typename result_of::data_side< MatrixAB >::type uplo;
         value_type opt_size_work;
         real_type opt_size_rwork;
         fortran_int_t opt_size_iwork;
- detail::hbevd( jobz, uplo(), n, bandwidth(ab, uplo()),
- begin_value(ab), stride_major(ab), begin_value(w),
+ detail::hbevd( jobz, uplo(), size_column(ab), bandwidth(ab,
+ uplo()), begin_value(ab), stride_major(ab), begin_value(w),
                 begin_value(z), stride_major(z), &opt_size_work, -1,
                 &opt_size_rwork, -1, &opt_size_iwork, -1 );
         bindings::detail::array< value_type > tmp_work(
@@ -182,7 +181,7 @@
                 traits::detail::to_int( opt_size_rwork ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
                 opt_size_iwork );
- return invoke( jobz, n, ab, w, z, workspace( tmp_work, tmp_rwork,
+ return invoke( jobz, ab, w, z, workspace( tmp_work, tmp_rwork,
                 tmp_iwork ) );
     }
 
@@ -250,10 +249,10 @@
 //
 template< typename MatrixAB, typename VectorW, typename MatrixZ,
         typename Workspace >
-inline std::ptrdiff_t hbevd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, VectorW& w, MatrixZ& z, Workspace work ) {
+inline std::ptrdiff_t hbevd( const char jobz, MatrixAB& ab, VectorW& w,
+ MatrixZ& z, Workspace work ) {
     return hbevd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, w, z, work );
+ ab, w, z, work );
 }
 
 //
@@ -264,10 +263,10 @@
 // * Default workspace-type (optimal)
 //
 template< typename MatrixAB, typename VectorW, typename MatrixZ >
-inline std::ptrdiff_t hbevd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, VectorW& w, MatrixZ& z ) {
+inline std::ptrdiff_t hbevd( const char jobz, MatrixAB& ab, VectorW& w,
+ MatrixZ& z ) {
     return hbevd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, w, z, optimal_workspace() );
+ ab, w, z, optimal_workspace() );
 }
 
 //
@@ -279,10 +278,10 @@
 //
 template< typename MatrixAB, typename VectorW, typename MatrixZ,
         typename Workspace >
-inline std::ptrdiff_t hbevd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, VectorW& w, MatrixZ& z, Workspace work ) {
+inline std::ptrdiff_t hbevd( const char jobz, const MatrixAB& ab,
+ VectorW& w, MatrixZ& z, Workspace work ) {
     return hbevd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, w, z, work );
+ ab, w, z, work );
 }
 
 //
@@ -293,10 +292,10 @@
 // * Default workspace-type (optimal)
 //
 template< typename MatrixAB, typename VectorW, typename MatrixZ >
-inline std::ptrdiff_t hbevd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, VectorW& w, MatrixZ& z ) {
+inline std::ptrdiff_t hbevd( const char jobz, const MatrixAB& ab,
+ VectorW& w, MatrixZ& z ) {
     return hbevd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, w, z, optimal_workspace() );
+ ab, w, z, optimal_workspace() );
 }
 
 //
@@ -308,10 +307,10 @@
 //
 template< typename MatrixAB, typename VectorW, typename MatrixZ,
         typename Workspace >
-inline std::ptrdiff_t hbevd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const VectorW& w, MatrixZ& z, Workspace work ) {
+inline std::ptrdiff_t hbevd( const char jobz, MatrixAB& ab,
+ const VectorW& w, MatrixZ& z, Workspace work ) {
     return hbevd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, w, z, work );
+ ab, w, z, work );
 }
 
 //
@@ -322,10 +321,10 @@
 // * Default workspace-type (optimal)
 //
 template< typename MatrixAB, typename VectorW, typename MatrixZ >
-inline std::ptrdiff_t hbevd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const VectorW& w, MatrixZ& z ) {
+inline std::ptrdiff_t hbevd( const char jobz, MatrixAB& ab,
+ const VectorW& w, MatrixZ& z ) {
     return hbevd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, w, z, optimal_workspace() );
+ ab, w, z, optimal_workspace() );
 }
 
 //
@@ -337,10 +336,10 @@
 //
 template< typename MatrixAB, typename VectorW, typename MatrixZ,
         typename Workspace >
-inline std::ptrdiff_t hbevd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const VectorW& w, MatrixZ& z, Workspace work ) {
+inline std::ptrdiff_t hbevd( const char jobz, const MatrixAB& ab,
+ const VectorW& w, MatrixZ& z, Workspace work ) {
     return hbevd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, w, z, work );
+ ab, w, z, work );
 }
 
 //
@@ -351,10 +350,10 @@
 // * Default workspace-type (optimal)
 //
 template< typename MatrixAB, typename VectorW, typename MatrixZ >
-inline std::ptrdiff_t hbevd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const VectorW& w, MatrixZ& z ) {
+inline std::ptrdiff_t hbevd( const char jobz, const MatrixAB& ab,
+ const VectorW& w, MatrixZ& z ) {
     return hbevd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, w, z, optimal_workspace() );
+ ab, w, z, optimal_workspace() );
 }
 
 //
@@ -366,10 +365,10 @@
 //
 template< typename MatrixAB, typename VectorW, typename MatrixZ,
         typename Workspace >
-inline std::ptrdiff_t hbevd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, VectorW& w, const MatrixZ& z, Workspace work ) {
+inline std::ptrdiff_t hbevd( const char jobz, MatrixAB& ab, VectorW& w,
+ const MatrixZ& z, Workspace work ) {
     return hbevd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, w, z, work );
+ ab, w, z, work );
 }
 
 //
@@ -380,10 +379,10 @@
 // * Default workspace-type (optimal)
 //
 template< typename MatrixAB, typename VectorW, typename MatrixZ >
-inline std::ptrdiff_t hbevd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, VectorW& w, const MatrixZ& z ) {
+inline std::ptrdiff_t hbevd( const char jobz, MatrixAB& ab, VectorW& w,
+ const MatrixZ& z ) {
     return hbevd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, w, z, optimal_workspace() );
+ ab, w, z, optimal_workspace() );
 }
 
 //
@@ -395,10 +394,10 @@
 //
 template< typename MatrixAB, typename VectorW, typename MatrixZ,
         typename Workspace >
-inline std::ptrdiff_t hbevd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, VectorW& w, const MatrixZ& z, Workspace work ) {
+inline std::ptrdiff_t hbevd( const char jobz, const MatrixAB& ab,
+ VectorW& w, const MatrixZ& z, Workspace work ) {
     return hbevd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, w, z, work );
+ ab, w, z, work );
 }
 
 //
@@ -409,10 +408,10 @@
 // * Default workspace-type (optimal)
 //
 template< typename MatrixAB, typename VectorW, typename MatrixZ >
-inline std::ptrdiff_t hbevd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, VectorW& w, const MatrixZ& z ) {
+inline std::ptrdiff_t hbevd( const char jobz, const MatrixAB& ab,
+ VectorW& w, const MatrixZ& z ) {
     return hbevd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, w, z, optimal_workspace() );
+ ab, w, z, optimal_workspace() );
 }
 
 //
@@ -424,10 +423,10 @@
 //
 template< typename MatrixAB, typename VectorW, typename MatrixZ,
         typename Workspace >
-inline std::ptrdiff_t hbevd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const VectorW& w, const MatrixZ& z, Workspace work ) {
+inline std::ptrdiff_t hbevd( const char jobz, MatrixAB& ab,
+ const VectorW& w, const MatrixZ& z, Workspace work ) {
     return hbevd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, w, z, work );
+ ab, w, z, work );
 }
 
 //
@@ -438,10 +437,10 @@
 // * Default workspace-type (optimal)
 //
 template< typename MatrixAB, typename VectorW, typename MatrixZ >
-inline std::ptrdiff_t hbevd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const VectorW& w, const MatrixZ& z ) {
+inline std::ptrdiff_t hbevd( const char jobz, MatrixAB& ab,
+ const VectorW& w, const MatrixZ& z ) {
     return hbevd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, w, z, optimal_workspace() );
+ ab, w, z, optimal_workspace() );
 }
 
 //
@@ -453,11 +452,10 @@
 //
 template< typename MatrixAB, typename VectorW, typename MatrixZ,
         typename Workspace >
-inline std::ptrdiff_t hbevd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const VectorW& w, const MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t hbevd( const char jobz, const MatrixAB& ab,
+ const VectorW& w, const MatrixZ& z, Workspace work ) {
     return hbevd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, w, z, work );
+ ab, w, z, work );
 }
 
 //
@@ -468,10 +466,10 @@
 // * Default workspace-type (optimal)
 //
 template< typename MatrixAB, typename VectorW, typename MatrixZ >
-inline std::ptrdiff_t hbevd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const VectorW& w, const MatrixZ& z ) {
+inline std::ptrdiff_t hbevd( const char jobz, const MatrixAB& ab,
+ const VectorW& w, const MatrixZ& z ) {
     return hbevd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, w, z, optimal_workspace() );
+ ab, w, z, optimal_workspace() );
 }
 
 } // namespace lapack

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbevx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbevx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbevx.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -112,8 +112,7 @@
             typename MatrixZ, typename VectorIFAIL, typename WORK,
             typename RWORK, typename IWORK >
     static std::ptrdiff_t invoke( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
- const real_type vl, const real_type vu,
+ MatrixAB& ab, MatrixQ& q, const real_type vl, const real_type vu,
             const fortran_int_t il, const fortran_int_t iu,
             const real_type abstol, fortran_int_t& m, VectorW& w,
             MatrixZ& z, VectorIFAIL& ifail, detail::workspace3< WORK, RWORK,
@@ -134,22 +133,25 @@
         BOOST_STATIC_ASSERT( (is_mutable< VectorIFAIL >::value) );
         BOOST_ASSERT( bandwidth(ab, uplo()) >= 0 );
         BOOST_ASSERT( jobz == 'N' || jobz == 'V' );
- BOOST_ASSERT( n >= 0 );
         BOOST_ASSERT( range == 'A' || range == 'V' || range == 'I' );
- BOOST_ASSERT( size(w) >= n );
+ BOOST_ASSERT( size(w) >= size_column(ab) );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
- min_size_iwork( n ));
- BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork( n ));
- BOOST_ASSERT( size(work.select(value_type())) >= min_size_work( n ));
+ min_size_iwork( size_column(ab) ));
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork(
+ size_column(ab) ));
+ BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
+ size_column(ab) ));
+ BOOST_ASSERT( size_column(ab) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( size_minor(q) == 1 || stride_minor(q) == 1 );
         BOOST_ASSERT( size_minor(z) == 1 || stride_minor(z) == 1 );
         BOOST_ASSERT( stride_major(ab) >= bandwidth(ab, uplo()) );
- BOOST_ASSERT( stride_major(q) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::hbevx( jobz, range, uplo(), n, bandwidth(ab, uplo()),
- begin_value(ab), stride_major(ab), begin_value(q),
- stride_major(q), vl, vu, il, iu, abstol, m, begin_value(w),
- begin_value(z), stride_major(z),
+ BOOST_ASSERT( stride_major(q) >= std::max< std::ptrdiff_t >(1,
+ size_column(ab)) );
+ return detail::hbevx( jobz, range, uplo(), size_column(ab),
+ bandwidth(ab, uplo()), begin_value(ab), stride_major(ab),
+ begin_value(q), stride_major(q), vl, vu, il, iu, abstol, m,
+ begin_value(w), begin_value(z), stride_major(z),
                 begin_value(work.select(value_type())),
                 begin_value(work.select(real_type())),
                 begin_value(work.select(fortran_int_t())),
@@ -166,17 +168,18 @@
     template< typename MatrixAB, typename MatrixQ, typename VectorW,
             typename MatrixZ, typename VectorIFAIL >
     static std::ptrdiff_t invoke( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
- const real_type vl, const real_type vu,
+ MatrixAB& ab, MatrixQ& q, const real_type vl, const real_type vu,
             const fortran_int_t il, const fortran_int_t iu,
             const real_type abstol, fortran_int_t& m, VectorW& w,
             MatrixZ& z, VectorIFAIL& ifail, minimal_workspace work ) {
         typedef typename result_of::data_side< MatrixAB >::type uplo;
- bindings::detail::array< value_type > tmp_work( min_size_work( n ) );
- bindings::detail::array< real_type > tmp_rwork( min_size_rwork( n ) );
+ bindings::detail::array< value_type > tmp_work( min_size_work(
+ size_column(ab) ) );
+ bindings::detail::array< real_type > tmp_rwork( min_size_rwork(
+ size_column(ab) ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
- min_size_iwork( n ) );
- return invoke( jobz, range, n, ab, q, vl, vu, il, iu, abstol, m, w, z,
+ min_size_iwork( size_column(ab) ) );
+ return invoke( jobz, range, ab, q, vl, vu, il, iu, abstol, m, w, z,
                 ifail, workspace( tmp_work, tmp_rwork, tmp_iwork ) );
     }
 
@@ -190,13 +193,12 @@
     template< typename MatrixAB, typename MatrixQ, typename VectorW,
             typename MatrixZ, typename VectorIFAIL >
     static std::ptrdiff_t invoke( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
- const real_type vl, const real_type vu,
+ MatrixAB& ab, MatrixQ& q, const real_type vl, const real_type vu,
             const fortran_int_t il, const fortran_int_t iu,
             const real_type abstol, fortran_int_t& m, VectorW& w,
             MatrixZ& z, VectorIFAIL& ifail, optimal_workspace work ) {
         typedef typename result_of::data_side< MatrixAB >::type uplo;
- return invoke( jobz, range, n, ab, q, vl, vu, il, iu, abstol, m, w, z,
+ return invoke( jobz, range, ab, q, vl, vu, il, iu, abstol, m, w, z,
                 ifail, minimal_workspace() );
     }
 
@@ -247,16 +249,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
+ MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -271,16 +272,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, VectorIFAIL& ifail ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -296,16 +296,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ const MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -320,16 +319,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixQ& q,
+ const MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, VectorIFAIL& ifail ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -345,16 +343,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -369,16 +366,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixQ& q,
+ MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, VectorIFAIL& ifail ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -394,16 +390,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ const MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -418,16 +413,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixQ& q,
+ const MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, VectorIFAIL& ifail ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -443,16 +437,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -467,16 +460,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
+ MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -492,16 +484,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ const MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -516,16 +507,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixQ& q,
+ const MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -541,16 +531,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -565,16 +554,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixQ& q,
+ MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -590,16 +578,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ const MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -614,16 +601,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixQ& q,
+ const MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -639,16 +625,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -663,16 +648,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
+ MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- const MatrixZ& z, VectorIFAIL& ifail ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -688,16 +672,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ const MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -712,16 +695,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ const MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- const MatrixZ& z, VectorIFAIL& ifail ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -737,16 +719,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixQ& q,
+ MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -761,16 +742,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- const MatrixZ& z, VectorIFAIL& ifail ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -786,16 +766,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixQ& q,
+ const MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -810,16 +789,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ const MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- const MatrixZ& z, VectorIFAIL& ifail ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -835,17 +813,16 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
+ MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail,
         Workspace work ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -860,16 +837,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -885,17 +861,16 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixQ& q,
+ const MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail,
         Workspace work ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -910,16 +885,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ const MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -935,17 +909,16 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixQ& q,
+ MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail,
         Workspace work ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -960,16 +933,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -985,17 +957,16 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixQ& q,
+ const MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail,
         Workspace work ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1010,16 +981,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ const MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1035,16 +1005,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
+ MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1059,16 +1028,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, const VectorIFAIL& ifail ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1084,16 +1052,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixQ& q,
+ const MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1108,16 +1075,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ const MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, const VectorIFAIL& ifail ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1133,16 +1099,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1157,16 +1122,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixQ& q,
+ MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, const VectorIFAIL& ifail ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1182,16 +1146,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ const MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1206,16 +1169,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixQ& q,
+ const MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, const VectorIFAIL& ifail ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1231,17 +1193,16 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1256,16 +1217,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
+ MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1281,17 +1241,16 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ const MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1306,16 +1265,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixQ& q,
+ const MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1331,17 +1289,16 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1356,16 +1313,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixQ& q,
+ MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1381,17 +1337,16 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ const MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1406,16 +1361,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixQ& q,
+ const MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1431,16 +1385,16 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- const MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
+ Workspace work ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1455,16 +1409,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- const MatrixZ& z, const VectorIFAIL& ifail ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1480,16 +1433,16 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixQ& q,
+ const MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- const MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
+ Workspace work ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1504,16 +1457,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ const MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- const MatrixZ& z, const VectorIFAIL& ifail ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1529,16 +1481,16 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixQ& q,
+ MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- const MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
+ Workspace work ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1553,16 +1505,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixQ& q,
+ MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- const MatrixZ& z, const VectorIFAIL& ifail ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1578,16 +1529,16 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ const MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- const MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
+ Workspace work ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1602,16 +1553,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ const MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- const MatrixZ& z, const VectorIFAIL& ifail ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1627,17 +1577,16 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
+ MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1652,16 +1601,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1677,17 +1625,16 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixQ& q,
+ const MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1702,16 +1649,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ const MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1727,17 +1673,16 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixQ& q,
+ MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1752,16 +1697,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1777,17 +1721,16 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixQ& q,
+ const MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1802,16 +1745,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ const MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbgv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbgv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbgv.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -102,9 +102,8 @@
     //
     template< typename MatrixAB, typename MatrixBB, typename VectorW,
             typename MatrixZ, typename WORK, typename RWORK >
- static std::ptrdiff_t invoke( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, VectorW& w, MatrixZ& z,
- detail::workspace2< WORK, RWORK > work ) {
+ static std::ptrdiff_t invoke( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ VectorW& w, MatrixZ& z, detail::workspace2< WORK, RWORK > work ) {
         typedef typename result_of::data_side< MatrixAB >::type uplo;
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< MatrixAB >::type >::type,
@@ -121,18 +120,20 @@
         BOOST_ASSERT( bandwidth(ab, uplo()) >= 0 );
         BOOST_ASSERT( bandwidth(bb, uplo()) >= 0 );
         BOOST_ASSERT( jobz == 'N' || jobz == 'V' );
- BOOST_ASSERT( n >= 0 );
- BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork( n ));
- BOOST_ASSERT( size(work.select(value_type())) >= min_size_work( n ));
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork(
+ size_column(ab) ));
+ BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
+ size_column(ab) ));
+ BOOST_ASSERT( size_column(ab) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( size_minor(bb) == 1 || stride_minor(bb) == 1 );
         BOOST_ASSERT( size_minor(z) == 1 || stride_minor(z) == 1 );
         BOOST_ASSERT( stride_major(ab) >= bandwidth(ab, uplo())+1 );
         BOOST_ASSERT( stride_major(bb) >= bandwidth(bb, uplo())+1 );
- return detail::hbgv( jobz, uplo(), n, bandwidth(ab, uplo()),
- bandwidth(bb, uplo()), begin_value(ab), stride_major(ab),
- begin_value(bb), stride_major(bb), begin_value(w),
- begin_value(z), stride_major(z),
+ return detail::hbgv( jobz, uplo(), size_column(ab), bandwidth(ab,
+ uplo()), bandwidth(bb, uplo()), begin_value(ab),
+ stride_major(ab), begin_value(bb), stride_major(bb),
+ begin_value(w), begin_value(z), stride_major(z),
                 begin_value(work.select(value_type())),
                 begin_value(work.select(real_type())) );
     }
@@ -146,14 +147,14 @@
     //
     template< typename MatrixAB, typename MatrixBB, typename VectorW,
             typename MatrixZ >
- static std::ptrdiff_t invoke( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, VectorW& w, MatrixZ& z,
- minimal_workspace work ) {
+ static std::ptrdiff_t invoke( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ VectorW& w, MatrixZ& z, minimal_workspace work ) {
         typedef typename result_of::data_side< MatrixAB >::type uplo;
- bindings::detail::array< value_type > tmp_work( min_size_work( n ) );
- bindings::detail::array< real_type > tmp_rwork( min_size_rwork( n ) );
- return invoke( jobz, n, ab, bb, w, z, workspace( tmp_work,
- tmp_rwork ) );
+ bindings::detail::array< value_type > tmp_work( min_size_work(
+ size_column(ab) ) );
+ bindings::detail::array< real_type > tmp_rwork( min_size_rwork(
+ size_column(ab) ) );
+ return invoke( jobz, ab, bb, w, z, workspace( tmp_work, tmp_rwork ) );
     }
 
     //
@@ -165,11 +166,10 @@
     //
     template< typename MatrixAB, typename MatrixBB, typename VectorW,
             typename MatrixZ >
- static std::ptrdiff_t invoke( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, VectorW& w, MatrixZ& z,
- optimal_workspace work ) {
+ static std::ptrdiff_t invoke( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ VectorW& w, MatrixZ& z, optimal_workspace work ) {
         typedef typename result_of::data_side< MatrixAB >::type uplo;
- return invoke( jobz, n, ab, bb, w, z, minimal_workspace() );
+ return invoke( jobz, ab, bb, w, z, minimal_workspace() );
     }
 
     //
@@ -209,10 +209,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t hbgv( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, VectorW& w, MatrixZ& z, Workspace work ) {
+inline std::ptrdiff_t hbgv( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ VectorW& w, MatrixZ& z, Workspace work ) {
     return hbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -225,10 +225,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t hbgv( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, VectorW& w, MatrixZ& z ) {
+inline std::ptrdiff_t hbgv( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ VectorW& w, MatrixZ& z ) {
     return hbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -241,11 +241,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t hbgv( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, MatrixBB& bb, VectorW& w, MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t hbgv( const char jobz, const MatrixAB& ab,
+ MatrixBB& bb, VectorW& w, MatrixZ& z, Workspace work ) {
     return hbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -258,10 +257,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t hbgv( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, MatrixBB& bb, VectorW& w, MatrixZ& z ) {
+inline std::ptrdiff_t hbgv( const char jobz, const MatrixAB& ab,
+ MatrixBB& bb, VectorW& w, MatrixZ& z ) {
     return hbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -274,11 +273,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t hbgv( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, VectorW& w, MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t hbgv( const char jobz, MatrixAB& ab,
+ const MatrixBB& bb, VectorW& w, MatrixZ& z, Workspace work ) {
     return hbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -291,10 +289,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t hbgv( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, VectorW& w, MatrixZ& z ) {
+inline std::ptrdiff_t hbgv( const char jobz, MatrixAB& ab,
+ const MatrixBB& bb, VectorW& w, MatrixZ& z ) {
     return hbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -307,11 +305,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t hbgv( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, VectorW& w, MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t hbgv( const char jobz, const MatrixAB& ab,
+ const MatrixBB& bb, VectorW& w, MatrixZ& z, Workspace work ) {
     return hbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -324,10 +321,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t hbgv( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, VectorW& w, MatrixZ& z ) {
+inline std::ptrdiff_t hbgv( const char jobz, const MatrixAB& ab,
+ const MatrixBB& bb, VectorW& w, MatrixZ& z ) {
     return hbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -340,11 +337,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t hbgv( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, const VectorW& w, MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t hbgv( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ const VectorW& w, MatrixZ& z, Workspace work ) {
     return hbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -357,10 +353,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t hbgv( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, const VectorW& w, MatrixZ& z ) {
+inline std::ptrdiff_t hbgv( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ const VectorW& w, MatrixZ& z ) {
     return hbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -373,11 +369,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t hbgv( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, MatrixBB& bb, const VectorW& w, MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t hbgv( const char jobz, const MatrixAB& ab,
+ MatrixBB& bb, const VectorW& w, MatrixZ& z, Workspace work ) {
     return hbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -390,10 +385,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t hbgv( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, MatrixBB& bb, const VectorW& w, MatrixZ& z ) {
+inline std::ptrdiff_t hbgv( const char jobz, const MatrixAB& ab,
+ MatrixBB& bb, const VectorW& w, MatrixZ& z ) {
     return hbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -406,11 +401,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t hbgv( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, const VectorW& w, MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t hbgv( const char jobz, MatrixAB& ab,
+ const MatrixBB& bb, const VectorW& w, MatrixZ& z, Workspace work ) {
     return hbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -423,10 +417,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t hbgv( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, const VectorW& w, MatrixZ& z ) {
+inline std::ptrdiff_t hbgv( const char jobz, MatrixAB& ab,
+ const MatrixBB& bb, const VectorW& w, MatrixZ& z ) {
     return hbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -439,11 +433,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t hbgv( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, const VectorW& w, MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t hbgv( const char jobz, const MatrixAB& ab,
+ const MatrixBB& bb, const VectorW& w, MatrixZ& z, Workspace work ) {
     return hbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -456,11 +449,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t hbgv( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, const VectorW& w,
- MatrixZ& z ) {
+inline std::ptrdiff_t hbgv( const char jobz, const MatrixAB& ab,
+ const MatrixBB& bb, const VectorW& w, MatrixZ& z ) {
     return hbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -473,11 +465,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t hbgv( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, VectorW& w, const MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t hbgv( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ VectorW& w, const MatrixZ& z, Workspace work ) {
     return hbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -490,10 +481,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t hbgv( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, VectorW& w, const MatrixZ& z ) {
+inline std::ptrdiff_t hbgv( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ VectorW& w, const MatrixZ& z ) {
     return hbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -506,11 +497,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t hbgv( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, MatrixBB& bb, VectorW& w, const MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t hbgv( const char jobz, const MatrixAB& ab,
+ MatrixBB& bb, VectorW& w, const MatrixZ& z, Workspace work ) {
     return hbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -523,10 +513,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t hbgv( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, MatrixBB& bb, VectorW& w, const MatrixZ& z ) {
+inline std::ptrdiff_t hbgv( const char jobz, const MatrixAB& ab,
+ MatrixBB& bb, VectorW& w, const MatrixZ& z ) {
     return hbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -539,11 +529,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t hbgv( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, VectorW& w, const MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t hbgv( const char jobz, MatrixAB& ab,
+ const MatrixBB& bb, VectorW& w, const MatrixZ& z, Workspace work ) {
     return hbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -556,10 +545,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t hbgv( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, VectorW& w, const MatrixZ& z ) {
+inline std::ptrdiff_t hbgv( const char jobz, MatrixAB& ab,
+ const MatrixBB& bb, VectorW& w, const MatrixZ& z ) {
     return hbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -572,11 +561,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t hbgv( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, VectorW& w, const MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t hbgv( const char jobz, const MatrixAB& ab,
+ const MatrixBB& bb, VectorW& w, const MatrixZ& z, Workspace work ) {
     return hbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -589,11 +577,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t hbgv( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, VectorW& w,
- const MatrixZ& z ) {
+inline std::ptrdiff_t hbgv( const char jobz, const MatrixAB& ab,
+ const MatrixBB& bb, VectorW& w, const MatrixZ& z ) {
     return hbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -606,11 +593,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t hbgv( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, const VectorW& w, const MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t hbgv( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ const VectorW& w, const MatrixZ& z, Workspace work ) {
     return hbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -623,10 +609,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t hbgv( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, const VectorW& w, const MatrixZ& z ) {
+inline std::ptrdiff_t hbgv( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ const VectorW& w, const MatrixZ& z ) {
     return hbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -639,11 +625,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t hbgv( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, MatrixBB& bb, const VectorW& w, const MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t hbgv( const char jobz, const MatrixAB& ab,
+ MatrixBB& bb, const VectorW& w, const MatrixZ& z, Workspace work ) {
     return hbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -656,11 +641,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t hbgv( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, MatrixBB& bb, const VectorW& w,
- const MatrixZ& z ) {
+inline std::ptrdiff_t hbgv( const char jobz, const MatrixAB& ab,
+ MatrixBB& bb, const VectorW& w, const MatrixZ& z ) {
     return hbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -673,11 +657,11 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t hbgv( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, const VectorW& w, const MatrixZ& z,
+inline std::ptrdiff_t hbgv( const char jobz, MatrixAB& ab,
+ const MatrixBB& bb, const VectorW& w, const MatrixZ& z,
         Workspace work ) {
     return hbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -690,11 +674,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t hbgv( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, const VectorW& w,
- const MatrixZ& z ) {
+inline std::ptrdiff_t hbgv( const char jobz, MatrixAB& ab,
+ const MatrixBB& bb, const VectorW& w, const MatrixZ& z ) {
     return hbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -707,11 +690,11 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t hbgv( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, const VectorW& w,
- const MatrixZ& z, Workspace work ) {
+inline std::ptrdiff_t hbgv( const char jobz, const MatrixAB& ab,
+ const MatrixBB& bb, const VectorW& w, const MatrixZ& z,
+ Workspace work ) {
     return hbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -724,11 +707,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t hbgv( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, const VectorW& w,
- const MatrixZ& z ) {
+inline std::ptrdiff_t hbgv( const char jobz, const MatrixAB& ab,
+ const MatrixBB& bb, const VectorW& w, const MatrixZ& z ) {
     return hbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 } // namespace lapack

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbgvd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbgvd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbgvd.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -109,9 +109,9 @@
     //
     template< typename MatrixAB, typename MatrixBB, typename VectorW,
             typename MatrixZ, typename WORK, typename RWORK, typename IWORK >
- static std::ptrdiff_t invoke( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, VectorW& w, MatrixZ& z,
- detail::workspace3< WORK, RWORK, IWORK > work ) {
+ static std::ptrdiff_t invoke( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ VectorW& w, MatrixZ& z, detail::workspace3< WORK, RWORK,
+ IWORK > work ) {
         typedef typename result_of::data_side< MatrixAB >::type uplo;
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< MatrixAB >::type >::type,
@@ -128,22 +128,22 @@
         BOOST_ASSERT( bandwidth(ab, uplo()) >= 0 );
         BOOST_ASSERT( bandwidth(bb, uplo()) >= 0 );
         BOOST_ASSERT( jobz == 'N' || jobz == 'V' );
- BOOST_ASSERT( n >= 0 );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
- min_size_iwork( jobz, n ));
+ min_size_iwork( jobz, size_column(ab) ));
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork( jobz,
- n ));
+ size_column(ab) ));
         BOOST_ASSERT( size(work.select(value_type())) >= min_size_work( jobz,
- n ));
+ size_column(ab) ));
+ BOOST_ASSERT( size_column(ab) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( size_minor(bb) == 1 || stride_minor(bb) == 1 );
         BOOST_ASSERT( size_minor(z) == 1 || stride_minor(z) == 1 );
         BOOST_ASSERT( stride_major(ab) >= bandwidth(ab, uplo())+1 );
         BOOST_ASSERT( stride_major(bb) >= bandwidth(bb, uplo())+1 );
- return detail::hbgvd( jobz, uplo(), n, bandwidth(ab, uplo()),
- bandwidth(bb, uplo()), begin_value(ab), stride_major(ab),
- begin_value(bb), stride_major(bb), begin_value(w),
- begin_value(z), stride_major(z),
+ return detail::hbgvd( jobz, uplo(), size_column(ab), bandwidth(ab,
+ uplo()), bandwidth(bb, uplo()), begin_value(ab),
+ stride_major(ab), begin_value(bb), stride_major(bb),
+ begin_value(w), begin_value(z), stride_major(z),
                 begin_value(work.select(value_type())),
                 size(work.select(value_type())),
                 begin_value(work.select(real_type())),
@@ -161,17 +161,16 @@
     //
     template< typename MatrixAB, typename MatrixBB, typename VectorW,
             typename MatrixZ >
- static std::ptrdiff_t invoke( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, VectorW& w, MatrixZ& z,
- minimal_workspace work ) {
+ static std::ptrdiff_t invoke( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ VectorW& w, MatrixZ& z, minimal_workspace work ) {
         typedef typename result_of::data_side< MatrixAB >::type uplo;
         bindings::detail::array< value_type > tmp_work( min_size_work( jobz,
- n ) );
+ size_column(ab) ) );
         bindings::detail::array< real_type > tmp_rwork( min_size_rwork( jobz,
- n ) );
+ size_column(ab) ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
- min_size_iwork( jobz, n ) );
- return invoke( jobz, n, ab, bb, w, z, workspace( tmp_work, tmp_rwork,
+ min_size_iwork( jobz, size_column(ab) ) );
+ return invoke( jobz, ab, bb, w, z, workspace( tmp_work, tmp_rwork,
                 tmp_iwork ) );
     }
 
@@ -184,25 +183,24 @@
     //
     template< typename MatrixAB, typename MatrixBB, typename VectorW,
             typename MatrixZ >
- static std::ptrdiff_t invoke( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, VectorW& w, MatrixZ& z,
- optimal_workspace work ) {
+ static std::ptrdiff_t invoke( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ VectorW& w, MatrixZ& z, optimal_workspace work ) {
         typedef typename result_of::data_side< MatrixAB >::type uplo;
         value_type opt_size_work;
         real_type opt_size_rwork;
         fortran_int_t opt_size_iwork;
- detail::hbgvd( jobz, uplo(), n, bandwidth(ab, uplo()),
- bandwidth(bb, uplo()), begin_value(ab), stride_major(ab),
- begin_value(bb), stride_major(bb), begin_value(w),
- begin_value(z), stride_major(z), &opt_size_work, -1,
- &opt_size_rwork, -1, &opt_size_iwork, -1 );
+ detail::hbgvd( jobz, uplo(), size_column(ab), bandwidth(ab,
+ uplo()), bandwidth(bb, uplo()), begin_value(ab),
+ stride_major(ab), begin_value(bb), stride_major(bb),
+ begin_value(w), begin_value(z), stride_major(z),
+ &opt_size_work, -1, &opt_size_rwork, -1, &opt_size_iwork, -1 );
         bindings::detail::array< value_type > tmp_work(
                 traits::detail::to_int( opt_size_work ) );
         bindings::detail::array< real_type > tmp_rwork(
                 traits::detail::to_int( opt_size_rwork ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
                 opt_size_iwork );
- return invoke( jobz, n, ab, bb, w, z, workspace( tmp_work, tmp_rwork,
+ return invoke( jobz, ab, bb, w, z, workspace( tmp_work, tmp_rwork,
                 tmp_iwork ) );
     }
 
@@ -271,10 +269,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t hbgvd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, VectorW& w, MatrixZ& z, Workspace work ) {
+inline std::ptrdiff_t hbgvd( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ VectorW& w, MatrixZ& z, Workspace work ) {
     return hbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -287,10 +285,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t hbgvd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, VectorW& w, MatrixZ& z ) {
+inline std::ptrdiff_t hbgvd( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ VectorW& w, MatrixZ& z ) {
     return hbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -303,11 +301,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t hbgvd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, MatrixBB& bb, VectorW& w, MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t hbgvd( const char jobz, const MatrixAB& ab,
+ MatrixBB& bb, VectorW& w, MatrixZ& z, Workspace work ) {
     return hbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -320,10 +317,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t hbgvd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, MatrixBB& bb, VectorW& w, MatrixZ& z ) {
+inline std::ptrdiff_t hbgvd( const char jobz, const MatrixAB& ab,
+ MatrixBB& bb, VectorW& w, MatrixZ& z ) {
     return hbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -336,11 +333,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t hbgvd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, VectorW& w, MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t hbgvd( const char jobz, MatrixAB& ab,
+ const MatrixBB& bb, VectorW& w, MatrixZ& z, Workspace work ) {
     return hbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -353,10 +349,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t hbgvd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, VectorW& w, MatrixZ& z ) {
+inline std::ptrdiff_t hbgvd( const char jobz, MatrixAB& ab,
+ const MatrixBB& bb, VectorW& w, MatrixZ& z ) {
     return hbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -369,11 +365,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t hbgvd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, VectorW& w, MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t hbgvd( const char jobz, const MatrixAB& ab,
+ const MatrixBB& bb, VectorW& w, MatrixZ& z, Workspace work ) {
     return hbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -386,10 +381,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t hbgvd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, VectorW& w, MatrixZ& z ) {
+inline std::ptrdiff_t hbgvd( const char jobz, const MatrixAB& ab,
+ const MatrixBB& bb, VectorW& w, MatrixZ& z ) {
     return hbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -402,11 +397,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t hbgvd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, const VectorW& w, MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t hbgvd( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ const VectorW& w, MatrixZ& z, Workspace work ) {
     return hbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -419,10 +413,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t hbgvd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, const VectorW& w, MatrixZ& z ) {
+inline std::ptrdiff_t hbgvd( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ const VectorW& w, MatrixZ& z ) {
     return hbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -435,11 +429,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t hbgvd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, MatrixBB& bb, const VectorW& w, MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t hbgvd( const char jobz, const MatrixAB& ab,
+ MatrixBB& bb, const VectorW& w, MatrixZ& z, Workspace work ) {
     return hbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -452,10 +445,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t hbgvd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, MatrixBB& bb, const VectorW& w, MatrixZ& z ) {
+inline std::ptrdiff_t hbgvd( const char jobz, const MatrixAB& ab,
+ MatrixBB& bb, const VectorW& w, MatrixZ& z ) {
     return hbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -468,11 +461,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t hbgvd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, const VectorW& w, MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t hbgvd( const char jobz, MatrixAB& ab,
+ const MatrixBB& bb, const VectorW& w, MatrixZ& z, Workspace work ) {
     return hbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -485,10 +477,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t hbgvd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, const VectorW& w, MatrixZ& z ) {
+inline std::ptrdiff_t hbgvd( const char jobz, MatrixAB& ab,
+ const MatrixBB& bb, const VectorW& w, MatrixZ& z ) {
     return hbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -501,11 +493,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t hbgvd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, const VectorW& w, MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t hbgvd( const char jobz, const MatrixAB& ab,
+ const MatrixBB& bb, const VectorW& w, MatrixZ& z, Workspace work ) {
     return hbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -518,11 +509,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t hbgvd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, const VectorW& w,
- MatrixZ& z ) {
+inline std::ptrdiff_t hbgvd( const char jobz, const MatrixAB& ab,
+ const MatrixBB& bb, const VectorW& w, MatrixZ& z ) {
     return hbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -535,11 +525,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t hbgvd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, VectorW& w, const MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t hbgvd( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ VectorW& w, const MatrixZ& z, Workspace work ) {
     return hbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -552,10 +541,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t hbgvd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, VectorW& w, const MatrixZ& z ) {
+inline std::ptrdiff_t hbgvd( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ VectorW& w, const MatrixZ& z ) {
     return hbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -568,11 +557,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t hbgvd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, MatrixBB& bb, VectorW& w, const MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t hbgvd( const char jobz, const MatrixAB& ab,
+ MatrixBB& bb, VectorW& w, const MatrixZ& z, Workspace work ) {
     return hbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -585,10 +573,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t hbgvd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, MatrixBB& bb, VectorW& w, const MatrixZ& z ) {
+inline std::ptrdiff_t hbgvd( const char jobz, const MatrixAB& ab,
+ MatrixBB& bb, VectorW& w, const MatrixZ& z ) {
     return hbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -601,11 +589,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t hbgvd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, VectorW& w, const MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t hbgvd( const char jobz, MatrixAB& ab,
+ const MatrixBB& bb, VectorW& w, const MatrixZ& z, Workspace work ) {
     return hbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -618,10 +605,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t hbgvd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, VectorW& w, const MatrixZ& z ) {
+inline std::ptrdiff_t hbgvd( const char jobz, MatrixAB& ab,
+ const MatrixBB& bb, VectorW& w, const MatrixZ& z ) {
     return hbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -634,11 +621,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t hbgvd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, VectorW& w, const MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t hbgvd( const char jobz, const MatrixAB& ab,
+ const MatrixBB& bb, VectorW& w, const MatrixZ& z, Workspace work ) {
     return hbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -651,11 +637,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t hbgvd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, VectorW& w,
- const MatrixZ& z ) {
+inline std::ptrdiff_t hbgvd( const char jobz, const MatrixAB& ab,
+ const MatrixBB& bb, VectorW& w, const MatrixZ& z ) {
     return hbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -668,11 +653,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t hbgvd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, const VectorW& w, const MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t hbgvd( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ const VectorW& w, const MatrixZ& z, Workspace work ) {
     return hbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -685,10 +669,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t hbgvd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, const VectorW& w, const MatrixZ& z ) {
+inline std::ptrdiff_t hbgvd( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ const VectorW& w, const MatrixZ& z ) {
     return hbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -701,11 +685,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t hbgvd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, MatrixBB& bb, const VectorW& w, const MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t hbgvd( const char jobz, const MatrixAB& ab,
+ MatrixBB& bb, const VectorW& w, const MatrixZ& z, Workspace work ) {
     return hbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -718,11 +701,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t hbgvd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, MatrixBB& bb, const VectorW& w,
- const MatrixZ& z ) {
+inline std::ptrdiff_t hbgvd( const char jobz, const MatrixAB& ab,
+ MatrixBB& bb, const VectorW& w, const MatrixZ& z ) {
     return hbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -735,11 +717,11 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t hbgvd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, const VectorW& w, const MatrixZ& z,
+inline std::ptrdiff_t hbgvd( const char jobz, MatrixAB& ab,
+ const MatrixBB& bb, const VectorW& w, const MatrixZ& z,
         Workspace work ) {
     return hbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -752,11 +734,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t hbgvd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, const VectorW& w,
- const MatrixZ& z ) {
+inline std::ptrdiff_t hbgvd( const char jobz, MatrixAB& ab,
+ const MatrixBB& bb, const VectorW& w, const MatrixZ& z ) {
     return hbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -769,11 +750,11 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t hbgvd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, const VectorW& w,
- const MatrixZ& z, Workspace work ) {
+inline std::ptrdiff_t hbgvd( const char jobz, const MatrixAB& ab,
+ const MatrixBB& bb, const VectorW& w, const MatrixZ& z,
+ Workspace work ) {
     return hbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -786,11 +767,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t hbgvd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, const VectorW& w,
- const MatrixZ& z ) {
+inline std::ptrdiff_t hbgvd( const char jobz, const MatrixAB& ab,
+ const MatrixBB& bb, const VectorW& w, const MatrixZ& z ) {
     return hbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 } // namespace lapack

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbgvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbgvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbgvx.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -114,12 +114,11 @@
             typename VectorW, typename MatrixZ, typename VectorIFAIL,
             typename WORK, typename RWORK, typename IWORK >
     static std::ptrdiff_t invoke( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
- const real_type vl, const real_type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const real_type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, VectorIFAIL& ifail, detail::workspace3< WORK, RWORK,
- IWORK > work ) {
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q, const real_type vl,
+ const real_type vu, const fortran_int_t il,
+ const fortran_int_t iu, const real_type abstol,
+ fortran_int_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail,
+ detail::workspace3< WORK, RWORK, IWORK > work ) {
         typedef typename result_of::data_side< MatrixAB >::type uplo;
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< MatrixAB >::type >::type,
@@ -142,23 +141,25 @@
         BOOST_ASSERT( bandwidth(ab, uplo()) >= 0 );
         BOOST_ASSERT( bandwidth(bb, uplo()) >= 0 );
         BOOST_ASSERT( jobz == 'N' || jobz == 'V' );
- BOOST_ASSERT( n >= 0 );
         BOOST_ASSERT( range == 'A' || range == 'V' || range == 'I' );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
- min_size_iwork( n ));
- BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork( n ));
- BOOST_ASSERT( size(work.select(value_type())) >= min_size_work( n ));
+ min_size_iwork( size_column(ab) ));
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork(
+ size_column(ab) ));
+ BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
+ size_column(ab) ));
+ BOOST_ASSERT( size_column(ab) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( size_minor(bb) == 1 || stride_minor(bb) == 1 );
         BOOST_ASSERT( size_minor(q) == 1 || stride_minor(q) == 1 );
         BOOST_ASSERT( size_minor(z) == 1 || stride_minor(z) == 1 );
         BOOST_ASSERT( stride_major(ab) >= bandwidth(ab, uplo())+1 );
         BOOST_ASSERT( stride_major(bb) >= bandwidth(bb, uplo())+1 );
- return detail::hbgvx( jobz, range, uplo(), n, bandwidth(ab, uplo()),
- bandwidth(bb, uplo()), begin_value(ab), stride_major(ab),
- begin_value(bb), stride_major(bb), begin_value(q),
- stride_major(q), vl, vu, il, iu, abstol, m, begin_value(w),
- begin_value(z), stride_major(z),
+ return detail::hbgvx( jobz, range, uplo(), size_column(ab),
+ bandwidth(ab, uplo()), bandwidth(bb, uplo()), begin_value(ab),
+ stride_major(ab), begin_value(bb), stride_major(bb),
+ begin_value(q), stride_major(q), vl, vu, il, iu, abstol, m,
+ begin_value(w), begin_value(z), stride_major(z),
                 begin_value(work.select(value_type())),
                 begin_value(work.select(real_type())),
                 begin_value(work.select(fortran_int_t())),
@@ -175,18 +176,20 @@
     template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
             typename VectorW, typename MatrixZ, typename VectorIFAIL >
     static std::ptrdiff_t invoke( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
- const real_type vl, const real_type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const real_type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, VectorIFAIL& ifail, minimal_workspace work ) {
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q, const real_type vl,
+ const real_type vu, const fortran_int_t il,
+ const fortran_int_t iu, const real_type abstol,
+ fortran_int_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail,
+ minimal_workspace work ) {
         typedef typename result_of::data_side< MatrixAB >::type uplo;
- bindings::detail::array< value_type > tmp_work( min_size_work( n ) );
- bindings::detail::array< real_type > tmp_rwork( min_size_rwork( n ) );
+ bindings::detail::array< value_type > tmp_work( min_size_work(
+ size_column(ab) ) );
+ bindings::detail::array< real_type > tmp_rwork( min_size_rwork(
+ size_column(ab) ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
- min_size_iwork( n ) );
- return invoke( jobz, range, n, ab, bb, q, vl, vu, il, iu, abstol, m,
- w, z, ifail, workspace( tmp_work, tmp_rwork, tmp_iwork ) );
+ min_size_iwork( size_column(ab) ) );
+ return invoke( jobz, range, ab, bb, q, vl, vu, il, iu, abstol, m, w,
+ z, ifail, workspace( tmp_work, tmp_rwork, tmp_iwork ) );
     }
 
     //
@@ -199,14 +202,14 @@
     template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
             typename VectorW, typename MatrixZ, typename VectorIFAIL >
     static std::ptrdiff_t invoke( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
- const real_type vl, const real_type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const real_type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, VectorIFAIL& ifail, optimal_workspace work ) {
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q, const real_type vl,
+ const real_type vu, const fortran_int_t il,
+ const fortran_int_t iu, const real_type abstol,
+ fortran_int_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail,
+ optimal_workspace work ) {
         typedef typename result_of::data_side< MatrixAB >::type uplo;
- return invoke( jobz, range, n, ab, bb, q, vl, vu, il, iu, abstol, m,
- w, z, ifail, minimal_workspace() );
+ return invoke( jobz, range, ab, bb, q, vl, vu, il, iu, abstol, m, w,
+ z, ifail, minimal_workspace() );
     }
 
     //
@@ -258,7 +261,7 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
         const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
@@ -267,8 +270,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -284,7 +286,7 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
         const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
@@ -293,7 +295,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -311,8 +313,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -320,8 +322,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -337,8 +338,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -346,7 +347,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -364,8 +365,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -373,8 +374,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -390,8 +390,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -399,7 +399,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -417,8 +417,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -426,8 +426,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -443,8 +442,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -452,7 +451,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -470,8 +469,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -479,8 +478,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -496,8 +494,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -505,7 +503,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -523,8 +521,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -532,8 +530,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -549,8 +546,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -558,7 +555,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -576,8 +573,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -585,8 +582,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -602,8 +598,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -611,7 +607,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -629,8 +625,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -638,8 +634,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -655,8 +650,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -664,7 +659,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -682,7 +677,7 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
         const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
@@ -691,8 +686,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -708,7 +702,7 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
         const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
@@ -717,7 +711,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -735,8 +729,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -744,8 +738,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -761,8 +754,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -770,7 +763,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -788,8 +781,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -797,8 +790,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -814,8 +806,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -823,7 +815,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -841,8 +833,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -850,8 +842,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -867,8 +858,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -876,7 +867,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -894,8 +885,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -903,8 +894,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -920,8 +910,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -929,7 +919,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -947,8 +937,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -956,8 +946,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -973,8 +962,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -982,7 +971,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1000,8 +989,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1009,8 +998,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1026,8 +1014,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1035,7 +1023,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1053,8 +1041,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1062,8 +1050,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1079,8 +1066,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1088,7 +1075,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1106,7 +1093,7 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
         const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
@@ -1115,8 +1102,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1132,7 +1118,7 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
         const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
@@ -1141,7 +1127,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1159,8 +1145,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1168,8 +1154,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1185,8 +1170,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1194,7 +1179,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1212,8 +1197,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1221,8 +1206,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1238,8 +1222,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1247,7 +1231,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1265,8 +1249,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1274,8 +1258,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1291,8 +1274,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1300,7 +1283,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1318,8 +1301,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1327,8 +1310,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1344,8 +1326,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1353,7 +1335,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1371,8 +1353,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1380,8 +1362,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1397,8 +1378,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1406,7 +1387,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1424,8 +1405,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1433,8 +1414,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1450,8 +1430,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1459,7 +1439,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1477,8 +1457,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1486,8 +1466,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1503,8 +1482,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1512,7 +1491,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1530,7 +1509,7 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
         const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
@@ -1540,8 +1519,7 @@
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail,
         Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1557,7 +1535,7 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
         const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
@@ -1566,7 +1544,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1584,8 +1562,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1594,8 +1572,7 @@
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail,
         Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1611,8 +1588,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1620,7 +1597,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1638,8 +1615,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1648,8 +1625,7 @@
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail,
         Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1665,8 +1641,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1674,7 +1650,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1692,8 +1668,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1702,8 +1678,7 @@
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail,
         Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1719,8 +1694,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1728,7 +1703,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1746,8 +1721,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1756,8 +1731,7 @@
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail,
         Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1773,8 +1747,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1782,7 +1756,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1800,8 +1774,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1810,8 +1784,7 @@
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail,
         Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1827,8 +1800,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1836,7 +1809,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1854,8 +1827,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1864,8 +1837,7 @@
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail,
         Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1881,8 +1853,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1890,7 +1862,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1908,8 +1880,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1918,8 +1890,7 @@
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail,
         Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1935,8 +1906,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1944,7 +1915,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1962,7 +1933,7 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
         const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
@@ -1971,8 +1942,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1988,7 +1958,7 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
         const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
@@ -1997,7 +1967,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2015,8 +1985,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2024,8 +1994,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2041,8 +2010,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2050,7 +2019,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2068,8 +2037,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2077,8 +2046,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2094,8 +2062,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2103,7 +2071,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2121,8 +2089,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2130,8 +2098,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2147,8 +2114,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2156,7 +2123,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2174,8 +2141,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2183,8 +2150,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2200,8 +2166,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2209,7 +2175,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2227,8 +2193,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2236,8 +2202,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2253,8 +2218,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2262,7 +2227,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2280,8 +2245,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2289,8 +2254,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2306,8 +2270,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2315,7 +2279,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2333,8 +2297,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2342,8 +2306,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2359,8 +2322,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2368,7 +2331,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2386,7 +2349,7 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
         const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
@@ -2396,8 +2359,7 @@
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2413,7 +2375,7 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
         const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
@@ -2422,7 +2384,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2440,8 +2402,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2450,8 +2412,7 @@
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2467,8 +2428,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2476,7 +2437,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2494,8 +2455,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2504,8 +2465,7 @@
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2521,8 +2481,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2530,7 +2490,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2548,8 +2508,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2558,8 +2518,7 @@
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2575,8 +2534,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2584,7 +2543,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2602,8 +2561,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2612,8 +2571,7 @@
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2629,8 +2587,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2638,7 +2596,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2656,8 +2614,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2666,8 +2624,7 @@
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2683,8 +2640,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2692,7 +2649,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2710,8 +2667,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2720,8 +2677,7 @@
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2737,8 +2693,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2746,7 +2702,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2764,8 +2720,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2774,8 +2730,7 @@
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2791,8 +2746,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2800,7 +2755,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2818,7 +2773,7 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
         const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
@@ -2827,8 +2782,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2844,7 +2798,7 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
         const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
@@ -2853,7 +2807,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2871,8 +2825,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2880,8 +2834,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2897,8 +2850,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2906,7 +2859,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2924,8 +2877,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2933,8 +2886,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2950,8 +2902,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2959,7 +2911,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2977,8 +2929,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2986,8 +2938,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -3003,8 +2954,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3012,7 +2963,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -3030,8 +2981,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3039,8 +2990,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -3056,8 +3006,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3065,7 +3015,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -3083,8 +3033,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3092,8 +3042,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -3109,8 +3058,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3118,7 +3067,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -3136,8 +3085,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3145,8 +3094,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -3162,8 +3110,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3171,7 +3119,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -3189,8 +3137,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3198,8 +3146,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -3215,8 +3162,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3224,7 +3171,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -3242,7 +3189,7 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
         const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
@@ -3252,8 +3199,7 @@
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -3269,7 +3215,7 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
         const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
@@ -3278,7 +3224,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -3296,8 +3242,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3306,8 +3252,7 @@
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -3323,8 +3268,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3332,7 +3277,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -3350,8 +3295,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3360,8 +3305,7 @@
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -3377,8 +3321,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3386,7 +3330,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -3404,8 +3348,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3414,8 +3358,7 @@
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -3431,8 +3374,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3440,7 +3383,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -3458,8 +3401,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3468,8 +3411,7 @@
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -3485,8 +3427,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3494,7 +3436,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -3512,8 +3454,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3522,8 +3464,7 @@
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -3539,8 +3480,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3548,7 +3489,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -3566,8 +3507,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3576,8 +3517,7 @@
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -3593,8 +3533,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3602,7 +3542,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -3620,8 +3560,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3630,8 +3570,7 @@
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -3647,8 +3586,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3656,7 +3595,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hegvd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hegvd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hegvd.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -103,9 +103,8 @@
     template< typename MatrixA, typename MatrixB, typename VectorW,
             typename WORK, typename RWORK, typename IWORK >
     static std::ptrdiff_t invoke( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorW& w, detail::workspace3< WORK, RWORK,
- IWORK > work ) {
+ const char jobz, MatrixA& a, MatrixB& b, VectorW& w,
+ detail::workspace3< WORK, RWORK, IWORK > work ) {
         typedef typename result_of::data_side< MatrixA >::type uplo;
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< MatrixA >::type >::type,
@@ -115,20 +114,23 @@
         BOOST_STATIC_ASSERT( (is_mutable< MatrixB >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorW >::value) );
         BOOST_ASSERT( jobz == 'N' || jobz == 'V' );
- BOOST_ASSERT( n >= 0 );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
- min_size_iwork( jobz, n ));
+ min_size_iwork( jobz, size_column(a) ));
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork( jobz,
- n ));
+ size_column(a) ));
         BOOST_ASSERT( size(work.select(value_type())) >= min_size_work( jobz,
- n ));
+ size_column(a) ));
+ BOOST_ASSERT( size_column(a) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
- BOOST_ASSERT( stride_major(a) >= std::max< std::ptrdiff_t >(1,n) );
- BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::hegvd( itype, jobz, uplo(), n, begin_value(a),
- stride_major(a), begin_value(b), stride_major(b),
- begin_value(w), begin_value(work.select(value_type())),
+ BOOST_ASSERT( stride_major(a) >= std::max< std::ptrdiff_t >(1,
+ size_column(a)) );
+ BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
+ size_column(a)) );
+ return detail::hegvd( itype, jobz, uplo(), size_column(a),
+ begin_value(a), stride_major(a), begin_value(b),
+ stride_major(b), begin_value(w),
+ begin_value(work.select(value_type())),
                 size(work.select(value_type())),
                 begin_value(work.select(real_type())),
                 size(work.select(real_type())),
@@ -145,17 +147,17 @@
     //
     template< typename MatrixA, typename MatrixB, typename VectorW >
     static std::ptrdiff_t invoke( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorW& w, minimal_workspace work ) {
+ const char jobz, MatrixA& a, MatrixB& b, VectorW& w,
+ minimal_workspace work ) {
         typedef typename result_of::data_side< MatrixA >::type uplo;
         bindings::detail::array< value_type > tmp_work( min_size_work( jobz,
- n ) );
+ size_column(a) ) );
         bindings::detail::array< real_type > tmp_rwork( min_size_rwork( jobz,
- n ) );
+ size_column(a) ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
- min_size_iwork( jobz, n ) );
- return invoke( itype, jobz, n, a, b, w, workspace( tmp_work,
- tmp_rwork, tmp_iwork ) );
+ min_size_iwork( jobz, size_column(a) ) );
+ return invoke( itype, jobz, a, b, w, workspace( tmp_work, tmp_rwork,
+ tmp_iwork ) );
     }
 
     //
@@ -167,24 +169,24 @@
     //
     template< typename MatrixA, typename MatrixB, typename VectorW >
     static std::ptrdiff_t invoke( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorW& w, optimal_workspace work ) {
+ const char jobz, MatrixA& a, MatrixB& b, VectorW& w,
+ optimal_workspace work ) {
         typedef typename result_of::data_side< MatrixA >::type uplo;
         value_type opt_size_work;
         real_type opt_size_rwork;
         fortran_int_t opt_size_iwork;
- detail::hegvd( itype, jobz, uplo(), n, begin_value(a),
- stride_major(a), begin_value(b), stride_major(b),
- begin_value(w), &opt_size_work, -1, &opt_size_rwork, -1,
- &opt_size_iwork, -1 );
+ detail::hegvd( itype, jobz, uplo(), size_column(a),
+ begin_value(a), stride_major(a), begin_value(b),
+ stride_major(b), begin_value(w), &opt_size_work, -1,
+ &opt_size_rwork, -1, &opt_size_iwork, -1 );
         bindings::detail::array< value_type > tmp_work(
                 traits::detail::to_int( opt_size_work ) );
         bindings::detail::array< real_type > tmp_rwork(
                 traits::detail::to_int( opt_size_rwork ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
                 opt_size_iwork );
- return invoke( itype, jobz, n, a, b, w, workspace( tmp_work,
- tmp_rwork, tmp_iwork ) );
+ return invoke( itype, jobz, a, b, w, workspace( tmp_work, tmp_rwork,
+ tmp_iwork ) );
     }
 
     //
@@ -252,10 +254,9 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename Workspace >
 inline std::ptrdiff_t hegvd( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, MatrixA& a, MatrixB& b,
- VectorW& w, Workspace work ) {
+ const char jobz, MatrixA& a, MatrixB& b, VectorW& w, Workspace work ) {
     return hegvd_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, n, a, b, w, work );
+ jobz, a, b, w, work );
 }
 
 //
@@ -267,10 +268,9 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorW >
 inline std::ptrdiff_t hegvd( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, MatrixA& a, MatrixB& b,
- VectorW& w ) {
+ const char jobz, MatrixA& a, MatrixB& b, VectorW& w ) {
     return hegvd_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, n, a, b, w, optimal_workspace() );
+ jobz, a, b, w, optimal_workspace() );
 }
 
 //
@@ -283,10 +283,10 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename Workspace >
 inline std::ptrdiff_t hegvd( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, const MatrixA& a,
- MatrixB& b, VectorW& w, Workspace work ) {
+ const char jobz, const MatrixA& a, MatrixB& b, VectorW& w,
+ Workspace work ) {
     return hegvd_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, n, a, b, w, work );
+ jobz, a, b, w, work );
 }
 
 //
@@ -298,10 +298,9 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorW >
 inline std::ptrdiff_t hegvd( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, const MatrixA& a,
- MatrixB& b, VectorW& w ) {
+ const char jobz, const MatrixA& a, MatrixB& b, VectorW& w ) {
     return hegvd_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, n, a, b, w, optimal_workspace() );
+ jobz, a, b, w, optimal_workspace() );
 }
 
 //
@@ -314,10 +313,10 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename Workspace >
 inline std::ptrdiff_t hegvd( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorW& w, Workspace work ) {
+ const char jobz, MatrixA& a, const MatrixB& b, VectorW& w,
+ Workspace work ) {
     return hegvd_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, n, a, b, w, work );
+ jobz, a, b, w, work );
 }
 
 //
@@ -329,10 +328,9 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorW >
 inline std::ptrdiff_t hegvd( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorW& w ) {
+ const char jobz, MatrixA& a, const MatrixB& b, VectorW& w ) {
     return hegvd_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, n, a, b, w, optimal_workspace() );
+ jobz, a, b, w, optimal_workspace() );
 }
 
 //
@@ -345,10 +343,10 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename Workspace >
 inline std::ptrdiff_t hegvd( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, const MatrixA& a,
- const MatrixB& b, VectorW& w, Workspace work ) {
+ const char jobz, const MatrixA& a, const MatrixB& b, VectorW& w,
+ Workspace work ) {
     return hegvd_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, n, a, b, w, work );
+ jobz, a, b, w, work );
 }
 
 //
@@ -360,10 +358,9 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorW >
 inline std::ptrdiff_t hegvd( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, const MatrixA& a,
- const MatrixB& b, VectorW& w ) {
+ const char jobz, const MatrixA& a, const MatrixB& b, VectorW& w ) {
     return hegvd_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, n, a, b, w, optimal_workspace() );
+ jobz, a, b, w, optimal_workspace() );
 }
 
 //
@@ -376,10 +373,10 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename Workspace >
 inline std::ptrdiff_t hegvd( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, MatrixA& a, MatrixB& b,
- const VectorW& w, Workspace work ) {
+ const char jobz, MatrixA& a, MatrixB& b, const VectorW& w,
+ Workspace work ) {
     return hegvd_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, n, a, b, w, work );
+ jobz, a, b, w, work );
 }
 
 //
@@ -391,10 +388,9 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorW >
 inline std::ptrdiff_t hegvd( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, MatrixA& a, MatrixB& b,
- const VectorW& w ) {
+ const char jobz, MatrixA& a, MatrixB& b, const VectorW& w ) {
     return hegvd_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, n, a, b, w, optimal_workspace() );
+ jobz, a, b, w, optimal_workspace() );
 }
 
 //
@@ -407,10 +403,10 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename Workspace >
 inline std::ptrdiff_t hegvd( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, const MatrixA& a,
- MatrixB& b, const VectorW& w, Workspace work ) {
+ const char jobz, const MatrixA& a, MatrixB& b, const VectorW& w,
+ Workspace work ) {
     return hegvd_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, n, a, b, w, work );
+ jobz, a, b, w, work );
 }
 
 //
@@ -422,10 +418,9 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorW >
 inline std::ptrdiff_t hegvd( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, const MatrixA& a,
- MatrixB& b, const VectorW& w ) {
+ const char jobz, const MatrixA& a, MatrixB& b, const VectorW& w ) {
     return hegvd_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, n, a, b, w, optimal_workspace() );
+ jobz, a, b, w, optimal_workspace() );
 }
 
 //
@@ -438,10 +433,10 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename Workspace >
 inline std::ptrdiff_t hegvd( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorW& w, Workspace work ) {
+ const char jobz, MatrixA& a, const MatrixB& b, const VectorW& w,
+ Workspace work ) {
     return hegvd_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, n, a, b, w, work );
+ jobz, a, b, w, work );
 }
 
 //
@@ -453,10 +448,9 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorW >
 inline std::ptrdiff_t hegvd( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorW& w ) {
+ const char jobz, MatrixA& a, const MatrixB& b, const VectorW& w ) {
     return hegvd_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, n, a, b, w, optimal_workspace() );
+ jobz, a, b, w, optimal_workspace() );
 }
 
 //
@@ -469,10 +463,10 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename Workspace >
 inline std::ptrdiff_t hegvd( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, const MatrixA& a,
- const MatrixB& b, const VectorW& w, Workspace work ) {
+ const char jobz, const MatrixA& a, const MatrixB& b, const VectorW& w,
+ Workspace work ) {
     return hegvd_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, n, a, b, w, work );
+ jobz, a, b, w, work );
 }
 
 //
@@ -484,10 +478,10 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorW >
 inline std::ptrdiff_t hegvd( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, const MatrixA& a,
- const MatrixB& b, const VectorW& w ) {
+ const char jobz, const MatrixA& a, const MatrixB& b,
+ const VectorW& w ) {
     return hegvd_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, n, a, b, w, optimal_workspace() );
+ jobz, a, b, w, optimal_workspace() );
 }
 
 } // namespace lapack

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hegvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hegvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hegvx.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -112,8 +112,8 @@
             typename MatrixZ, typename VectorIFAIL, typename WORK,
             typename RWORK, typename IWORK >
     static std::ptrdiff_t invoke( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixA& a, MatrixB& b, const real_type vl, const real_type vu,
+ const char jobz, const char range, MatrixA& a, MatrixB& b,
+ const real_type vl, const real_type vu,
             const fortran_int_t il, const fortran_int_t iu,
             const real_type abstol, fortran_int_t& m, VectorW& w,
             MatrixZ& z, VectorIFAIL& ifail, detail::workspace3< WORK, RWORK,
@@ -133,22 +133,27 @@
         BOOST_STATIC_ASSERT( (is_mutable< MatrixZ >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorIFAIL >::value) );
         BOOST_ASSERT( jobz == 'N' || jobz == 'V' );
- BOOST_ASSERT( n >= 0 );
         BOOST_ASSERT( range == 'A' || range == 'V' || range == 'I' );
- BOOST_ASSERT( size(w) >= n );
+ BOOST_ASSERT( size(w) >= size_column(a) );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
- min_size_iwork( n ));
- BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork( n ));
- BOOST_ASSERT( size(work.select(value_type())) >= min_size_work( n ));
+ min_size_iwork( size_column(a) ));
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork(
+ size_column(a) ));
+ BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
+ size_column(a) ));
+ BOOST_ASSERT( size_column(a) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_minor(z) == 1 || stride_minor(z) == 1 );
- BOOST_ASSERT( stride_major(a) >= std::max< std::ptrdiff_t >(1,n) );
- BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::hegvx( itype, jobz, range, uplo(), n, begin_value(a),
- stride_major(a), begin_value(b), stride_major(b), vl, vu, il,
- iu, abstol, m, begin_value(w), begin_value(z),
- stride_major(z), begin_value(work.select(value_type())),
+ BOOST_ASSERT( stride_major(a) >= std::max< std::ptrdiff_t >(1,
+ size_column(a)) );
+ BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
+ size_column(a)) );
+ return detail::hegvx( itype, jobz, range, uplo(), size_column(a),
+ begin_value(a), stride_major(a), begin_value(b),
+ stride_major(b), vl, vu, il, iu, abstol, m, begin_value(w),
+ begin_value(z), stride_major(z),
+ begin_value(work.select(value_type())),
                 size(work.select(value_type())),
                 begin_value(work.select(real_type())),
                 begin_value(work.select(fortran_int_t())),
@@ -165,18 +170,20 @@
     template< typename MatrixA, typename MatrixB, typename VectorW,
             typename MatrixZ, typename VectorIFAIL >
     static std::ptrdiff_t invoke( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixA& a, MatrixB& b, const real_type vl, const real_type vu,
+ const char jobz, const char range, MatrixA& a, MatrixB& b,
+ const real_type vl, const real_type vu,
             const fortran_int_t il, const fortran_int_t iu,
             const real_type abstol, fortran_int_t& m, VectorW& w,
             MatrixZ& z, VectorIFAIL& ifail, minimal_workspace work ) {
         typedef typename result_of::data_side< MatrixA >::type uplo;
- bindings::detail::array< value_type > tmp_work( min_size_work( n ) );
- bindings::detail::array< real_type > tmp_rwork( min_size_rwork( n ) );
+ bindings::detail::array< value_type > tmp_work( min_size_work(
+ size_column(a) ) );
+ bindings::detail::array< real_type > tmp_rwork( min_size_rwork(
+ size_column(a) ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
- min_size_iwork( n ) );
- return invoke( itype, jobz, range, n, a, b, vl, vu, il, iu, abstol, m,
- w, z, ifail, workspace( tmp_work, tmp_rwork, tmp_iwork ) );
+ min_size_iwork( size_column(a) ) );
+ return invoke( itype, jobz, range, a, b, vl, vu, il, iu, abstol, m, w,
+ z, ifail, workspace( tmp_work, tmp_rwork, tmp_iwork ) );
     }
 
     //
@@ -189,25 +196,27 @@
     template< typename MatrixA, typename MatrixB, typename VectorW,
             typename MatrixZ, typename VectorIFAIL >
     static std::ptrdiff_t invoke( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixA& a, MatrixB& b, const real_type vl, const real_type vu,
+ const char jobz, const char range, MatrixA& a, MatrixB& b,
+ const real_type vl, const real_type vu,
             const fortran_int_t il, const fortran_int_t iu,
             const real_type abstol, fortran_int_t& m, VectorW& w,
             MatrixZ& z, VectorIFAIL& ifail, optimal_workspace work ) {
         typedef typename result_of::data_side< MatrixA >::type uplo;
         value_type opt_size_work;
- bindings::detail::array< real_type > tmp_rwork( min_size_rwork( n ) );
+ bindings::detail::array< real_type > tmp_rwork( min_size_rwork(
+ size_column(a) ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
- min_size_iwork( n ) );
- detail::hegvx( itype, jobz, range, uplo(), n, begin_value(a),
- stride_major(a), begin_value(b), stride_major(b), vl, vu, il,
- iu, abstol, m, begin_value(w), begin_value(z),
- stride_major(z), &opt_size_work, -1, begin_value(tmp_rwork),
- begin_value(tmp_iwork), begin_value(ifail) );
+ min_size_iwork( size_column(a) ) );
+ detail::hegvx( itype, jobz, range, uplo(), size_column(a),
+ begin_value(a), stride_major(a), begin_value(b),
+ stride_major(b), vl, vu, il, iu, abstol, m, begin_value(w),
+ begin_value(z), stride_major(z), &opt_size_work, -1,
+ begin_value(tmp_rwork), begin_value(tmp_iwork),
+ begin_value(ifail) );
         bindings::detail::array< value_type > tmp_work(
                 traits::detail::to_int( opt_size_work ) );
- return invoke( itype, jobz, range, n, a, b, vl, vu, il, iu, abstol, m,
- w, z, ifail, workspace( tmp_work, tmp_rwork, tmp_iwork ) );
+ return invoke( itype, jobz, range, a, b, vl, vu, il, iu, abstol, m, w,
+ z, ifail, workspace( tmp_work, tmp_rwork, tmp_iwork ) );
     }
 
     //
@@ -257,17 +266,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixA& a, MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, MatrixA& a, MatrixB& b,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
- VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
+ MatrixA >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -282,16 +290,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixA& a, MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, MatrixA& a, MatrixB& b,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
- VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
+ MatrixA >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, VectorIFAIL& ifail ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -307,17 +315,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, const MatrixA& a, MatrixB& b,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
- VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -332,16 +339,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, const MatrixA& a, MatrixB& b,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
- VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
+ MatrixA >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, VectorIFAIL& ifail ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -357,17 +364,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixA& a, const MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, MatrixA& a, const MatrixB& b,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
- VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -382,16 +388,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixA& a, const MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, MatrixA& a, const MatrixB& b,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
- VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
+ MatrixA >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, VectorIFAIL& ifail ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -407,17 +413,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, const MatrixA& a, const MatrixB& b,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
- VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -432,16 +437,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, const MatrixA& a, const MatrixB& b,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
- VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
+ MatrixA >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, VectorIFAIL& ifail ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -457,17 +462,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixA& a, MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, MatrixA& a, MatrixB& b,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -482,16 +486,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixA& a, MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, MatrixA& a, MatrixB& b,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
+ MatrixA >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -507,17 +511,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, const MatrixA& a, MatrixB& b,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
+ MatrixA >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -532,16 +535,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, const MatrixA& a, MatrixB& b,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -557,17 +560,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixA& a, const MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, MatrixA& a, const MatrixB& b,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
+ MatrixA >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -582,16 +584,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixA& a, const MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, MatrixA& a, const MatrixB& b,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -607,17 +609,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, const MatrixA& a, const MatrixB& b,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
+ MatrixA >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -632,16 +633,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, const MatrixA& a, const MatrixB& b,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -657,17 +658,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixA& a, MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, MatrixA& a, MatrixB& b,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
- VectorW& w, const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
+ MatrixA >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -682,16 +682,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixA& a, MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, MatrixA& a, MatrixB& b,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
- VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ const MatrixZ& z, VectorIFAIL& ifail ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -707,17 +707,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, const MatrixA& a, MatrixB& b,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
- VectorW& w, const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
+ MatrixA >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -732,16 +731,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, const MatrixA& a, MatrixB& b,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
- VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
+ MatrixA >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ const MatrixZ& z, VectorIFAIL& ifail ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -757,17 +756,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixA& a, const MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, MatrixA& a, const MatrixB& b,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
- VectorW& w, const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -782,16 +780,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixA& a, const MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, MatrixA& a, const MatrixB& b,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
- VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
+ MatrixA >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ const MatrixZ& z, VectorIFAIL& ifail ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -807,17 +805,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, const MatrixA& a, const MatrixB& b,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
- VectorW& w, const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -832,16 +829,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, const MatrixA& a, const MatrixB& b,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
- VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
+ MatrixA >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ const MatrixZ& z, VectorIFAIL& ifail ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -857,18 +854,17 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixA& a, MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, MatrixA& a, MatrixB& b,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail,
         Workspace work ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -883,16 +879,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixA& a, MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, MatrixA& a, MatrixB& b,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
+ MatrixA >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -908,18 +904,17 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, const MatrixA& a, MatrixB& b,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail,
         Workspace work ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -934,16 +929,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, const MatrixA& a, MatrixB& b,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
+ MatrixA >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -959,18 +954,17 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixA& a, const MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, MatrixA& a, const MatrixB& b,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail,
         Workspace work ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -985,16 +979,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixA& a, const MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, MatrixA& a, const MatrixB& b,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
+ MatrixA >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1010,18 +1004,17 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, const MatrixA& a, const MatrixB& b,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail,
         Workspace work ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1036,16 +1029,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, const MatrixA& a, const MatrixB& b,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
+ MatrixA >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1061,17 +1054,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixA& a, MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, MatrixA& a, MatrixB& b,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
- VectorW& w, MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1086,16 +1078,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixA& a, MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, MatrixA& a, MatrixB& b,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
- VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
+ MatrixA >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, const VectorIFAIL& ifail ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1111,17 +1103,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, const MatrixA& a, MatrixB& b,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
- VectorW& w, MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1136,16 +1127,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, const MatrixA& a, MatrixB& b,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
- VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
+ MatrixA >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, const VectorIFAIL& ifail ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1161,17 +1152,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixA& a, const MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, MatrixA& a, const MatrixB& b,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
- VectorW& w, MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
+ MatrixA >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1186,16 +1176,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixA& a, const MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, MatrixA& a, const MatrixB& b,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
- VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, const VectorIFAIL& ifail ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1211,17 +1201,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, const MatrixA& a, const MatrixB& b,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
- VectorW& w, MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
+ MatrixA >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1236,16 +1225,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, const MatrixA& a, const MatrixB& b,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
- VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, const VectorIFAIL& ifail ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1261,18 +1250,17 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixA& a, MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, MatrixA& a, MatrixB& b,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
+ MatrixA >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1287,16 +1275,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixA& a, MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, MatrixA& a, MatrixB& b,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1312,18 +1300,17 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, const MatrixA& a, MatrixB& b,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
+ MatrixA >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1338,16 +1325,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, const MatrixA& a, MatrixB& b,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1363,18 +1350,17 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixA& a, const MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, MatrixA& a, const MatrixB& b,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
+ MatrixA >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1389,16 +1375,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixA& a, const MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, MatrixA& a, const MatrixB& b,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1414,18 +1400,17 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, const MatrixA& a, const MatrixB& b,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
+ MatrixA >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1440,16 +1425,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, const MatrixA& a, const MatrixB& b,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1465,18 +1450,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixA& a, MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, MatrixA& a, MatrixB& b,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
- VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
- Workspace work ) {
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ const MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1491,16 +1474,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixA& a, MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, MatrixA& a, MatrixB& b,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
- VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
+ MatrixA >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1516,18 +1499,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, const MatrixA& a, MatrixB& b,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
- VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
- Workspace work ) {
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ const MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1542,16 +1523,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, const MatrixA& a, MatrixB& b,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
- VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
+ MatrixA >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1567,18 +1548,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixA& a, const MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, MatrixA& a, const MatrixB& b,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
- VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
- Workspace work ) {
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ const MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1593,16 +1572,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixA& a, const MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, MatrixA& a, const MatrixB& b,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
- VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1618,18 +1597,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, const MatrixA& a, const MatrixB& b,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
- VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
- Workspace work ) {
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ const MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1644,16 +1621,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, const MatrixA& a, const MatrixB& b,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
- VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
+ MatrixA >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1669,18 +1646,17 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixA& a, MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, MatrixA& a, MatrixB& b,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1695,16 +1671,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixA& a, MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, MatrixA& a, MatrixB& b,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
+ MatrixA >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1720,18 +1696,17 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, const MatrixA& a, MatrixB& b,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1746,16 +1721,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixA& a, MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, const MatrixA& a, MatrixB& b,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
+ MatrixA >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1771,18 +1746,17 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixA& a, const MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, MatrixA& a, const MatrixB& b,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1797,16 +1771,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixA& a, const MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, MatrixA& a, const MatrixB& b,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
+ MatrixA >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1822,18 +1796,17 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, const MatrixA& a, const MatrixB& b,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1848,16 +1821,16 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hegvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixA& a, const MatrixB& b, const typename remove_imaginary<
- typename value< MatrixA >::type >::type vl,
+ const char jobz, const char range, const MatrixA& a, const MatrixB& b,
+ const typename remove_imaginary< typename value<
+ MatrixA >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixA >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixA >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixA >::type >::type abstol, fortran_int_t& m,
+ MatrixA >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hegvx_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, range, n, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, a, b, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hesvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hesvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hesvx.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -136,13 +136,13 @@
         BOOST_STATIC_ASSERT( (is_mutable< VectorFERR >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorBERR >::value) );
         BOOST_ASSERT( fact == 'F' || fact == 'N' );
- BOOST_ASSERT( size(berr) >= size_column(x) );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork(
                 size_column(a) ));
         BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
                 size_column(a) ));
         BOOST_ASSERT( size_column(a) >= 0 );
- BOOST_ASSERT( size_column(x) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(af) == 1 || stride_minor(af) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
@@ -155,7 +155,7 @@
                 size_column(a)) );
         BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,
                 size_column(a)) );
- return detail::hesvx( fact, uplo(), size_column(a), size_column(x),
+ return detail::hesvx( fact, uplo(), size_column(a), size_column(b),
                 begin_value(a), stride_major(a), begin_value(af),
                 stride_major(af), begin_value(ipiv), begin_value(b),
                 stride_major(b), begin_value(x), stride_major(x), rcond,
@@ -206,7 +206,7 @@
         value_type opt_size_work;
         bindings::detail::array< real_type > tmp_rwork( min_size_rwork(
                 size_column(a) ) );
- detail::hesvx( fact, uplo(), size_column(a), size_column(x),
+ detail::hesvx( fact, uplo(), size_column(a), size_column(b),
                 begin_value(a), stride_major(a), begin_value(af),
                 stride_major(af), begin_value(ipiv), begin_value(b),
                 stride_major(b), begin_value(x), stride_major(x), rcond,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpevx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpevx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpevx.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -107,11 +107,11 @@
             typename VectorIFAIL, typename WORK, typename RWORK,
             typename IWORK >
     static std::ptrdiff_t invoke( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap, const real_type vl,
- const real_type vu, const fortran_int_t il,
- const fortran_int_t iu, const real_type abstol,
- fortran_int_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail,
- detail::workspace3< WORK, RWORK, IWORK > work ) {
+ MatrixAP& ap, const real_type vl, const real_type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const real_type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, VectorIFAIL& ifail, detail::workspace3< WORK, RWORK,
+ IWORK > work ) {
         typedef typename result_of::data_side< MatrixAP >::type uplo;
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< MatrixAP >::type >::type,
@@ -122,16 +122,19 @@
         BOOST_STATIC_ASSERT( (is_mutable< MatrixZ >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorIFAIL >::value) );
         BOOST_ASSERT( jobz == 'N' || jobz == 'V' );
- BOOST_ASSERT( n >= 0 );
         BOOST_ASSERT( range == 'A' || range == 'V' || range == 'I' );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
- min_size_iwork( n ));
- BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork( n ));
- BOOST_ASSERT( size(work.select(value_type())) >= min_size_work( n ));
+ min_size_iwork( size_column(ap) ));
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork(
+ size_column(ap) ));
+ BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
+ size_column(ap) ));
+ BOOST_ASSERT( size_column(ap) >= 0 );
         BOOST_ASSERT( size_minor(z) == 1 || stride_minor(z) == 1 );
- return detail::hpevx( jobz, range, uplo(), n, begin_value(ap), vl, vu,
- il, iu, abstol, m, begin_value(w), begin_value(z),
- stride_major(z), begin_value(work.select(value_type())),
+ return detail::hpevx( jobz, range, uplo(), size_column(ap),
+ begin_value(ap), vl, vu, il, iu, abstol, m, begin_value(w),
+ begin_value(z), stride_major(z),
+ begin_value(work.select(value_type())),
                 begin_value(work.select(real_type())),
                 begin_value(work.select(fortran_int_t())),
                 begin_value(ifail) );
@@ -147,17 +150,18 @@
     template< typename MatrixAP, typename VectorW, typename MatrixZ,
             typename VectorIFAIL >
     static std::ptrdiff_t invoke( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap, const real_type vl,
- const real_type vu, const fortran_int_t il,
- const fortran_int_t iu, const real_type abstol,
- fortran_int_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail,
- minimal_workspace work ) {
+ MatrixAP& ap, const real_type vl, const real_type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const real_type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, VectorIFAIL& ifail, minimal_workspace work ) {
         typedef typename result_of::data_side< MatrixAP >::type uplo;
- bindings::detail::array< value_type > tmp_work( min_size_work( n ) );
- bindings::detail::array< real_type > tmp_rwork( min_size_rwork( n ) );
+ bindings::detail::array< value_type > tmp_work( min_size_work(
+ size_column(ap) ) );
+ bindings::detail::array< real_type > tmp_rwork( min_size_rwork(
+ size_column(ap) ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
- min_size_iwork( n ) );
- return invoke( jobz, range, n, ap, vl, vu, il, iu, abstol, m, w, z,
+ min_size_iwork( size_column(ap) ) );
+ return invoke( jobz, range, ap, vl, vu, il, iu, abstol, m, w, z,
                 ifail, workspace( tmp_work, tmp_rwork, tmp_iwork ) );
     }
 
@@ -171,13 +175,12 @@
     template< typename MatrixAP, typename VectorW, typename MatrixZ,
             typename VectorIFAIL >
     static std::ptrdiff_t invoke( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap, const real_type vl,
- const real_type vu, const fortran_int_t il,
- const fortran_int_t iu, const real_type abstol,
- fortran_int_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail,
- optimal_workspace work ) {
+ MatrixAP& ap, const real_type vl, const real_type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const real_type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, VectorIFAIL& ifail, optimal_workspace work ) {
         typedef typename result_of::data_side< MatrixAP >::type uplo;
- return invoke( jobz, range, n, ap, vl, vu, il, iu, abstol, m, w, z,
+ return invoke( jobz, range, ap, vl, vu, il, iu, abstol, m, w, z,
                 ifail, minimal_workspace() );
     }
 
@@ -227,8 +230,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -236,7 +238,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hpevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -250,8 +252,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL >
 inline std::ptrdiff_t hpevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -259,7 +260,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail ) {
     return hpevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -274,8 +275,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ const MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -283,7 +283,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hpevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -297,8 +297,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL >
 inline std::ptrdiff_t hpevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ const MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -306,7 +305,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail ) {
     return hpevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -321,8 +320,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -330,7 +328,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hpevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -344,8 +342,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL >
 inline std::ptrdiff_t hpevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -353,7 +350,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return hpevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -368,8 +365,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ const MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -377,7 +373,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hpevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -391,8 +387,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL >
 inline std::ptrdiff_t hpevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ const MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -400,7 +395,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return hpevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -415,8 +410,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -424,7 +418,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hpevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -438,8 +432,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL >
 inline std::ptrdiff_t hpevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -447,7 +440,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail ) {
     return hpevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -462,8 +455,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ const MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -471,7 +463,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hpevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -485,8 +477,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL >
 inline std::ptrdiff_t hpevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ const MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -494,7 +485,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail ) {
     return hpevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -509,8 +500,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -519,7 +509,7 @@
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail,
         Workspace work ) {
     return hpevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -533,8 +523,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL >
 inline std::ptrdiff_t hpevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -542,7 +531,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return hpevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -557,8 +546,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ const MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -567,7 +555,7 @@
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail,
         Workspace work ) {
     return hpevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -581,8 +569,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL >
 inline std::ptrdiff_t hpevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ const MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -590,7 +577,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return hpevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -605,8 +592,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -614,7 +600,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hpevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -628,8 +614,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL >
 inline std::ptrdiff_t hpevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -637,7 +622,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail ) {
     return hpevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -652,8 +637,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ const MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -661,7 +645,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hpevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -675,8 +659,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL >
 inline std::ptrdiff_t hpevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ const MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -684,7 +667,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail ) {
     return hpevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -699,8 +682,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -709,7 +691,7 @@
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hpevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -723,8 +705,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL >
 inline std::ptrdiff_t hpevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -732,7 +713,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return hpevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -747,8 +728,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ const MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -757,7 +737,7 @@
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hpevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -771,8 +751,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL >
 inline std::ptrdiff_t hpevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ const MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -780,7 +759,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return hpevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -795,8 +774,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -804,7 +782,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hpevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -818,8 +796,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL >
 inline std::ptrdiff_t hpevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -827,7 +804,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hpevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -842,8 +819,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ const MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -851,7 +827,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hpevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -865,8 +841,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL >
 inline std::ptrdiff_t hpevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ const MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -874,7 +849,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hpevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -889,8 +864,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -899,7 +873,7 @@
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hpevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -913,8 +887,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL >
 inline std::ptrdiff_t hpevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -922,7 +895,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hpevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -937,8 +910,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ const MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -947,7 +919,7 @@
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hpevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -961,8 +933,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL >
 inline std::ptrdiff_t hpevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ const MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -970,7 +941,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hpevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpgvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpgvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpgvx.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -109,12 +109,12 @@
             typename MatrixZ, typename VectorIFAIL, typename WORK,
             typename RWORK, typename IWORK >
     static std::ptrdiff_t invoke( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixAP& ap, MatrixBP& bp, const real_type vl,
- const real_type vu, const fortran_int_t il,
- const fortran_int_t iu, const real_type abstol,
- fortran_int_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail,
- detail::workspace3< WORK, RWORK, IWORK > work ) {
+ const char jobz, const char range, MatrixAP& ap, MatrixBP& bp,
+ const real_type vl, const real_type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const real_type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, VectorIFAIL& ifail, detail::workspace3< WORK, RWORK,
+ IWORK > work ) {
         typedef typename result_of::data_side< MatrixAP >::type uplo;
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< MatrixAP >::type >::type,
@@ -130,17 +130,19 @@
         BOOST_STATIC_ASSERT( (is_mutable< MatrixZ >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorIFAIL >::value) );
         BOOST_ASSERT( jobz == 'N' || jobz == 'V' );
- BOOST_ASSERT( n >= 0 );
         BOOST_ASSERT( range == 'A' || range == 'V' || range == 'I' );
- BOOST_ASSERT( size(w) >= n );
+ BOOST_ASSERT( size(w) >= size_column(ap) );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
- min_size_iwork( n ));
- BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork( n ));
- BOOST_ASSERT( size(work.select(value_type())) >= min_size_work( n ));
+ min_size_iwork( size_column(ap) ));
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork(
+ size_column(ap) ));
+ BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
+ size_column(ap) ));
+ BOOST_ASSERT( size_column(ap) >= 0 );
         BOOST_ASSERT( size_minor(z) == 1 || stride_minor(z) == 1 );
- return detail::hpgvx( itype, jobz, range, uplo(), n, begin_value(ap),
- begin_value(bp), vl, vu, il, iu, abstol, m, begin_value(w),
- begin_value(z), stride_major(z),
+ return detail::hpgvx( itype, jobz, range, uplo(), size_column(ap),
+ begin_value(ap), begin_value(bp), vl, vu, il, iu, abstol, m,
+ begin_value(w), begin_value(z), stride_major(z),
                 begin_value(work.select(value_type())),
                 begin_value(work.select(real_type())),
                 begin_value(work.select(fortran_int_t())),
@@ -157,19 +159,20 @@
     template< typename MatrixAP, typename MatrixBP, typename VectorW,
             typename MatrixZ, typename VectorIFAIL >
     static std::ptrdiff_t invoke( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixAP& ap, MatrixBP& bp, const real_type vl,
- const real_type vu, const fortran_int_t il,
- const fortran_int_t iu, const real_type abstol,
- fortran_int_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail,
- minimal_workspace work ) {
+ const char jobz, const char range, MatrixAP& ap, MatrixBP& bp,
+ const real_type vl, const real_type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const real_type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, VectorIFAIL& ifail, minimal_workspace work ) {
         typedef typename result_of::data_side< MatrixAP >::type uplo;
- bindings::detail::array< value_type > tmp_work( min_size_work( n ) );
- bindings::detail::array< real_type > tmp_rwork( min_size_rwork( n ) );
+ bindings::detail::array< value_type > tmp_work( min_size_work(
+ size_column(ap) ) );
+ bindings::detail::array< real_type > tmp_rwork( min_size_rwork(
+ size_column(ap) ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
- min_size_iwork( n ) );
- return invoke( itype, jobz, range, n, ap, bp, vl, vu, il, iu, abstol,
- m, w, z, ifail, workspace( tmp_work, tmp_rwork, tmp_iwork ) );
+ min_size_iwork( size_column(ap) ) );
+ return invoke( itype, jobz, range, ap, bp, vl, vu, il, iu, abstol, m,
+ w, z, ifail, workspace( tmp_work, tmp_rwork, tmp_iwork ) );
     }
 
     //
@@ -182,15 +185,14 @@
     template< typename MatrixAP, typename MatrixBP, typename VectorW,
             typename MatrixZ, typename VectorIFAIL >
     static std::ptrdiff_t invoke( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixAP& ap, MatrixBP& bp, const real_type vl,
- const real_type vu, const fortran_int_t il,
- const fortran_int_t iu, const real_type abstol,
- fortran_int_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail,
- optimal_workspace work ) {
+ const char jobz, const char range, MatrixAP& ap, MatrixBP& bp,
+ const real_type vl, const real_type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const real_type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, VectorIFAIL& ifail, optimal_workspace work ) {
         typedef typename result_of::data_side< MatrixAP >::type uplo;
- return invoke( itype, jobz, range, n, ap, bp, vl, vu, il, iu, abstol,
- m, w, z, ifail, minimal_workspace() );
+ return invoke( itype, jobz, range, ap, bp, vl, vu, il, iu, abstol, m,
+ w, z, ifail, minimal_workspace() );
     }
 
     //
@@ -240,16 +242,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixAP& ap, MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, MatrixAP& ap, MatrixBP& bp,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
- VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             work );
 }
 
@@ -265,16 +267,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixAP& ap, MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, MatrixAP& ap, MatrixBP& bp,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
- VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
+ MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, VectorIFAIL& ifail ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -290,16 +292,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixAP& ap, MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, const MatrixAP& ap, MatrixBP& bp,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
- VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             work );
 }
 
@@ -315,16 +317,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixAP& ap, MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, const MatrixAP& ap, MatrixBP& bp,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
- VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, VectorIFAIL& ifail ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -340,16 +342,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixAP& ap, const MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, MatrixAP& ap, const MatrixBP& bp,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
- VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
+ MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             work );
 }
 
@@ -365,16 +367,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixAP& ap, const MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, MatrixAP& ap, const MatrixBP& bp,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
- VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, VectorIFAIL& ifail ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -390,9 +392,8 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixAP& ap, const MatrixBP& bp,
- const typename remove_imaginary< typename value<
+ const char jobz, const char range, const MatrixAP& ap,
+ const MatrixBP& bp, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -400,7 +401,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             work );
 }
 
@@ -416,9 +417,8 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixAP& ap, const MatrixBP& bp,
- const typename remove_imaginary< typename value<
+ const char jobz, const char range, const MatrixAP& ap,
+ const MatrixBP& bp, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -426,7 +426,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -442,16 +442,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixAP& ap, MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, MatrixAP& ap, MatrixBP& bp,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             work );
 }
 
@@ -467,16 +467,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixAP& ap, MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, MatrixAP& ap, MatrixBP& bp,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
+ MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -492,16 +492,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixAP& ap, MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, const MatrixAP& ap, MatrixBP& bp,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             work );
 }
 
@@ -517,16 +517,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixAP& ap, MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, const MatrixAP& ap, MatrixBP& bp,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -542,16 +542,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixAP& ap, const MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, MatrixAP& ap, const MatrixBP& bp,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             work );
 }
 
@@ -567,16 +567,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixAP& ap, const MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, MatrixAP& ap, const MatrixBP& bp,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -592,9 +592,8 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixAP& ap, const MatrixBP& bp,
- const typename remove_imaginary< typename value<
+ const char jobz, const char range, const MatrixAP& ap,
+ const MatrixBP& bp, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -602,7 +601,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             work );
 }
 
@@ -618,9 +617,8 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixAP& ap, const MatrixBP& bp,
- const typename remove_imaginary< typename value<
+ const char jobz, const char range, const MatrixAP& ap,
+ const MatrixBP& bp, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -628,7 +626,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -644,16 +642,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixAP& ap, MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, MatrixAP& ap, MatrixBP& bp,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
- VectorW& w, const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
+ MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             work );
 }
 
@@ -669,16 +667,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixAP& ap, MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, MatrixAP& ap, MatrixBP& bp,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
- VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
+ MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ const MatrixZ& z, VectorIFAIL& ifail ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -694,16 +692,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixAP& ap, MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, const MatrixAP& ap, MatrixBP& bp,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
- VectorW& w, const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             work );
 }
 
@@ -719,16 +717,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixAP& ap, MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, const MatrixAP& ap, MatrixBP& bp,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
- VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
+ MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ const MatrixZ& z, VectorIFAIL& ifail ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -744,16 +742,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixAP& ap, const MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, MatrixAP& ap, const MatrixBP& bp,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
- VectorW& w, const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
+ MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             work );
 }
 
@@ -769,16 +767,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixAP& ap, const MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, MatrixAP& ap, const MatrixBP& bp,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
- VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ const MatrixZ& z, VectorIFAIL& ifail ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -794,9 +792,8 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixAP& ap, const MatrixBP& bp,
- const typename remove_imaginary< typename value<
+ const char jobz, const char range, const MatrixAP& ap,
+ const MatrixBP& bp, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -804,7 +801,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             work );
 }
 
@@ -820,9 +817,8 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixAP& ap, const MatrixBP& bp,
- const typename remove_imaginary< typename value<
+ const char jobz, const char range, const MatrixAP& ap,
+ const MatrixBP& bp, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -830,7 +826,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -846,17 +842,17 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixAP& ap, MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, MatrixAP& ap, MatrixBP& bp,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
+ MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail,
         Workspace work ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             work );
 }
 
@@ -872,16 +868,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixAP& ap, MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, MatrixAP& ap, MatrixBP& bp,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
+ MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -897,17 +893,17 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixAP& ap, MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, const MatrixAP& ap, MatrixBP& bp,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail,
         Workspace work ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             work );
 }
 
@@ -923,16 +919,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixAP& ap, MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, const MatrixAP& ap, MatrixBP& bp,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -948,17 +944,17 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixAP& ap, const MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, MatrixAP& ap, const MatrixBP& bp,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail,
         Workspace work ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             work );
 }
 
@@ -974,16 +970,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixAP& ap, const MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, MatrixAP& ap, const MatrixBP& bp,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -999,9 +995,8 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixAP& ap, const MatrixBP& bp,
- const typename remove_imaginary< typename value<
+ const char jobz, const char range, const MatrixAP& ap,
+ const MatrixBP& bp, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1010,7 +1005,7 @@
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail,
         Workspace work ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             work );
 }
 
@@ -1026,9 +1021,8 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixAP& ap, const MatrixBP& bp,
- const typename remove_imaginary< typename value<
+ const char jobz, const char range, const MatrixAP& ap,
+ const MatrixBP& bp, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1036,7 +1030,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1052,16 +1046,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixAP& ap, MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, MatrixAP& ap, MatrixBP& bp,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
- VectorW& w, MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             work );
 }
 
@@ -1077,16 +1071,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixAP& ap, MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, MatrixAP& ap, MatrixBP& bp,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
- VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, const VectorIFAIL& ifail ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1102,16 +1096,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixAP& ap, MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, const MatrixAP& ap, MatrixBP& bp,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
- VectorW& w, MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
+ MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             work );
 }
 
@@ -1127,16 +1121,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixAP& ap, MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, const MatrixAP& ap, MatrixBP& bp,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
- VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
+ MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, const VectorIFAIL& ifail ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1152,16 +1146,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixAP& ap, const MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, MatrixAP& ap, const MatrixBP& bp,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
- VectorW& w, MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             work );
 }
 
@@ -1177,16 +1171,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixAP& ap, const MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, MatrixAP& ap, const MatrixBP& bp,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
- VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
+ MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, const VectorIFAIL& ifail ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1202,9 +1196,8 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixAP& ap, const MatrixBP& bp,
- const typename remove_imaginary< typename value<
+ const char jobz, const char range, const MatrixAP& ap,
+ const MatrixBP& bp, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1212,7 +1205,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             work );
 }
 
@@ -1228,9 +1221,8 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixAP& ap, const MatrixBP& bp,
- const typename remove_imaginary< typename value<
+ const char jobz, const char range, const MatrixAP& ap,
+ const MatrixBP& bp, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1238,7 +1230,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1254,17 +1246,17 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixAP& ap, MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, MatrixAP& ap, MatrixBP& bp,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             work );
 }
 
@@ -1280,16 +1272,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixAP& ap, MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, MatrixAP& ap, MatrixBP& bp,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
+ MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1305,17 +1297,17 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixAP& ap, MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, const MatrixAP& ap, MatrixBP& bp,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
+ MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             work );
 }
 
@@ -1331,16 +1323,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixAP& ap, MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, const MatrixAP& ap, MatrixBP& bp,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1356,17 +1348,17 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixAP& ap, const MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, MatrixAP& ap, const MatrixBP& bp,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             work );
 }
 
@@ -1382,16 +1374,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixAP& ap, const MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, MatrixAP& ap, const MatrixBP& bp,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1407,9 +1399,8 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixAP& ap, const MatrixBP& bp,
- const typename remove_imaginary< typename value<
+ const char jobz, const char range, const MatrixAP& ap,
+ const MatrixBP& bp, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1418,7 +1409,7 @@
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             work );
 }
 
@@ -1434,9 +1425,8 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixAP& ap, const MatrixBP& bp,
- const typename remove_imaginary< typename value<
+ const char jobz, const char range, const MatrixAP& ap,
+ const MatrixBP& bp, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1444,7 +1434,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1460,17 +1450,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixAP& ap, MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, MatrixAP& ap, MatrixBP& bp,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
- VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
- Workspace work ) {
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ const MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             work );
 }
 
@@ -1486,16 +1475,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixAP& ap, MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, MatrixAP& ap, MatrixBP& bp,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
- VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1511,17 +1500,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixAP& ap, MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, const MatrixAP& ap, MatrixBP& bp,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
- VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
- Workspace work ) {
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ const MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             work );
 }
 
@@ -1537,16 +1525,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixAP& ap, MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, const MatrixAP& ap, MatrixBP& bp,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
- VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1562,17 +1550,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixAP& ap, const MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, MatrixAP& ap, const MatrixBP& bp,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
- VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
- Workspace work ) {
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ const MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             work );
 }
 
@@ -1588,16 +1575,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixAP& ap, const MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, MatrixAP& ap, const MatrixBP& bp,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
- VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
+ MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
+ const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1613,9 +1600,8 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixAP& ap, const MatrixBP& bp,
- const typename remove_imaginary< typename value<
+ const char jobz, const char range, const MatrixAP& ap,
+ const MatrixBP& bp, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1623,7 +1609,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             work );
 }
 
@@ -1639,9 +1625,8 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixAP& ap, const MatrixBP& bp,
- const typename remove_imaginary< typename value<
+ const char jobz, const char range, const MatrixAP& ap,
+ const MatrixBP& bp, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1649,7 +1634,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1665,17 +1650,17 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixAP& ap, MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, MatrixAP& ap, MatrixBP& bp,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             work );
 }
 
@@ -1691,16 +1676,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixAP& ap, MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, MatrixAP& ap, MatrixBP& bp,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
+ MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1716,17 +1701,17 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixAP& ap, MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, const MatrixAP& ap, MatrixBP& bp,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             work );
 }
 
@@ -1742,16 +1727,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixAP& ap, MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, const MatrixAP& ap, MatrixBP& bp,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1767,17 +1752,17 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixAP& ap, const MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, MatrixAP& ap, const MatrixBP& bp,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
+ MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             work );
 }
 
@@ -1793,16 +1778,16 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- MatrixAP& ap, const MatrixBP& bp, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type vl,
+ const char jobz, const char range, MatrixAP& ap, const MatrixBP& bp,
+ const typename remove_imaginary< typename value<
+ MatrixAP >::type >::type vl, const typename remove_imaginary<
+ typename value< MatrixAP >::type >::type vu,
+ const fortran_int_t il, const fortran_int_t iu,
         const typename remove_imaginary< typename value<
- MatrixAP >::type >::type vu, const fortran_int_t il,
- const fortran_int_t iu, const typename remove_imaginary<
- typename value< MatrixAP >::type >::type abstol, fortran_int_t& m,
+ MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1818,9 +1803,8 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixAP& ap, const MatrixBP& bp,
- const typename remove_imaginary< typename value<
+ const char jobz, const char range, const MatrixAP& ap,
+ const MatrixBP& bp, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1829,7 +1813,7 @@
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             work );
 }
 
@@ -1845,9 +1829,8 @@
 template< typename MatrixAP, typename MatrixBP, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t hpgvx( const fortran_int_t itype,
- const char jobz, const char range, const fortran_int_t n,
- const MatrixAP& ap, const MatrixBP& bp,
- const typename remove_imaginary< typename value<
+ const char jobz, const char range, const MatrixAP& ap,
+ const MatrixBP& bp, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1855,7 +1838,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return hpgvx_impl< typename value< MatrixAP >::type >::invoke( itype,
- jobz, range, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
+ jobz, range, ap, bp, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpsvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpsvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpsvx.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -131,15 +131,15 @@
         BOOST_STATIC_ASSERT( (is_mutable< VectorBERR >::value) );
         BOOST_ASSERT( fact == 'F' || fact == 'N' );
         BOOST_ASSERT( n >= 0 );
- BOOST_ASSERT( size(berr) >= size_column(x) );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork( n ));
         BOOST_ASSERT( size(work.select(value_type())) >= min_size_work( n ));
- BOOST_ASSERT( size_column(x) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_minor(x) == 1 || stride_minor(x) == 1 );
         BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,n) );
         BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::hpsvx( fact, uplo(), n, size_column(x),
+ return detail::hpsvx( fact, uplo(), n, size_column(b),
                 begin_value(ap), begin_value(afp), begin_value(ipiv),
                 begin_value(b), stride_major(b), begin_value(x),
                 stride_major(x), rcond, begin_value(ferr), begin_value(berr),

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/pbsvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/pbsvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/pbsvx.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -155,9 +155,9 @@
     template< typename MatrixAB, typename MatrixAFB, typename VectorS,
             typename MatrixB, typename MatrixX, typename VectorFERR,
             typename VectorBERR, typename WORK, typename IWORK >
- static std::ptrdiff_t invoke( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
- MatrixX& x, real_type& rcond, VectorFERR& ferr, VectorBERR& berr,
+ static std::ptrdiff_t invoke( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ real_type& rcond, VectorFERR& ferr, VectorBERR& berr,
             detail::workspace2< WORK, IWORK > work ) {
         typedef typename result_of::data_side< MatrixAB >::type uplo;
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
@@ -195,22 +195,25 @@
         BOOST_ASSERT( equed == 'N' || equed == 'Y' );
         BOOST_ASSERT( fact == 'F' || fact == 'Y' || fact == 'N' ||
                 fact == 'E' );
- BOOST_ASSERT( n >= 0 );
- BOOST_ASSERT( size(berr) >= size_column(x) );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
- min_size_iwork( n ));
- BOOST_ASSERT( size(work.select(real_type())) >= min_size_work( n ));
- BOOST_ASSERT( size_column(x) >= 0 );
+ min_size_iwork( size_column(ab) ));
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
+ size_column(ab) ));
+ BOOST_ASSERT( size_column(ab) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( size_minor(afb) == 1 || stride_minor(afb) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_minor(x) == 1 || stride_minor(x) == 1 );
         BOOST_ASSERT( stride_major(ab) >= bandwidth(ab, uplo())+1 );
         BOOST_ASSERT( stride_major(afb) >= bandwidth(ab, uplo())+1 );
- BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,n) );
- BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::pbsvx( fact, uplo(), n, bandwidth(ab, uplo()),
- size_column(x), begin_value(ab), stride_major(ab),
+ BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
+ size_column(ab)) );
+ BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,
+ size_column(ab)) );
+ return detail::pbsvx( fact, uplo(), size_column(ab), bandwidth(ab,
+ uplo()), size_column(b), begin_value(ab), stride_major(ab),
                 begin_value(afb), stride_major(afb), equed, begin_value(s),
                 begin_value(b), stride_major(b), begin_value(x),
                 stride_major(x), rcond, begin_value(ferr), begin_value(berr),
@@ -228,15 +231,16 @@
     template< typename MatrixAB, typename MatrixAFB, typename VectorS,
             typename MatrixB, typename MatrixX, typename VectorFERR,
             typename VectorBERR >
- static std::ptrdiff_t invoke( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
- MatrixX& x, real_type& rcond, VectorFERR& ferr, VectorBERR& berr,
+ static std::ptrdiff_t invoke( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ real_type& rcond, VectorFERR& ferr, VectorBERR& berr,
             minimal_workspace work ) {
         typedef typename result_of::data_side< MatrixAB >::type uplo;
- bindings::detail::array< real_type > tmp_work( min_size_work( n ) );
+ bindings::detail::array< real_type > tmp_work( min_size_work(
+ size_column(ab) ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
- min_size_iwork( n ) );
- return invoke( fact, n, ab, afb, equed, s, b, x, rcond, ferr, berr,
+ min_size_iwork( size_column(ab) ) );
+ return invoke( fact, ab, afb, equed, s, b, x, rcond, ferr, berr,
                 workspace( tmp_work, tmp_iwork ) );
     }
 
@@ -250,12 +254,12 @@
     template< typename MatrixAB, typename MatrixAFB, typename VectorS,
             typename MatrixB, typename MatrixX, typename VectorFERR,
             typename VectorBERR >
- static std::ptrdiff_t invoke( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
- MatrixX& x, real_type& rcond, VectorFERR& ferr, VectorBERR& berr,
+ static std::ptrdiff_t invoke( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ real_type& rcond, VectorFERR& ferr, VectorBERR& berr,
             optimal_workspace work ) {
         typedef typename result_of::data_side< MatrixAB >::type uplo;
- return invoke( fact, n, ab, afb, equed, s, b, x, rcond, ferr, berr,
+ return invoke( fact, ab, afb, equed, s, b, x, rcond, ferr, berr,
                 minimal_workspace() );
     }
 
@@ -294,9 +298,9 @@
     template< typename MatrixAB, typename MatrixAFB, typename VectorS,
             typename MatrixB, typename MatrixX, typename VectorFERR,
             typename VectorBERR, typename WORK, typename RWORK >
- static std::ptrdiff_t invoke( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
- MatrixX& x, real_type& rcond, VectorFERR& ferr, VectorBERR& berr,
+ static std::ptrdiff_t invoke( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ real_type& rcond, VectorFERR& ferr, VectorBERR& berr,
             detail::workspace2< WORK, RWORK > work ) {
         typedef typename result_of::data_side< MatrixAB >::type uplo;
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
@@ -330,21 +334,25 @@
         BOOST_ASSERT( equed == 'N' || equed == 'Y' );
         BOOST_ASSERT( fact == 'F' || fact == 'Y' || fact == 'N' ||
                 fact == 'E' );
- BOOST_ASSERT( n >= 0 );
- BOOST_ASSERT( size(berr) >= size_column(x) );
- BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork( n ));
- BOOST_ASSERT( size(work.select(value_type())) >= min_size_work( n ));
- BOOST_ASSERT( size_column(x) >= 0 );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork(
+ size_column(ab) ));
+ BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
+ size_column(ab) ));
+ BOOST_ASSERT( size_column(ab) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( size_minor(afb) == 1 || stride_minor(afb) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_minor(x) == 1 || stride_minor(x) == 1 );
         BOOST_ASSERT( stride_major(ab) >= bandwidth(ab, uplo())+1 );
         BOOST_ASSERT( stride_major(afb) >= bandwidth(ab, uplo())+1 );
- BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,n) );
- BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::pbsvx( fact, uplo(), n, bandwidth(ab, uplo()),
- size_column(x), begin_value(ab), stride_major(ab),
+ BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
+ size_column(ab)) );
+ BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,
+ size_column(ab)) );
+ return detail::pbsvx( fact, uplo(), size_column(ab), bandwidth(ab,
+ uplo()), size_column(b), begin_value(ab), stride_major(ab),
                 begin_value(afb), stride_major(afb), equed, begin_value(s),
                 begin_value(b), stride_major(b), begin_value(x),
                 stride_major(x), rcond, begin_value(ferr), begin_value(berr),
@@ -362,14 +370,16 @@
     template< typename MatrixAB, typename MatrixAFB, typename VectorS,
             typename MatrixB, typename MatrixX, typename VectorFERR,
             typename VectorBERR >
- static std::ptrdiff_t invoke( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
- MatrixX& x, real_type& rcond, VectorFERR& ferr, VectorBERR& berr,
+ static std::ptrdiff_t invoke( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ real_type& rcond, VectorFERR& ferr, VectorBERR& berr,
             minimal_workspace work ) {
         typedef typename result_of::data_side< MatrixAB >::type uplo;
- bindings::detail::array< value_type > tmp_work( min_size_work( n ) );
- bindings::detail::array< real_type > tmp_rwork( min_size_rwork( n ) );
- return invoke( fact, n, ab, afb, equed, s, b, x, rcond, ferr, berr,
+ bindings::detail::array< value_type > tmp_work( min_size_work(
+ size_column(ab) ) );
+ bindings::detail::array< real_type > tmp_rwork( min_size_rwork(
+ size_column(ab) ) );
+ return invoke( fact, ab, afb, equed, s, b, x, rcond, ferr, berr,
                 workspace( tmp_work, tmp_rwork ) );
     }
 
@@ -383,12 +393,12 @@
     template< typename MatrixAB, typename MatrixAFB, typename VectorS,
             typename MatrixB, typename MatrixX, typename VectorFERR,
             typename VectorBERR >
- static std::ptrdiff_t invoke( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
- MatrixX& x, real_type& rcond, VectorFERR& ferr, VectorBERR& berr,
+ static std::ptrdiff_t invoke( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ real_type& rcond, VectorFERR& ferr, VectorBERR& berr,
             optimal_workspace work ) {
         typedef typename result_of::data_side< MatrixAB >::type uplo;
- return invoke( fact, n, ab, afb, equed, s, b, x, rcond, ferr, berr,
+ return invoke( fact, ab, afb, equed, s, b, x, rcond, ferr, berr,
                 minimal_workspace() );
     }
 
@@ -433,13 +443,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -456,13 +466,12 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -479,13 +488,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -502,13 +511,12 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -525,13 +533,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -548,13 +556,12 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -571,13 +578,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -594,13 +601,12 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -617,13 +623,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -640,13 +646,12 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -663,13 +668,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -686,13 +691,12 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -709,13 +713,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -732,13 +736,12 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -755,13 +758,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed,
- const VectorS& s, MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
+ Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -778,14 +781,12 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed,
- const VectorS& s, MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -802,13 +803,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
+ Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -825,14 +826,12 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -849,13 +848,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
+ Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -872,14 +871,12 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -896,13 +893,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
+ Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -919,14 +916,12 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -943,13 +938,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
+ Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -966,14 +961,12 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -990,13 +983,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
+ Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1013,14 +1006,12 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -1037,13 +1028,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
+ Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1060,14 +1051,12 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -1084,13 +1073,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
+ Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1107,14 +1096,12 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -1131,14 +1118,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed,
- const VectorS& s, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1155,14 +1141,12 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed,
- const VectorS& s, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -1179,13 +1163,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1202,13 +1186,12 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -1225,13 +1208,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
+ Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1248,14 +1231,12 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -1272,13 +1253,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
+ Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1295,14 +1276,12 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -1319,13 +1298,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
+ Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1342,14 +1321,12 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -1366,13 +1343,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
+ Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1389,14 +1366,12 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -1413,13 +1388,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
+ Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1436,14 +1411,12 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -1460,13 +1433,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
+ Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1483,14 +1456,12 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -1507,14 +1478,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed,
- const VectorS& s, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1531,14 +1501,12 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed,
- const VectorS& s, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -1555,13 +1523,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
+ Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1578,14 +1546,12 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -1602,13 +1568,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
+ Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1625,14 +1591,12 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -1649,13 +1613,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
+ Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1672,14 +1636,12 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -1696,13 +1658,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
+ Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1719,14 +1681,12 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -1743,13 +1703,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
+ Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1766,14 +1726,12 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -1790,13 +1748,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
+ Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1813,14 +1771,12 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -1837,13 +1793,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
+ Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1860,14 +1816,12 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
- VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -1884,14 +1838,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed,
- const VectorS& s, const MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr,
         Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1908,14 +1861,12 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed,
- const VectorS& s, const MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr, VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -1932,13 +1883,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -1955,14 +1906,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -1979,13 +1929,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2002,14 +1952,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -2026,13 +1975,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2049,14 +1998,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -2073,13 +2021,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2096,14 +2044,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -2120,13 +2067,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2143,14 +2090,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -2167,13 +2113,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2190,14 +2136,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -2214,13 +2159,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2237,14 +2182,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -2261,13 +2205,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed,
- const VectorS& s, MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2284,14 +2228,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed,
- const VectorS& s, MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -2308,13 +2251,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2331,14 +2274,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -2355,13 +2297,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2378,14 +2320,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -2402,13 +2343,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2425,14 +2366,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -2449,13 +2389,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2472,14 +2412,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -2496,13 +2435,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2519,14 +2458,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -2543,13 +2481,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2566,14 +2504,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -2590,13 +2527,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2613,14 +2550,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -2637,14 +2573,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed,
- const VectorS& s, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2661,15 +2596,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed,
- const VectorS& s, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -2686,13 +2619,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2709,14 +2642,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -2733,13 +2665,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2756,14 +2688,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -2780,13 +2711,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2803,14 +2734,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -2827,13 +2757,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2850,14 +2780,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -2874,13 +2803,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2897,14 +2826,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -2921,13 +2849,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2944,14 +2872,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -2968,13 +2895,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -2991,14 +2918,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -3015,14 +2941,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed,
- const VectorS& s, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3039,15 +2964,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed,
- const VectorS& s, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -3064,13 +2987,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3087,14 +3010,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -3111,13 +3033,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3134,14 +3056,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -3158,13 +3079,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3181,14 +3102,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -3205,13 +3125,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3228,14 +3148,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -3252,13 +3171,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3275,14 +3194,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -3299,13 +3217,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3322,14 +3240,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -3346,13 +3263,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3369,14 +3286,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -3393,14 +3309,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed,
- const VectorS& s, const MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3417,15 +3332,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed,
- const VectorS& s, const MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -3442,13 +3355,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3465,14 +3378,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -3489,13 +3401,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3512,14 +3424,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -3536,13 +3447,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3559,14 +3470,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -3583,13 +3493,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3606,14 +3516,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -3630,13 +3539,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3653,14 +3562,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -3677,13 +3585,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3700,14 +3608,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -3724,13 +3631,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3747,14 +3654,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -3771,13 +3677,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed,
- const VectorS& s, MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3794,14 +3700,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed,
- const VectorS& s, MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -3818,13 +3723,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3841,14 +3746,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -3865,13 +3769,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3888,14 +3792,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -3912,13 +3815,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3935,14 +3838,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -3959,13 +3861,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -3982,14 +3884,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -4006,13 +3907,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4029,14 +3930,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -4053,13 +3953,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4076,14 +3976,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -4100,13 +3999,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4123,14 +4022,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -4147,14 +4045,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed,
- const VectorS& s, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4171,15 +4068,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed,
- const VectorS& s, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -4196,13 +4091,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4219,14 +4114,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -4243,13 +4137,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4266,14 +4160,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -4290,13 +4183,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4313,14 +4206,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -4337,13 +4229,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4360,14 +4252,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -4384,13 +4275,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4407,14 +4298,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -4431,13 +4321,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4454,14 +4344,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -4478,13 +4367,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4501,14 +4390,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -4525,14 +4413,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed,
- const VectorS& s, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4549,15 +4436,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed,
- const VectorS& s, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -4574,13 +4459,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4597,14 +4482,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -4621,13 +4505,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4644,14 +4528,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -4668,13 +4551,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4691,14 +4574,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -4715,13 +4597,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4738,14 +4620,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -4762,13 +4643,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4785,14 +4666,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -4809,13 +4689,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4832,14 +4712,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -4856,13 +4735,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4879,14 +4758,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond, VectorFERR& ferr,
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -4903,14 +4781,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed,
- const VectorS& s, const MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4927,15 +4804,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed,
- const VectorS& s, const MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -4952,13 +4827,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -4975,14 +4850,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
- MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -4999,13 +4873,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5022,14 +4896,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -5046,13 +4919,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5069,14 +4942,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -5093,13 +4965,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5116,14 +4988,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -5140,13 +5011,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5163,14 +5034,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -5187,13 +5057,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5210,14 +5080,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -5234,13 +5103,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5257,14 +5126,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -5281,13 +5149,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed,
- const VectorS& s, MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5304,14 +5172,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed,
- const VectorS& s, MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -5328,13 +5195,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5351,14 +5218,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -5375,13 +5241,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5398,14 +5264,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b, MatrixX& x,
+ typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -5422,13 +5287,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5445,14 +5310,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -5469,13 +5333,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5492,14 +5356,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -5516,13 +5379,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5539,14 +5402,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -5563,13 +5425,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5586,14 +5448,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -5610,13 +5471,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5633,14 +5494,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -5657,14 +5517,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed,
- const VectorS& s, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5681,15 +5540,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed,
- const VectorS& s, const MatrixB& b, MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -5706,13 +5563,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5729,14 +5586,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
- const MatrixX& x, typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -5753,13 +5609,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5776,14 +5632,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b, const MatrixX& x,
+ typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -5800,13 +5655,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5823,14 +5678,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -5847,13 +5701,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5870,14 +5724,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -5894,13 +5747,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5917,14 +5770,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -5941,13 +5793,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -5964,14 +5816,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -5988,13 +5839,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -6011,14 +5862,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, const VectorS& s,
- MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -6035,14 +5885,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed,
- const VectorS& s, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -6059,15 +5908,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed,
- const VectorS& s, MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -6084,13 +5931,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -6107,14 +5954,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -6131,13 +5977,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -6154,14 +6000,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -6178,13 +6023,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -6201,14 +6046,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -6225,13 +6069,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -6248,14 +6092,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed, VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -6272,13 +6115,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -6295,14 +6138,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -6319,13 +6161,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -6342,14 +6184,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -6366,13 +6207,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr, Workspace work ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -6389,14 +6230,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- MatrixAB& ab, const MatrixAFB& afb, char& equed, const VectorS& s,
- const MatrixB& b, const MatrixX& x, typename remove_imaginary<
- typename value< MatrixAB >::type >::type& rcond,
- const VectorFERR& ferr, const VectorBERR& berr ) {
+inline std::ptrdiff_t pbsvx( const char fact, MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
+ MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
+ const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 //
@@ -6413,14 +6253,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR, typename Workspace >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed,
- const VectorS& s, const MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr, Workspace work ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr, work );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, work );
 }
 
 //
@@ -6437,15 +6276,13 @@
 template< typename MatrixAB, typename MatrixAFB, typename VectorS,
         typename MatrixB, typename MatrixX, typename VectorFERR,
         typename VectorBERR >
-inline std::ptrdiff_t pbsvx( const char fact, const fortran_int_t n,
- const MatrixAB& ab, const MatrixAFB& afb, char& equed,
- const VectorS& s, const MatrixB& b, const MatrixX& x,
- typename remove_imaginary< typename value<
+inline std::ptrdiff_t pbsvx( const char fact, const MatrixAB& ab,
+ const MatrixAFB& afb, char& equed, const VectorS& s, const MatrixB& b,
+ const MatrixX& x, typename remove_imaginary< typename value<
         MatrixAB >::type >::type& rcond, const VectorFERR& ferr,
         const VectorBERR& berr ) {
     return pbsvx_impl< typename value< MatrixAB >::type >::invoke( fact,
- n, ab, afb, equed, s, b, x, rcond, ferr, berr,
- optimal_workspace() );
+ ab, afb, equed, s, b, x, rcond, ferr, berr, optimal_workspace() );
 }
 
 } // namespace lapack

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/posvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/posvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/posvx.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -193,13 +193,13 @@
         BOOST_ASSERT( equed == 'N' || equed == 'Y' );
         BOOST_ASSERT( fact == 'F' || fact == 'Y' || fact == 'N' ||
                 fact == 'E' );
- BOOST_ASSERT( size(berr) >= size_column(x) );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
                 min_size_iwork( size_column(a) ));
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
                 size_column(a) ));
         BOOST_ASSERT( size_column(a) >= 0 );
- BOOST_ASSERT( size_column(x) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(af) == 1 || stride_minor(af) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
@@ -212,7 +212,7 @@
                 size_column(a)) );
         BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,
                 size_column(a)) );
- return detail::posvx( fact, uplo(), size_column(a), size_column(x),
+ return detail::posvx( fact, uplo(), size_column(a), size_column(b),
                 begin_value(a), stride_major(a), begin_value(af),
                 stride_major(af), equed, begin_value(s), begin_value(b),
                 stride_major(b), begin_value(x), stride_major(x), rcond,
@@ -331,13 +331,13 @@
         BOOST_ASSERT( equed == 'N' || equed == 'Y' );
         BOOST_ASSERT( fact == 'F' || fact == 'Y' || fact == 'N' ||
                 fact == 'E' );
- BOOST_ASSERT( size(berr) >= size_column(x) );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork(
                 size_column(a) ));
         BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
                 size_column(a) ));
         BOOST_ASSERT( size_column(a) >= 0 );
- BOOST_ASSERT( size_column(x) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(af) == 1 || stride_minor(af) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
@@ -350,7 +350,7 @@
                 size_column(a)) );
         BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,
                 size_column(a)) );
- return detail::posvx( fact, uplo(), size_column(a), size_column(x),
+ return detail::posvx( fact, uplo(), size_column(a), size_column(b),
                 begin_value(a), stride_major(a), begin_value(af),
                 stride_major(af), equed, begin_value(s), begin_value(b),
                 stride_major(b), begin_value(x), stride_major(x), rcond,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ppsvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ppsvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ppsvx.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -189,20 +189,20 @@
         BOOST_ASSERT( equed == 'N' || equed == 'Y' );
         BOOST_ASSERT( fact == 'F' || fact == 'Y' || fact == 'N' ||
                 fact == 'E' );
- BOOST_ASSERT( size(berr) >= size_column(x) );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
                 min_size_iwork( size_column(ap) ));
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
                 size_column(ap) ));
         BOOST_ASSERT( size_column(ap) >= 0 );
- BOOST_ASSERT( size_column(x) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_minor(x) == 1 || stride_minor(x) == 1 );
         BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
                 size_column(ap)) );
         BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,
                 size_column(ap)) );
- return detail::ppsvx( fact, uplo(), size_column(ap), size_column(x),
+ return detail::ppsvx( fact, uplo(), size_column(ap), size_column(b),
                 begin_value(ap), begin_value(afp), equed, begin_value(s),
                 begin_value(b), stride_major(b), begin_value(x),
                 stride_major(x), rcond, begin_value(ferr), begin_value(berr),
@@ -322,20 +322,20 @@
         BOOST_ASSERT( equed == 'N' || equed == 'Y' );
         BOOST_ASSERT( fact == 'F' || fact == 'Y' || fact == 'N' ||
                 fact == 'E' );
- BOOST_ASSERT( size(berr) >= size_column(x) );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork(
                 size_column(ap) ));
         BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
                 size_column(ap) ));
         BOOST_ASSERT( size_column(ap) >= 0 );
- BOOST_ASSERT( size_column(x) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_minor(x) == 1 || stride_minor(x) == 1 );
         BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
                 size_column(ap)) );
         BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,
                 size_column(ap)) );
- return detail::ppsvx( fact, uplo(), size_column(ap), size_column(x),
+ return detail::ppsvx( fact, uplo(), size_column(ap), size_column(b),
                 begin_value(ap), begin_value(afp), equed, begin_value(s),
                 begin_value(b), stride_major(b), begin_value(x),
                 stride_major(x), rcond, begin_value(ferr), begin_value(berr),

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ptsvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ptsvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ptsvx.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -180,16 +180,16 @@
         BOOST_STATIC_ASSERT( (is_mutable< VectorBERR >::value) );
         BOOST_ASSERT( fact == 'F' || fact == 'N' );
         BOOST_ASSERT( n >= 0 );
- BOOST_ASSERT( size(berr) >= size_column(x) );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
         BOOST_ASSERT( size(d) >= n );
         BOOST_ASSERT( size(e) >= n-1 );
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_work( n ));
- BOOST_ASSERT( size_column(x) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_minor(x) == 1 || stride_minor(x) == 1 );
         BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,n) );
         BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::ptsvx( fact, n, size_column(x), begin_value(d),
+ return detail::ptsvx( fact, n, size_column(b), begin_value(d),
                 begin_value(e), begin_value(df), begin_value(ef),
                 begin_value(b), stride_major(b), begin_value(x),
                 stride_major(x), rcond, begin_value(ferr), begin_value(berr),
@@ -296,17 +296,17 @@
         BOOST_STATIC_ASSERT( (is_mutable< VectorBERR >::value) );
         BOOST_ASSERT( fact == 'F' || fact == 'N' );
         BOOST_ASSERT( n >= 0 );
- BOOST_ASSERT( size(berr) >= size_column(x) );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
         BOOST_ASSERT( size(d) >= n );
         BOOST_ASSERT( size(e) >= n-1 );
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork( n ));
         BOOST_ASSERT( size(work.select(value_type())) >= min_size_work( n ));
- BOOST_ASSERT( size_column(x) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_minor(x) == 1 || stride_minor(x) == 1 );
         BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,n) );
         BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::ptsvx( fact, n, size_column(x), begin_value(d),
+ return detail::ptsvx( fact, n, size_column(b), begin_value(d),
                 begin_value(e), begin_value(df), begin_value(ef),
                 begin_value(b), stride_major(b), begin_value(x),
                 stride_major(x), rcond, begin_value(ferr), begin_value(berr),

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbevd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbevd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbevd.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -101,10 +101,9 @@
     //
     template< typename MatrixAB, typename VectorW, typename MatrixZ,
             typename WORK, typename IWORK >
- static std::ptrdiff_t invoke( const char jobz, const fortran_int_t n,
- MatrixAB& ab, VectorW& w, MatrixZ& z,
- const fortran_int_t liwork, detail::workspace2< WORK,
- IWORK > work ) {
+ static std::ptrdiff_t invoke( const char jobz, MatrixAB& ab, VectorW& w,
+ MatrixZ& z, const fortran_int_t liwork, detail::workspace2<
+ WORK, IWORK > work ) {
         typedef typename result_of::data_side< MatrixAB >::type uplo;
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< MatrixAB >::type >::type,
@@ -119,16 +118,16 @@
         BOOST_STATIC_ASSERT( (is_mutable< MatrixZ >::value) );
         BOOST_ASSERT( bandwidth(ab, uplo()) >= 0 );
         BOOST_ASSERT( jobz == 'N' || jobz == 'V' );
- BOOST_ASSERT( n >= 0 );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
- min_size_iwork( jobz, n ));
+ min_size_iwork( jobz, size_column(ab) ));
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_work( jobz,
- n ));
+ size_column(ab) ));
+ BOOST_ASSERT( size_column(ab) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( size_minor(z) == 1 || stride_minor(z) == 1 );
         BOOST_ASSERT( stride_major(ab) >= bandwidth(ab, uplo()) );
- return detail::sbevd( jobz, uplo(), n, bandwidth(ab, uplo()),
- begin_value(ab), stride_major(ab), begin_value(w),
+ return detail::sbevd( jobz, uplo(), size_column(ab), bandwidth(ab,
+ uplo()), begin_value(ab), stride_major(ab), begin_value(w),
                 begin_value(z), stride_major(z),
                 begin_value(work.select(real_type())),
                 size(work.select(real_type())),
@@ -143,15 +142,15 @@
     // * Enables the unblocked algorithm (BLAS level 2)
     //
     template< typename MatrixAB, typename VectorW, typename MatrixZ >
- static std::ptrdiff_t invoke( const char jobz, const fortran_int_t n,
- MatrixAB& ab, VectorW& w, MatrixZ& z,
- const fortran_int_t liwork, minimal_workspace work ) {
+ static std::ptrdiff_t invoke( const char jobz, MatrixAB& ab, VectorW& w,
+ MatrixZ& z, const fortran_int_t liwork,
+ minimal_workspace work ) {
         typedef typename result_of::data_side< MatrixAB >::type uplo;
         bindings::detail::array< real_type > tmp_work( min_size_work( jobz,
- n ) );
+ size_column(ab) ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
- min_size_iwork( jobz, n ) );
- return invoke( jobz, n, ab, w, z, liwork, workspace( tmp_work,
+ min_size_iwork( jobz, size_column(ab) ) );
+ return invoke( jobz, ab, w, z, liwork, workspace( tmp_work,
                 tmp_iwork ) );
     }
 
@@ -163,21 +162,21 @@
     // * Enables the blocked algorithm (BLAS level 3)
     //
     template< typename MatrixAB, typename VectorW, typename MatrixZ >
- static std::ptrdiff_t invoke( const char jobz, const fortran_int_t n,
- MatrixAB& ab, VectorW& w, MatrixZ& z,
- const fortran_int_t liwork, optimal_workspace work ) {
+ static std::ptrdiff_t invoke( const char jobz, MatrixAB& ab, VectorW& w,
+ MatrixZ& z, const fortran_int_t liwork,
+ optimal_workspace work ) {
         typedef typename result_of::data_side< MatrixAB >::type uplo;
         real_type opt_size_work;
         fortran_int_t opt_size_iwork;
- detail::sbevd( jobz, uplo(), n, bandwidth(ab, uplo()),
- begin_value(ab), stride_major(ab), begin_value(w),
+ detail::sbevd( jobz, uplo(), size_column(ab), bandwidth(ab,
+ uplo()), begin_value(ab), stride_major(ab), begin_value(w),
                 begin_value(z), stride_major(z), &opt_size_work, -1,
                 &opt_size_iwork, -1 );
         bindings::detail::array< real_type > tmp_work(
                 traits::detail::to_int( opt_size_work ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
                 opt_size_iwork );
- return invoke( jobz, n, ab, w, z, liwork, workspace( tmp_work,
+ return invoke( jobz, ab, w, z, liwork, workspace( tmp_work,
                 tmp_iwork ) );
     }
 
@@ -229,11 +228,10 @@
 //
 template< typename MatrixAB, typename VectorW, typename MatrixZ,
         typename Workspace >
-inline std::ptrdiff_t sbevd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, VectorW& w, MatrixZ& z, const fortran_int_t liwork,
- Workspace work ) {
+inline std::ptrdiff_t sbevd( const char jobz, MatrixAB& ab, VectorW& w,
+ MatrixZ& z, const fortran_int_t liwork, Workspace work ) {
     return sbevd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, w, z, liwork, work );
+ ab, w, z, liwork, work );
 }
 
 //
@@ -244,11 +242,10 @@
 // * Default workspace-type (optimal)
 //
 template< typename MatrixAB, typename VectorW, typename MatrixZ >
-inline std::ptrdiff_t sbevd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, VectorW& w, MatrixZ& z,
- const fortran_int_t liwork ) {
+inline std::ptrdiff_t sbevd( const char jobz, MatrixAB& ab, VectorW& w,
+ MatrixZ& z, const fortran_int_t liwork ) {
     return sbevd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, w, z, liwork, optimal_workspace() );
+ ab, w, z, liwork, optimal_workspace() );
 }
 
 //
@@ -260,11 +257,11 @@
 //
 template< typename MatrixAB, typename VectorW, typename MatrixZ,
         typename Workspace >
-inline std::ptrdiff_t sbevd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, VectorW& w, MatrixZ& z,
- const fortran_int_t liwork, Workspace work ) {
+inline std::ptrdiff_t sbevd( const char jobz, const MatrixAB& ab,
+ VectorW& w, MatrixZ& z, const fortran_int_t liwork,
+ Workspace work ) {
     return sbevd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, w, z, liwork, work );
+ ab, w, z, liwork, work );
 }
 
 //
@@ -275,11 +272,10 @@
 // * Default workspace-type (optimal)
 //
 template< typename MatrixAB, typename VectorW, typename MatrixZ >
-inline std::ptrdiff_t sbevd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, VectorW& w, MatrixZ& z,
- const fortran_int_t liwork ) {
+inline std::ptrdiff_t sbevd( const char jobz, const MatrixAB& ab,
+ VectorW& w, MatrixZ& z, const fortran_int_t liwork ) {
     return sbevd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, w, z, liwork, optimal_workspace() );
+ ab, w, z, liwork, optimal_workspace() );
 }
 
 //
@@ -291,11 +287,11 @@
 //
 template< typename MatrixAB, typename VectorW, typename MatrixZ,
         typename Workspace >
-inline std::ptrdiff_t sbevd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const VectorW& w, MatrixZ& z,
- const fortran_int_t liwork, Workspace work ) {
+inline std::ptrdiff_t sbevd( const char jobz, MatrixAB& ab,
+ const VectorW& w, MatrixZ& z, const fortran_int_t liwork,
+ Workspace work ) {
     return sbevd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, w, z, liwork, work );
+ ab, w, z, liwork, work );
 }
 
 //
@@ -306,11 +302,10 @@
 // * Default workspace-type (optimal)
 //
 template< typename MatrixAB, typename VectorW, typename MatrixZ >
-inline std::ptrdiff_t sbevd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const VectorW& w, MatrixZ& z,
- const fortran_int_t liwork ) {
+inline std::ptrdiff_t sbevd( const char jobz, MatrixAB& ab,
+ const VectorW& w, MatrixZ& z, const fortran_int_t liwork ) {
     return sbevd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, w, z, liwork, optimal_workspace() );
+ ab, w, z, liwork, optimal_workspace() );
 }
 
 //
@@ -322,11 +317,11 @@
 //
 template< typename MatrixAB, typename VectorW, typename MatrixZ,
         typename Workspace >
-inline std::ptrdiff_t sbevd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const VectorW& w, MatrixZ& z,
- const fortran_int_t liwork, Workspace work ) {
+inline std::ptrdiff_t sbevd( const char jobz, const MatrixAB& ab,
+ const VectorW& w, MatrixZ& z, const fortran_int_t liwork,
+ Workspace work ) {
     return sbevd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, w, z, liwork, work );
+ ab, w, z, liwork, work );
 }
 
 //
@@ -337,11 +332,10 @@
 // * Default workspace-type (optimal)
 //
 template< typename MatrixAB, typename VectorW, typename MatrixZ >
-inline std::ptrdiff_t sbevd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const VectorW& w, MatrixZ& z,
- const fortran_int_t liwork ) {
+inline std::ptrdiff_t sbevd( const char jobz, const MatrixAB& ab,
+ const VectorW& w, MatrixZ& z, const fortran_int_t liwork ) {
     return sbevd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, w, z, liwork, optimal_workspace() );
+ ab, w, z, liwork, optimal_workspace() );
 }
 
 //
@@ -353,11 +347,10 @@
 //
 template< typename MatrixAB, typename VectorW, typename MatrixZ,
         typename Workspace >
-inline std::ptrdiff_t sbevd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, VectorW& w, const MatrixZ& z,
- const fortran_int_t liwork, Workspace work ) {
+inline std::ptrdiff_t sbevd( const char jobz, MatrixAB& ab, VectorW& w,
+ const MatrixZ& z, const fortran_int_t liwork, Workspace work ) {
     return sbevd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, w, z, liwork, work );
+ ab, w, z, liwork, work );
 }
 
 //
@@ -368,11 +361,10 @@
 // * Default workspace-type (optimal)
 //
 template< typename MatrixAB, typename VectorW, typename MatrixZ >
-inline std::ptrdiff_t sbevd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, VectorW& w, const MatrixZ& z,
- const fortran_int_t liwork ) {
+inline std::ptrdiff_t sbevd( const char jobz, MatrixAB& ab, VectorW& w,
+ const MatrixZ& z, const fortran_int_t liwork ) {
     return sbevd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, w, z, liwork, optimal_workspace() );
+ ab, w, z, liwork, optimal_workspace() );
 }
 
 //
@@ -384,11 +376,11 @@
 //
 template< typename MatrixAB, typename VectorW, typename MatrixZ,
         typename Workspace >
-inline std::ptrdiff_t sbevd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, VectorW& w, const MatrixZ& z,
- const fortran_int_t liwork, Workspace work ) {
+inline std::ptrdiff_t sbevd( const char jobz, const MatrixAB& ab,
+ VectorW& w, const MatrixZ& z, const fortran_int_t liwork,
+ Workspace work ) {
     return sbevd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, w, z, liwork, work );
+ ab, w, z, liwork, work );
 }
 
 //
@@ -399,11 +391,10 @@
 // * Default workspace-type (optimal)
 //
 template< typename MatrixAB, typename VectorW, typename MatrixZ >
-inline std::ptrdiff_t sbevd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, VectorW& w, const MatrixZ& z,
- const fortran_int_t liwork ) {
+inline std::ptrdiff_t sbevd( const char jobz, const MatrixAB& ab,
+ VectorW& w, const MatrixZ& z, const fortran_int_t liwork ) {
     return sbevd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, w, z, liwork, optimal_workspace() );
+ ab, w, z, liwork, optimal_workspace() );
 }
 
 //
@@ -415,11 +406,11 @@
 //
 template< typename MatrixAB, typename VectorW, typename MatrixZ,
         typename Workspace >
-inline std::ptrdiff_t sbevd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const VectorW& w, const MatrixZ& z,
- const fortran_int_t liwork, Workspace work ) {
+inline std::ptrdiff_t sbevd( const char jobz, MatrixAB& ab,
+ const VectorW& w, const MatrixZ& z, const fortran_int_t liwork,
+ Workspace work ) {
     return sbevd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, w, z, liwork, work );
+ ab, w, z, liwork, work );
 }
 
 //
@@ -430,11 +421,10 @@
 // * Default workspace-type (optimal)
 //
 template< typename MatrixAB, typename VectorW, typename MatrixZ >
-inline std::ptrdiff_t sbevd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const VectorW& w, const MatrixZ& z,
- const fortran_int_t liwork ) {
+inline std::ptrdiff_t sbevd( const char jobz, MatrixAB& ab,
+ const VectorW& w, const MatrixZ& z, const fortran_int_t liwork ) {
     return sbevd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, w, z, liwork, optimal_workspace() );
+ ab, w, z, liwork, optimal_workspace() );
 }
 
 //
@@ -446,11 +436,11 @@
 //
 template< typename MatrixAB, typename VectorW, typename MatrixZ,
         typename Workspace >
-inline std::ptrdiff_t sbevd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const VectorW& w, const MatrixZ& z,
- const fortran_int_t liwork, Workspace work ) {
+inline std::ptrdiff_t sbevd( const char jobz, const MatrixAB& ab,
+ const VectorW& w, const MatrixZ& z, const fortran_int_t liwork,
+ Workspace work ) {
     return sbevd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, w, z, liwork, work );
+ ab, w, z, liwork, work );
 }
 
 //
@@ -461,11 +451,10 @@
 // * Default workspace-type (optimal)
 //
 template< typename MatrixAB, typename VectorW, typename MatrixZ >
-inline std::ptrdiff_t sbevd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const VectorW& w, const MatrixZ& z,
- const fortran_int_t liwork ) {
+inline std::ptrdiff_t sbevd( const char jobz, const MatrixAB& ab,
+ const VectorW& w, const MatrixZ& z, const fortran_int_t liwork ) {
     return sbevd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, w, z, liwork, optimal_workspace() );
+ ab, w, z, liwork, optimal_workspace() );
 }
 
 } // namespace lapack

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbevx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbevx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbevx.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -108,8 +108,7 @@
             typename MatrixZ, typename VectorIFAIL, typename WORK,
             typename IWORK >
     static std::ptrdiff_t invoke( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
- const real_type vl, const real_type vu,
+ MatrixAB& ab, MatrixQ& q, const real_type vl, const real_type vu,
             const fortran_int_t il, const fortran_int_t iu,
             const real_type abstol, fortran_int_t& m, VectorW& w,
             MatrixZ& z, VectorIFAIL& ifail, detail::workspace2< WORK,
@@ -134,21 +133,23 @@
         BOOST_STATIC_ASSERT( (is_mutable< VectorIFAIL >::value) );
         BOOST_ASSERT( bandwidth(ab, uplo()) >= 0 );
         BOOST_ASSERT( jobz == 'N' || jobz == 'V' );
- BOOST_ASSERT( n >= 0 );
         BOOST_ASSERT( range == 'A' || range == 'V' || range == 'I' );
- BOOST_ASSERT( size(w) >= n );
+ BOOST_ASSERT( size(w) >= size_column(ab) );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
- min_size_iwork( n ));
- BOOST_ASSERT( size(work.select(real_type())) >= min_size_work( n ));
+ min_size_iwork( size_column(ab) ));
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
+ size_column(ab) ));
+ BOOST_ASSERT( size_column(ab) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( size_minor(q) == 1 || stride_minor(q) == 1 );
         BOOST_ASSERT( size_minor(z) == 1 || stride_minor(z) == 1 );
         BOOST_ASSERT( stride_major(ab) >= bandwidth(ab, uplo()) );
- BOOST_ASSERT( stride_major(q) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::sbevx( jobz, range, uplo(), n, bandwidth(ab, uplo()),
- begin_value(ab), stride_major(ab), begin_value(q),
- stride_major(q), vl, vu, il, iu, abstol, m, begin_value(w),
- begin_value(z), stride_major(z),
+ BOOST_ASSERT( stride_major(q) >= std::max< std::ptrdiff_t >(1,
+ size_column(ab)) );
+ return detail::sbevx( jobz, range, uplo(), size_column(ab),
+ bandwidth(ab, uplo()), begin_value(ab), stride_major(ab),
+ begin_value(q), stride_major(q), vl, vu, il, iu, abstol, m,
+ begin_value(w), begin_value(z), stride_major(z),
                 begin_value(work.select(real_type())),
                 begin_value(work.select(fortran_int_t())),
                 begin_value(ifail) );
@@ -164,16 +165,16 @@
     template< typename MatrixAB, typename MatrixQ, typename VectorW,
             typename MatrixZ, typename VectorIFAIL >
     static std::ptrdiff_t invoke( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
- const real_type vl, const real_type vu,
+ MatrixAB& ab, MatrixQ& q, const real_type vl, const real_type vu,
             const fortran_int_t il, const fortran_int_t iu,
             const real_type abstol, fortran_int_t& m, VectorW& w,
             MatrixZ& z, VectorIFAIL& ifail, minimal_workspace work ) {
         typedef typename result_of::data_side< MatrixAB >::type uplo;
- bindings::detail::array< real_type > tmp_work( min_size_work( n ) );
+ bindings::detail::array< real_type > tmp_work( min_size_work(
+ size_column(ab) ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
- min_size_iwork( n ) );
- return invoke( jobz, range, n, ab, q, vl, vu, il, iu, abstol, m, w, z,
+ min_size_iwork( size_column(ab) ) );
+ return invoke( jobz, range, ab, q, vl, vu, il, iu, abstol, m, w, z,
                 ifail, workspace( tmp_work, tmp_iwork ) );
     }
 
@@ -187,13 +188,12 @@
     template< typename MatrixAB, typename MatrixQ, typename VectorW,
             typename MatrixZ, typename VectorIFAIL >
     static std::ptrdiff_t invoke( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
- const real_type vl, const real_type vu,
+ MatrixAB& ab, MatrixQ& q, const real_type vl, const real_type vu,
             const fortran_int_t il, const fortran_int_t iu,
             const real_type abstol, fortran_int_t& m, VectorW& w,
             MatrixZ& z, VectorIFAIL& ifail, optimal_workspace work ) {
         typedef typename result_of::data_side< MatrixAB >::type uplo;
- return invoke( jobz, range, n, ab, q, vl, vu, il, iu, abstol, m, w, z,
+ return invoke( jobz, range, ab, q, vl, vu, il, iu, abstol, m, w, z,
                 ifail, minimal_workspace() );
     }
 
@@ -236,16 +236,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
+ MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -260,16 +259,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, VectorIFAIL& ifail ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -285,16 +283,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ const MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -309,16 +306,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixQ& q,
+ const MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, VectorIFAIL& ifail ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -334,16 +330,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -358,16 +353,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixQ& q,
+ MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, VectorIFAIL& ifail ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -383,16 +377,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ const MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -407,16 +400,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixQ& q,
+ const MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, VectorIFAIL& ifail ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -432,16 +424,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -456,16 +447,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
+ MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -481,16 +471,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ const MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -505,16 +494,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixQ& q,
+ const MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -530,16 +518,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -554,16 +541,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixQ& q,
+ MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -579,16 +565,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ const MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -603,16 +588,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixQ& q,
+ const MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -628,16 +612,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -652,16 +635,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
+ MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- const MatrixZ& z, VectorIFAIL& ifail ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -677,16 +659,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ const MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -701,16 +682,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ const MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- const MatrixZ& z, VectorIFAIL& ifail ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -726,16 +706,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixQ& q,
+ MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -750,16 +729,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- const MatrixZ& z, VectorIFAIL& ifail ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -775,16 +753,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixQ& q,
+ const MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -799,16 +776,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ const MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- const MatrixZ& z, VectorIFAIL& ifail ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -824,17 +800,16 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
+ MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail,
         Workspace work ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -849,16 +824,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -874,17 +848,16 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixQ& q,
+ const MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail,
         Workspace work ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -899,16 +872,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ const MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -924,17 +896,16 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixQ& q,
+ MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail,
         Workspace work ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -949,16 +920,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -974,17 +944,16 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixQ& q,
+ const MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail,
         Workspace work ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -999,16 +968,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ const MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1024,16 +992,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
+ MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1048,16 +1015,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, const VectorIFAIL& ifail ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1073,16 +1039,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixQ& q,
+ const MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1097,16 +1062,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ const MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, const VectorIFAIL& ifail ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1122,16 +1086,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1146,16 +1109,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixQ& q,
+ MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, const VectorIFAIL& ifail ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1171,16 +1133,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ const MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1195,16 +1156,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixQ& q,
+ const MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, const VectorIFAIL& ifail ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1220,17 +1180,16 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1245,16 +1204,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
+ MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1270,17 +1228,16 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ const MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1295,16 +1252,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixQ& q,
+ const MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1320,17 +1276,16 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1345,16 +1300,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixQ& q,
+ MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1370,17 +1324,16 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ const MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1395,16 +1348,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixQ& q,
+ const MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1420,16 +1372,16 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- const MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
+ Workspace work ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1444,16 +1396,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- const MatrixZ& z, const VectorIFAIL& ifail ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1469,16 +1420,16 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixQ& q,
+ const MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- const MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
+ Workspace work ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1493,16 +1444,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ const MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- const MatrixZ& z, const VectorIFAIL& ifail ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1518,16 +1468,16 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixQ& q,
+ MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- const MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
+ Workspace work ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1542,16 +1492,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixQ& q,
+ MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- const MatrixZ& z, const VectorIFAIL& ifail ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1567,16 +1516,16 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ const MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- const MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
+ Workspace work ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1591,16 +1540,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ const MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
- const MatrixZ& z, const VectorIFAIL& ifail ) {
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
+ VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1616,17 +1564,16 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
+ MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1641,16 +1588,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1666,17 +1612,16 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixQ& q,
+ const MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1691,16 +1636,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ const MatrixAB& ab, MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1716,17 +1660,16 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixQ& q,
+ MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1741,16 +1684,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1766,17 +1708,16 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixQ& q,
+ const MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1791,16 +1732,15 @@
 template< typename MatrixAB, typename MatrixQ, typename VectorW,
         typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixQ& q,
- const typename remove_imaginary< typename value<
- MatrixAB >::type >::type vl, const typename remove_imaginary<
- typename value< MatrixAB >::type >::type vu,
- const fortran_int_t il, const fortran_int_t iu,
+ const MatrixAB& ab, const MatrixQ& q, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type vl,
         const typename remove_imaginary< typename value<
- MatrixAB >::type >::type abstol, fortran_int_t& m,
+ MatrixAB >::type >::type vu, const fortran_int_t il,
+ const fortran_int_t iu, const typename remove_imaginary<
+ typename value< MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbevx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbgv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbgv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbgv.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -98,9 +98,8 @@
     //
     template< typename MatrixAB, typename MatrixBB, typename VectorW,
             typename MatrixZ, typename WORK >
- static std::ptrdiff_t invoke( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, VectorW& w, MatrixZ& z,
- detail::workspace1< WORK > work ) {
+ static std::ptrdiff_t invoke( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ VectorW& w, MatrixZ& z, detail::workspace1< WORK > work ) {
         typedef typename result_of::data_side< MatrixAB >::type uplo;
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< MatrixAB >::type >::type,
@@ -121,17 +120,18 @@
         BOOST_ASSERT( bandwidth(ab, uplo()) >= 0 );
         BOOST_ASSERT( bandwidth(bb, uplo()) >= 0 );
         BOOST_ASSERT( jobz == 'N' || jobz == 'V' );
- BOOST_ASSERT( n >= 0 );
- BOOST_ASSERT( size(work.select(real_type())) >= min_size_work( n ));
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
+ size_column(ab) ));
+ BOOST_ASSERT( size_column(ab) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( size_minor(bb) == 1 || stride_minor(bb) == 1 );
         BOOST_ASSERT( size_minor(z) == 1 || stride_minor(z) == 1 );
         BOOST_ASSERT( stride_major(ab) >= bandwidth(ab, uplo())+1 );
         BOOST_ASSERT( stride_major(bb) >= bandwidth(bb, uplo())+1 );
- return detail::sbgv( jobz, uplo(), n, bandwidth(ab, uplo()),
- bandwidth(bb, uplo()), begin_value(ab), stride_major(ab),
- begin_value(bb), stride_major(bb), begin_value(w),
- begin_value(z), stride_major(z),
+ return detail::sbgv( jobz, uplo(), size_column(ab), bandwidth(ab,
+ uplo()), bandwidth(bb, uplo()), begin_value(ab),
+ stride_major(ab), begin_value(bb), stride_major(bb),
+ begin_value(w), begin_value(z), stride_major(z),
                 begin_value(work.select(real_type())) );
     }
 
@@ -144,12 +144,12 @@
     //
     template< typename MatrixAB, typename MatrixBB, typename VectorW,
             typename MatrixZ >
- static std::ptrdiff_t invoke( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, VectorW& w, MatrixZ& z,
- minimal_workspace work ) {
+ static std::ptrdiff_t invoke( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ VectorW& w, MatrixZ& z, minimal_workspace work ) {
         typedef typename result_of::data_side< MatrixAB >::type uplo;
- bindings::detail::array< real_type > tmp_work( min_size_work( n ) );
- return invoke( jobz, n, ab, bb, w, z, workspace( tmp_work ) );
+ bindings::detail::array< real_type > tmp_work( min_size_work(
+ size_column(ab) ) );
+ return invoke( jobz, ab, bb, w, z, workspace( tmp_work ) );
     }
 
     //
@@ -161,11 +161,10 @@
     //
     template< typename MatrixAB, typename MatrixBB, typename VectorW,
             typename MatrixZ >
- static std::ptrdiff_t invoke( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, VectorW& w, MatrixZ& z,
- optimal_workspace work ) {
+ static std::ptrdiff_t invoke( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ VectorW& w, MatrixZ& z, optimal_workspace work ) {
         typedef typename result_of::data_side< MatrixAB >::type uplo;
- return invoke( jobz, n, ab, bb, w, z, minimal_workspace() );
+ return invoke( jobz, ab, bb, w, z, minimal_workspace() );
     }
 
     //
@@ -197,10 +196,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t sbgv( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, VectorW& w, MatrixZ& z, Workspace work ) {
+inline std::ptrdiff_t sbgv( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ VectorW& w, MatrixZ& z, Workspace work ) {
     return sbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -213,10 +212,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t sbgv( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, VectorW& w, MatrixZ& z ) {
+inline std::ptrdiff_t sbgv( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ VectorW& w, MatrixZ& z ) {
     return sbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -229,11 +228,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t sbgv( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, MatrixBB& bb, VectorW& w, MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t sbgv( const char jobz, const MatrixAB& ab,
+ MatrixBB& bb, VectorW& w, MatrixZ& z, Workspace work ) {
     return sbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -246,10 +244,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t sbgv( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, MatrixBB& bb, VectorW& w, MatrixZ& z ) {
+inline std::ptrdiff_t sbgv( const char jobz, const MatrixAB& ab,
+ MatrixBB& bb, VectorW& w, MatrixZ& z ) {
     return sbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -262,11 +260,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t sbgv( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, VectorW& w, MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t sbgv( const char jobz, MatrixAB& ab,
+ const MatrixBB& bb, VectorW& w, MatrixZ& z, Workspace work ) {
     return sbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -279,10 +276,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t sbgv( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, VectorW& w, MatrixZ& z ) {
+inline std::ptrdiff_t sbgv( const char jobz, MatrixAB& ab,
+ const MatrixBB& bb, VectorW& w, MatrixZ& z ) {
     return sbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -295,11 +292,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t sbgv( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, VectorW& w, MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t sbgv( const char jobz, const MatrixAB& ab,
+ const MatrixBB& bb, VectorW& w, MatrixZ& z, Workspace work ) {
     return sbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -312,10 +308,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t sbgv( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, VectorW& w, MatrixZ& z ) {
+inline std::ptrdiff_t sbgv( const char jobz, const MatrixAB& ab,
+ const MatrixBB& bb, VectorW& w, MatrixZ& z ) {
     return sbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -328,11 +324,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t sbgv( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, const VectorW& w, MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t sbgv( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ const VectorW& w, MatrixZ& z, Workspace work ) {
     return sbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -345,10 +340,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t sbgv( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, const VectorW& w, MatrixZ& z ) {
+inline std::ptrdiff_t sbgv( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ const VectorW& w, MatrixZ& z ) {
     return sbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -361,11 +356,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t sbgv( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, MatrixBB& bb, const VectorW& w, MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t sbgv( const char jobz, const MatrixAB& ab,
+ MatrixBB& bb, const VectorW& w, MatrixZ& z, Workspace work ) {
     return sbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -378,10 +372,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t sbgv( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, MatrixBB& bb, const VectorW& w, MatrixZ& z ) {
+inline std::ptrdiff_t sbgv( const char jobz, const MatrixAB& ab,
+ MatrixBB& bb, const VectorW& w, MatrixZ& z ) {
     return sbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -394,11 +388,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t sbgv( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, const VectorW& w, MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t sbgv( const char jobz, MatrixAB& ab,
+ const MatrixBB& bb, const VectorW& w, MatrixZ& z, Workspace work ) {
     return sbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -411,10 +404,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t sbgv( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, const VectorW& w, MatrixZ& z ) {
+inline std::ptrdiff_t sbgv( const char jobz, MatrixAB& ab,
+ const MatrixBB& bb, const VectorW& w, MatrixZ& z ) {
     return sbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -427,11 +420,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t sbgv( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, const VectorW& w, MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t sbgv( const char jobz, const MatrixAB& ab,
+ const MatrixBB& bb, const VectorW& w, MatrixZ& z, Workspace work ) {
     return sbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -444,11 +436,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t sbgv( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, const VectorW& w,
- MatrixZ& z ) {
+inline std::ptrdiff_t sbgv( const char jobz, const MatrixAB& ab,
+ const MatrixBB& bb, const VectorW& w, MatrixZ& z ) {
     return sbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -461,11 +452,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t sbgv( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, VectorW& w, const MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t sbgv( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ VectorW& w, const MatrixZ& z, Workspace work ) {
     return sbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -478,10 +468,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t sbgv( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, VectorW& w, const MatrixZ& z ) {
+inline std::ptrdiff_t sbgv( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ VectorW& w, const MatrixZ& z ) {
     return sbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -494,11 +484,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t sbgv( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, MatrixBB& bb, VectorW& w, const MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t sbgv( const char jobz, const MatrixAB& ab,
+ MatrixBB& bb, VectorW& w, const MatrixZ& z, Workspace work ) {
     return sbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -511,10 +500,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t sbgv( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, MatrixBB& bb, VectorW& w, const MatrixZ& z ) {
+inline std::ptrdiff_t sbgv( const char jobz, const MatrixAB& ab,
+ MatrixBB& bb, VectorW& w, const MatrixZ& z ) {
     return sbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -527,11 +516,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t sbgv( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, VectorW& w, const MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t sbgv( const char jobz, MatrixAB& ab,
+ const MatrixBB& bb, VectorW& w, const MatrixZ& z, Workspace work ) {
     return sbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -544,10 +532,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t sbgv( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, VectorW& w, const MatrixZ& z ) {
+inline std::ptrdiff_t sbgv( const char jobz, MatrixAB& ab,
+ const MatrixBB& bb, VectorW& w, const MatrixZ& z ) {
     return sbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -560,11 +548,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t sbgv( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, VectorW& w, const MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t sbgv( const char jobz, const MatrixAB& ab,
+ const MatrixBB& bb, VectorW& w, const MatrixZ& z, Workspace work ) {
     return sbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -577,11 +564,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t sbgv( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, VectorW& w,
- const MatrixZ& z ) {
+inline std::ptrdiff_t sbgv( const char jobz, const MatrixAB& ab,
+ const MatrixBB& bb, VectorW& w, const MatrixZ& z ) {
     return sbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -594,11 +580,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t sbgv( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, const VectorW& w, const MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t sbgv( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ const VectorW& w, const MatrixZ& z, Workspace work ) {
     return sbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -611,10 +596,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t sbgv( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, const VectorW& w, const MatrixZ& z ) {
+inline std::ptrdiff_t sbgv( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ const VectorW& w, const MatrixZ& z ) {
     return sbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -627,11 +612,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t sbgv( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, MatrixBB& bb, const VectorW& w, const MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t sbgv( const char jobz, const MatrixAB& ab,
+ MatrixBB& bb, const VectorW& w, const MatrixZ& z, Workspace work ) {
     return sbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -644,11 +628,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t sbgv( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, MatrixBB& bb, const VectorW& w,
- const MatrixZ& z ) {
+inline std::ptrdiff_t sbgv( const char jobz, const MatrixAB& ab,
+ MatrixBB& bb, const VectorW& w, const MatrixZ& z ) {
     return sbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -661,11 +644,11 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t sbgv( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, const VectorW& w, const MatrixZ& z,
+inline std::ptrdiff_t sbgv( const char jobz, MatrixAB& ab,
+ const MatrixBB& bb, const VectorW& w, const MatrixZ& z,
         Workspace work ) {
     return sbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -678,11 +661,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t sbgv( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, const VectorW& w,
- const MatrixZ& z ) {
+inline std::ptrdiff_t sbgv( const char jobz, MatrixAB& ab,
+ const MatrixBB& bb, const VectorW& w, const MatrixZ& z ) {
     return sbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -695,11 +677,11 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t sbgv( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, const VectorW& w,
- const MatrixZ& z, Workspace work ) {
+inline std::ptrdiff_t sbgv( const char jobz, const MatrixAB& ab,
+ const MatrixBB& bb, const VectorW& w, const MatrixZ& z,
+ Workspace work ) {
     return sbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -712,11 +694,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t sbgv( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, const VectorW& w,
- const MatrixZ& z ) {
+inline std::ptrdiff_t sbgv( const char jobz, const MatrixAB& ab,
+ const MatrixBB& bb, const VectorW& w, const MatrixZ& z ) {
     return sbgv_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 } // namespace lapack

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbgvd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbgvd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbgvd.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -105,9 +105,8 @@
     //
     template< typename MatrixAB, typename MatrixBB, typename VectorW,
             typename MatrixZ, typename WORK, typename IWORK >
- static std::ptrdiff_t invoke( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, VectorW& w, MatrixZ& z,
- detail::workspace2< WORK, IWORK > work ) {
+ static std::ptrdiff_t invoke( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ VectorW& w, MatrixZ& z, detail::workspace2< WORK, IWORK > work ) {
         typedef typename result_of::data_side< MatrixAB >::type uplo;
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< MatrixAB >::type >::type,
@@ -128,20 +127,20 @@
         BOOST_ASSERT( bandwidth(ab, uplo()) >= 0 );
         BOOST_ASSERT( bandwidth(bb, uplo()) >= 0 );
         BOOST_ASSERT( jobz == 'N' || jobz == 'V' );
- BOOST_ASSERT( n >= 0 );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
- min_size_iwork( jobz, n ));
+ min_size_iwork( jobz, size_column(ab) ));
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_work( jobz,
- n ));
+ size_column(ab) ));
+ BOOST_ASSERT( size_column(ab) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( size_minor(bb) == 1 || stride_minor(bb) == 1 );
         BOOST_ASSERT( size_minor(z) == 1 || stride_minor(z) == 1 );
         BOOST_ASSERT( stride_major(ab) >= bandwidth(ab, uplo())+1 );
         BOOST_ASSERT( stride_major(bb) >= bandwidth(bb, uplo())+1 );
- return detail::sbgvd( jobz, uplo(), n, bandwidth(ab, uplo()),
- bandwidth(bb, uplo()), begin_value(ab), stride_major(ab),
- begin_value(bb), stride_major(bb), begin_value(w),
- begin_value(z), stride_major(z),
+ return detail::sbgvd( jobz, uplo(), size_column(ab), bandwidth(ab,
+ uplo()), bandwidth(bb, uplo()), begin_value(ab),
+ stride_major(ab), begin_value(bb), stride_major(bb),
+ begin_value(w), begin_value(z), stride_major(z),
                 begin_value(work.select(real_type())),
                 size(work.select(real_type())),
                 begin_value(work.select(fortran_int_t())),
@@ -157,16 +156,14 @@
     //
     template< typename MatrixAB, typename MatrixBB, typename VectorW,
             typename MatrixZ >
- static std::ptrdiff_t invoke( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, VectorW& w, MatrixZ& z,
- minimal_workspace work ) {
+ static std::ptrdiff_t invoke( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ VectorW& w, MatrixZ& z, minimal_workspace work ) {
         typedef typename result_of::data_side< MatrixAB >::type uplo;
         bindings::detail::array< real_type > tmp_work( min_size_work( jobz,
- n ) );
+ size_column(ab) ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
- min_size_iwork( jobz, n ) );
- return invoke( jobz, n, ab, bb, w, z, workspace( tmp_work,
- tmp_iwork ) );
+ min_size_iwork( jobz, size_column(ab) ) );
+ return invoke( jobz, ab, bb, w, z, workspace( tmp_work, tmp_iwork ) );
     }
 
     //
@@ -178,23 +175,21 @@
     //
     template< typename MatrixAB, typename MatrixBB, typename VectorW,
             typename MatrixZ >
- static std::ptrdiff_t invoke( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, VectorW& w, MatrixZ& z,
- optimal_workspace work ) {
+ static std::ptrdiff_t invoke( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ VectorW& w, MatrixZ& z, optimal_workspace work ) {
         typedef typename result_of::data_side< MatrixAB >::type uplo;
         real_type opt_size_work;
         fortran_int_t opt_size_iwork;
- detail::sbgvd( jobz, uplo(), n, bandwidth(ab, uplo()),
- bandwidth(bb, uplo()), begin_value(ab), stride_major(ab),
- begin_value(bb), stride_major(bb), begin_value(w),
- begin_value(z), stride_major(z), &opt_size_work, -1,
- &opt_size_iwork, -1 );
+ detail::sbgvd( jobz, uplo(), size_column(ab), bandwidth(ab,
+ uplo()), bandwidth(bb, uplo()), begin_value(ab),
+ stride_major(ab), begin_value(bb), stride_major(bb),
+ begin_value(w), begin_value(z), stride_major(z),
+ &opt_size_work, -1, &opt_size_iwork, -1 );
         bindings::detail::array< real_type > tmp_work(
                 traits::detail::to_int( opt_size_work ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
                 opt_size_iwork );
- return invoke( jobz, n, ab, bb, w, z, workspace( tmp_work,
- tmp_iwork ) );
+ return invoke( jobz, ab, bb, w, z, workspace( tmp_work, tmp_iwork ) );
     }
 
     //
@@ -246,10 +241,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t sbgvd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, VectorW& w, MatrixZ& z, Workspace work ) {
+inline std::ptrdiff_t sbgvd( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ VectorW& w, MatrixZ& z, Workspace work ) {
     return sbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -262,10 +257,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t sbgvd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, VectorW& w, MatrixZ& z ) {
+inline std::ptrdiff_t sbgvd( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ VectorW& w, MatrixZ& z ) {
     return sbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -278,11 +273,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t sbgvd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, MatrixBB& bb, VectorW& w, MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t sbgvd( const char jobz, const MatrixAB& ab,
+ MatrixBB& bb, VectorW& w, MatrixZ& z, Workspace work ) {
     return sbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -295,10 +289,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t sbgvd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, MatrixBB& bb, VectorW& w, MatrixZ& z ) {
+inline std::ptrdiff_t sbgvd( const char jobz, const MatrixAB& ab,
+ MatrixBB& bb, VectorW& w, MatrixZ& z ) {
     return sbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -311,11 +305,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t sbgvd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, VectorW& w, MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t sbgvd( const char jobz, MatrixAB& ab,
+ const MatrixBB& bb, VectorW& w, MatrixZ& z, Workspace work ) {
     return sbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -328,10 +321,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t sbgvd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, VectorW& w, MatrixZ& z ) {
+inline std::ptrdiff_t sbgvd( const char jobz, MatrixAB& ab,
+ const MatrixBB& bb, VectorW& w, MatrixZ& z ) {
     return sbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -344,11 +337,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t sbgvd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, VectorW& w, MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t sbgvd( const char jobz, const MatrixAB& ab,
+ const MatrixBB& bb, VectorW& w, MatrixZ& z, Workspace work ) {
     return sbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -361,10 +353,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t sbgvd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, VectorW& w, MatrixZ& z ) {
+inline std::ptrdiff_t sbgvd( const char jobz, const MatrixAB& ab,
+ const MatrixBB& bb, VectorW& w, MatrixZ& z ) {
     return sbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -377,11 +369,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t sbgvd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, const VectorW& w, MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t sbgvd( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ const VectorW& w, MatrixZ& z, Workspace work ) {
     return sbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -394,10 +385,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t sbgvd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, const VectorW& w, MatrixZ& z ) {
+inline std::ptrdiff_t sbgvd( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ const VectorW& w, MatrixZ& z ) {
     return sbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -410,11 +401,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t sbgvd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, MatrixBB& bb, const VectorW& w, MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t sbgvd( const char jobz, const MatrixAB& ab,
+ MatrixBB& bb, const VectorW& w, MatrixZ& z, Workspace work ) {
     return sbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -427,10 +417,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t sbgvd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, MatrixBB& bb, const VectorW& w, MatrixZ& z ) {
+inline std::ptrdiff_t sbgvd( const char jobz, const MatrixAB& ab,
+ MatrixBB& bb, const VectorW& w, MatrixZ& z ) {
     return sbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -443,11 +433,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t sbgvd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, const VectorW& w, MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t sbgvd( const char jobz, MatrixAB& ab,
+ const MatrixBB& bb, const VectorW& w, MatrixZ& z, Workspace work ) {
     return sbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -460,10 +449,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t sbgvd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, const VectorW& w, MatrixZ& z ) {
+inline std::ptrdiff_t sbgvd( const char jobz, MatrixAB& ab,
+ const MatrixBB& bb, const VectorW& w, MatrixZ& z ) {
     return sbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -476,11 +465,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t sbgvd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, const VectorW& w, MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t sbgvd( const char jobz, const MatrixAB& ab,
+ const MatrixBB& bb, const VectorW& w, MatrixZ& z, Workspace work ) {
     return sbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -493,11 +481,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t sbgvd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, const VectorW& w,
- MatrixZ& z ) {
+inline std::ptrdiff_t sbgvd( const char jobz, const MatrixAB& ab,
+ const MatrixBB& bb, const VectorW& w, MatrixZ& z ) {
     return sbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -510,11 +497,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t sbgvd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, VectorW& w, const MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t sbgvd( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ VectorW& w, const MatrixZ& z, Workspace work ) {
     return sbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -527,10 +513,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t sbgvd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, VectorW& w, const MatrixZ& z ) {
+inline std::ptrdiff_t sbgvd( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ VectorW& w, const MatrixZ& z ) {
     return sbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -543,11 +529,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t sbgvd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, MatrixBB& bb, VectorW& w, const MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t sbgvd( const char jobz, const MatrixAB& ab,
+ MatrixBB& bb, VectorW& w, const MatrixZ& z, Workspace work ) {
     return sbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -560,10 +545,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t sbgvd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, MatrixBB& bb, VectorW& w, const MatrixZ& z ) {
+inline std::ptrdiff_t sbgvd( const char jobz, const MatrixAB& ab,
+ MatrixBB& bb, VectorW& w, const MatrixZ& z ) {
     return sbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -576,11 +561,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t sbgvd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, VectorW& w, const MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t sbgvd( const char jobz, MatrixAB& ab,
+ const MatrixBB& bb, VectorW& w, const MatrixZ& z, Workspace work ) {
     return sbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -593,10 +577,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t sbgvd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, VectorW& w, const MatrixZ& z ) {
+inline std::ptrdiff_t sbgvd( const char jobz, MatrixAB& ab,
+ const MatrixBB& bb, VectorW& w, const MatrixZ& z ) {
     return sbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -609,11 +593,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t sbgvd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, VectorW& w, const MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t sbgvd( const char jobz, const MatrixAB& ab,
+ const MatrixBB& bb, VectorW& w, const MatrixZ& z, Workspace work ) {
     return sbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -626,11 +609,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t sbgvd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, VectorW& w,
- const MatrixZ& z ) {
+inline std::ptrdiff_t sbgvd( const char jobz, const MatrixAB& ab,
+ const MatrixBB& bb, VectorW& w, const MatrixZ& z ) {
     return sbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -643,11 +625,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t sbgvd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, const VectorW& w, const MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t sbgvd( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ const VectorW& w, const MatrixZ& z, Workspace work ) {
     return sbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -660,10 +641,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t sbgvd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, MatrixBB& bb, const VectorW& w, const MatrixZ& z ) {
+inline std::ptrdiff_t sbgvd( const char jobz, MatrixAB& ab, MatrixBB& bb,
+ const VectorW& w, const MatrixZ& z ) {
     return sbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -676,11 +657,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t sbgvd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, MatrixBB& bb, const VectorW& w, const MatrixZ& z,
- Workspace work ) {
+inline std::ptrdiff_t sbgvd( const char jobz, const MatrixAB& ab,
+ MatrixBB& bb, const VectorW& w, const MatrixZ& z, Workspace work ) {
     return sbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -693,11 +673,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t sbgvd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, MatrixBB& bb, const VectorW& w,
- const MatrixZ& z ) {
+inline std::ptrdiff_t sbgvd( const char jobz, const MatrixAB& ab,
+ MatrixBB& bb, const VectorW& w, const MatrixZ& z ) {
     return sbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -710,11 +689,11 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t sbgvd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, const VectorW& w, const MatrixZ& z,
+inline std::ptrdiff_t sbgvd( const char jobz, MatrixAB& ab,
+ const MatrixBB& bb, const VectorW& w, const MatrixZ& z,
         Workspace work ) {
     return sbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -727,11 +706,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t sbgvd( const char jobz, const fortran_int_t n,
- MatrixAB& ab, const MatrixBB& bb, const VectorW& w,
- const MatrixZ& z ) {
+inline std::ptrdiff_t sbgvd( const char jobz, MatrixAB& ab,
+ const MatrixBB& bb, const VectorW& w, const MatrixZ& z ) {
     return sbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 //
@@ -744,11 +722,11 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ, typename Workspace >
-inline std::ptrdiff_t sbgvd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, const VectorW& w,
- const MatrixZ& z, Workspace work ) {
+inline std::ptrdiff_t sbgvd( const char jobz, const MatrixAB& ab,
+ const MatrixBB& bb, const VectorW& w, const MatrixZ& z,
+ Workspace work ) {
     return sbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, work );
+ ab, bb, w, z, work );
 }
 
 //
@@ -761,11 +739,10 @@
 //
 template< typename MatrixAB, typename MatrixBB, typename VectorW,
         typename MatrixZ >
-inline std::ptrdiff_t sbgvd( const char jobz, const fortran_int_t n,
- const MatrixAB& ab, const MatrixBB& bb, const VectorW& w,
- const MatrixZ& z ) {
+inline std::ptrdiff_t sbgvd( const char jobz, const MatrixAB& ab,
+ const MatrixBB& bb, const VectorW& w, const MatrixZ& z ) {
     return sbgvd_impl< typename value< MatrixAB >::type >::invoke( jobz,
- n, ab, bb, w, z, optimal_workspace() );
+ ab, bb, w, z, optimal_workspace() );
 }
 
 } // namespace lapack

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbgvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbgvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbgvx.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -110,12 +110,11 @@
             typename VectorW, typename MatrixZ, typename VectorIFAIL,
             typename WORK, typename IWORK >
     static std::ptrdiff_t invoke( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
- const real_type vl, const real_type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const real_type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, VectorIFAIL& ifail, detail::workspace2< WORK,
- IWORK > work ) {
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q, const real_type vl,
+ const real_type vu, const fortran_int_t il,
+ const fortran_int_t iu, const real_type abstol,
+ fortran_int_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail,
+ detail::workspace2< WORK, IWORK > work ) {
         typedef typename result_of::data_side< MatrixAB >::type uplo;
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< MatrixAB >::type >::type,
@@ -142,22 +141,23 @@
         BOOST_ASSERT( bandwidth(ab, uplo()) >= 0 );
         BOOST_ASSERT( bandwidth(bb, uplo()) >= 0 );
         BOOST_ASSERT( jobz == 'N' || jobz == 'V' );
- BOOST_ASSERT( n >= 0 );
         BOOST_ASSERT( range == 'A' || range == 'V' || range == 'I' );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
- min_size_iwork( n ));
- BOOST_ASSERT( size(work.select(real_type())) >= min_size_work( n ));
+ min_size_iwork( size_column(ab) ));
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
+ size_column(ab) ));
+ BOOST_ASSERT( size_column(ab) >= 0 );
         BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
         BOOST_ASSERT( size_minor(bb) == 1 || stride_minor(bb) == 1 );
         BOOST_ASSERT( size_minor(q) == 1 || stride_minor(q) == 1 );
         BOOST_ASSERT( size_minor(z) == 1 || stride_minor(z) == 1 );
         BOOST_ASSERT( stride_major(ab) >= bandwidth(ab, uplo())+1 );
         BOOST_ASSERT( stride_major(bb) >= bandwidth(bb, uplo())+1 );
- return detail::sbgvx( jobz, range, uplo(), n, bandwidth(ab, uplo()),
- bandwidth(bb, uplo()), begin_value(ab), stride_major(ab),
- begin_value(bb), stride_major(bb), begin_value(q),
- stride_major(q), vl, vu, il, iu, abstol, m, begin_value(w),
- begin_value(z), stride_major(z),
+ return detail::sbgvx( jobz, range, uplo(), size_column(ab),
+ bandwidth(ab, uplo()), bandwidth(bb, uplo()), begin_value(ab),
+ stride_major(ab), begin_value(bb), stride_major(bb),
+ begin_value(q), stride_major(q), vl, vu, il, iu, abstol, m,
+ begin_value(w), begin_value(z), stride_major(z),
                 begin_value(work.select(real_type())),
                 begin_value(work.select(fortran_int_t())),
                 begin_value(ifail) );
@@ -173,17 +173,18 @@
     template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
             typename VectorW, typename MatrixZ, typename VectorIFAIL >
     static std::ptrdiff_t invoke( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
- const real_type vl, const real_type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const real_type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, VectorIFAIL& ifail, minimal_workspace work ) {
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q, const real_type vl,
+ const real_type vu, const fortran_int_t il,
+ const fortran_int_t iu, const real_type abstol,
+ fortran_int_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail,
+ minimal_workspace work ) {
         typedef typename result_of::data_side< MatrixAB >::type uplo;
- bindings::detail::array< real_type > tmp_work( min_size_work( n ) );
+ bindings::detail::array< real_type > tmp_work( min_size_work(
+ size_column(ab) ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
- min_size_iwork( n ) );
- return invoke( jobz, range, n, ab, bb, q, vl, vu, il, iu, abstol, m,
- w, z, ifail, workspace( tmp_work, tmp_iwork ) );
+ min_size_iwork( size_column(ab) ) );
+ return invoke( jobz, range, ab, bb, q, vl, vu, il, iu, abstol, m, w,
+ z, ifail, workspace( tmp_work, tmp_iwork ) );
     }
 
     //
@@ -196,14 +197,14 @@
     template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
             typename VectorW, typename MatrixZ, typename VectorIFAIL >
     static std::ptrdiff_t invoke( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
- const real_type vl, const real_type vu,
- const fortran_int_t il, const fortran_int_t iu,
- const real_type abstol, fortran_int_t& m, VectorW& w,
- MatrixZ& z, VectorIFAIL& ifail, optimal_workspace work ) {
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q, const real_type vl,
+ const real_type vu, const fortran_int_t il,
+ const fortran_int_t iu, const real_type abstol,
+ fortran_int_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail,
+ optimal_workspace work ) {
         typedef typename result_of::data_side< MatrixAB >::type uplo;
- return invoke( jobz, range, n, ab, bb, q, vl, vu, il, iu, abstol, m,
- w, z, ifail, minimal_workspace() );
+ return invoke( jobz, range, ab, bb, q, vl, vu, il, iu, abstol, m, w,
+ z, ifail, minimal_workspace() );
     }
 
     //
@@ -247,7 +248,7 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
         const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
@@ -256,8 +257,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -273,7 +273,7 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
         const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
@@ -282,7 +282,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -300,8 +300,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -309,8 +309,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -326,8 +325,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -335,7 +334,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -353,8 +352,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -362,8 +361,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -379,8 +377,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -388,7 +386,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -406,8 +404,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -415,8 +413,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -432,8 +429,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -441,7 +438,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -459,8 +456,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -468,8 +465,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -485,8 +481,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -494,7 +490,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -512,8 +508,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -521,8 +517,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -538,8 +533,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -547,7 +542,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -565,8 +560,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -574,8 +569,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -591,8 +585,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -600,7 +594,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -618,8 +612,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -627,8 +621,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -644,8 +637,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -653,7 +646,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -671,7 +664,7 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
         const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
@@ -680,8 +673,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -697,7 +689,7 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
         const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
@@ -706,7 +698,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -724,8 +716,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -733,8 +725,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -750,8 +741,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -759,7 +750,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -777,8 +768,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -786,8 +777,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -803,8 +793,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -812,7 +802,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -830,8 +820,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -839,8 +829,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -856,8 +845,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -865,7 +854,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -883,8 +872,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -892,8 +881,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -909,8 +897,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -918,7 +906,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -936,8 +924,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -945,8 +933,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -962,8 +949,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -971,7 +958,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -989,8 +976,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -998,8 +985,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1015,8 +1001,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1024,7 +1010,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1042,8 +1028,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1051,8 +1037,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1068,8 +1053,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1077,7 +1062,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1095,7 +1080,7 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
         const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
@@ -1104,8 +1089,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1121,7 +1105,7 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
         const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
@@ -1130,7 +1114,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1148,8 +1132,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1157,8 +1141,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1174,8 +1157,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1183,7 +1166,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1201,8 +1184,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1210,8 +1193,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1227,8 +1209,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1236,7 +1218,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1254,8 +1236,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1263,8 +1245,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1280,8 +1261,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1289,7 +1270,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1307,8 +1288,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1316,8 +1297,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1333,8 +1313,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1342,7 +1322,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1360,8 +1340,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1369,8 +1349,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1386,8 +1365,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1395,7 +1374,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1413,8 +1392,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1422,8 +1401,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1439,8 +1417,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1448,7 +1426,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1466,8 +1444,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1475,8 +1453,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1492,8 +1469,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1501,7 +1478,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1519,7 +1496,7 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
         const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
@@ -1529,8 +1506,7 @@
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail,
         Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1546,7 +1522,7 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
         const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
@@ -1555,7 +1531,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1573,8 +1549,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1583,8 +1559,7 @@
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail,
         Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1600,8 +1575,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1609,7 +1584,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1627,8 +1602,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1637,8 +1612,7 @@
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail,
         Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1654,8 +1628,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1663,7 +1637,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1681,8 +1655,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1691,8 +1665,7 @@
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail,
         Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1708,8 +1681,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1717,7 +1690,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1735,8 +1708,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1745,8 +1718,7 @@
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail,
         Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1762,8 +1734,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1771,7 +1743,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1789,8 +1761,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1799,8 +1771,7 @@
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail,
         Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1816,8 +1787,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1825,7 +1796,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1843,8 +1814,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1853,8 +1824,7 @@
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail,
         Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1870,8 +1840,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1879,7 +1849,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1897,8 +1867,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1907,8 +1877,7 @@
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail,
         Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1924,8 +1893,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -1933,7 +1902,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -1951,7 +1920,7 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
         const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
@@ -1960,8 +1929,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -1977,7 +1945,7 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
         const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
@@ -1986,7 +1954,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2004,8 +1972,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2013,8 +1981,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2030,8 +1997,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2039,7 +2006,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2057,8 +2024,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2066,8 +2033,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2083,8 +2049,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2092,7 +2058,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2110,8 +2076,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2119,8 +2085,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2136,8 +2101,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2145,7 +2110,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2163,8 +2128,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2172,8 +2137,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2189,8 +2153,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2198,7 +2162,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2216,8 +2180,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2225,8 +2189,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2242,8 +2205,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2251,7 +2214,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2269,8 +2232,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2278,8 +2241,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2295,8 +2257,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2304,7 +2266,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2322,8 +2284,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2331,8 +2293,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2348,8 +2309,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2357,7 +2318,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2375,7 +2336,7 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
         const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
@@ -2385,8 +2346,7 @@
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2402,7 +2362,7 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
         const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
@@ -2411,7 +2371,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2429,8 +2389,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2439,8 +2399,7 @@
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2456,8 +2415,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2465,7 +2424,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2483,8 +2442,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2493,8 +2452,7 @@
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2510,8 +2468,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2519,7 +2477,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2537,8 +2495,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2547,8 +2505,7 @@
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2564,8 +2521,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2573,7 +2530,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2591,8 +2548,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2601,8 +2558,7 @@
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2618,8 +2574,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2627,7 +2583,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2645,8 +2601,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2655,8 +2611,7 @@
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2672,8 +2627,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2681,7 +2636,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2699,8 +2654,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2709,8 +2664,7 @@
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2726,8 +2680,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2735,7 +2689,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2753,8 +2707,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2763,8 +2717,7 @@
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2780,8 +2733,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2789,7 +2742,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2807,7 +2760,7 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
         const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
@@ -2816,8 +2769,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2833,7 +2785,7 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
         const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
@@ -2842,7 +2794,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2860,8 +2812,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2869,8 +2821,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2886,8 +2837,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2895,7 +2846,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2913,8 +2864,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2922,8 +2873,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2939,8 +2889,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2948,7 +2898,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -2966,8 +2916,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -2975,8 +2925,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -2992,8 +2941,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3001,7 +2950,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -3019,8 +2968,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3028,8 +2977,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -3045,8 +2993,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3054,7 +3002,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -3072,8 +3020,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3081,8 +3029,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -3098,8 +3045,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3107,7 +3054,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -3125,8 +3072,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3134,8 +3081,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -3151,8 +3097,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3160,7 +3106,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -3178,8 +3124,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3187,8 +3133,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -3204,8 +3149,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3213,7 +3158,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -3231,7 +3176,7 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
         const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
@@ -3241,8 +3186,7 @@
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -3258,7 +3202,7 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
         const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
@@ -3267,7 +3211,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -3285,8 +3229,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3295,8 +3239,7 @@
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -3312,8 +3255,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3321,7 +3264,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -3339,8 +3282,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3349,8 +3292,7 @@
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -3366,8 +3308,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3375,7 +3317,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -3393,8 +3335,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3403,8 +3345,7 @@
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -3420,8 +3361,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3429,7 +3370,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -3447,8 +3388,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3457,8 +3398,7 @@
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -3474,8 +3414,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3483,7 +3423,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -3501,8 +3441,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3511,8 +3451,7 @@
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -3528,8 +3467,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3537,7 +3476,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -3555,8 +3494,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3565,8 +3504,7 @@
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -3582,8 +3520,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3591,7 +3529,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -3609,8 +3547,8 @@
         typename VectorW, typename MatrixZ, typename VectorIFAIL,
         typename Workspace >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3619,8 +3557,7 @@
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
- work );
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -3636,8 +3573,8 @@
 template< typename MatrixAB, typename MatrixBB, typename MatrixQ,
         typename VectorW, typename MatrixZ, typename VectorIFAIL >
 inline std::ptrdiff_t sbgvx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAB& ab, const MatrixBB& bb,
- const MatrixQ& q, const typename remove_imaginary< typename value<
+ const MatrixAB& ab, const MatrixBB& bb, const MatrixQ& q,
+ const typename remove_imaginary< typename value<
         MatrixAB >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAB >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -3645,7 +3582,7 @@
         MatrixAB >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return sbgvx_impl< typename value< MatrixAB >::type >::invoke( jobz,
- range, n, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ab, bb, q, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sgesv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sgesv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sgesv.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -93,27 +93,27 @@
                 MatrixX >::type >::type >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorIPIV >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< MatrixX >::value) );
- BOOST_ASSERT( size(ipiv) >= size_column(a) );
+ BOOST_ASSERT( size(ipiv) >= stride_major(work) );
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_swork(
- size_column(a), size_column(b) ));
+ stride_major(work), size_column(b) ));
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
                 $CALL_MIN_SIZE ));
- BOOST_ASSERT( size_column(a) >= 0 );
         BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_minor(x) == 1 || stride_minor(x) == 1 );
         BOOST_ASSERT( stride_major(a) >= std::max< std::ptrdiff_t >(1,
- size_column(a)) );
+ stride_major(work)) );
         BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
- size_column(a)) );
+ stride_major(work)) );
+ BOOST_ASSERT( stride_major(work) >= 0 );
         BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,
- size_column(a)) );
- return detail::sgesv( size_column(a), size_column(b), begin_value(a),
- stride_major(a), begin_value(ipiv), begin_value(b),
- stride_major(b), begin_value(x), stride_major(x),
- begin_value(work), begin_value(work.select(real_type())),
- iter );
+ stride_major(work)) );
+ return detail::sgesv( stride_major(work), size_column(b),
+ begin_value(a), stride_major(a), begin_value(ipiv),
+ begin_value(b), stride_major(b), begin_value(x),
+ stride_major(x), begin_value(work),
+ begin_value(work.select(real_type())), iter );
     }
 
     //
@@ -131,7 +131,7 @@
         bindings::detail::array< real_type > tmp_work( min_size_work(
                 $CALL_MIN_SIZE ) );
         bindings::detail::array< real_type > tmp_swork( min_size_swork(
- size_column(a), size_column(b) ) );
+ stride_major(work), size_column(b) ) );
         return invoke( a, ipiv, b, x, iter, workspace( tmp_work, tmp_swork ) );
     }
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spevx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spevx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spevx.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -102,11 +102,11 @@
     template< typename MatrixAP, typename VectorW, typename MatrixZ,
             typename VectorIFAIL, typename WORK, typename IWORK >
     static std::ptrdiff_t invoke( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap, const real_type vl,
- const real_type vu, const fortran_int_t il,
- const fortran_int_t iu, const real_type abstol,
- fortran_int_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail,
- detail::workspace2< WORK, IWORK > work ) {
+ MatrixAP& ap, const real_type vl, const real_type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const real_type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, VectorIFAIL& ifail, detail::workspace2< WORK,
+ IWORK > work ) {
         typedef typename result_of::data_side< MatrixAP >::type uplo;
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< MatrixAP >::type >::type,
@@ -121,15 +121,17 @@
         BOOST_STATIC_ASSERT( (is_mutable< MatrixZ >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorIFAIL >::value) );
         BOOST_ASSERT( jobz == 'N' || jobz == 'V' );
- BOOST_ASSERT( n >= 0 );
         BOOST_ASSERT( range == 'A' || range == 'V' || range == 'I' );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
- min_size_iwork( n ));
- BOOST_ASSERT( size(work.select(real_type())) >= min_size_work( n ));
+ min_size_iwork( size_column(ap) ));
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
+ size_column(ap) ));
+ BOOST_ASSERT( size_column(ap) >= 0 );
         BOOST_ASSERT( size_minor(z) == 1 || stride_minor(z) == 1 );
- return detail::spevx( jobz, range, uplo(), n, begin_value(ap), vl, vu,
- il, iu, abstol, m, begin_value(w), begin_value(z),
- stride_major(z), begin_value(work.select(real_type())),
+ return detail::spevx( jobz, range, uplo(), size_column(ap),
+ begin_value(ap), vl, vu, il, iu, abstol, m, begin_value(w),
+ begin_value(z), stride_major(z),
+ begin_value(work.select(real_type())),
                 begin_value(work.select(fortran_int_t())),
                 begin_value(ifail) );
     }
@@ -144,16 +146,16 @@
     template< typename MatrixAP, typename VectorW, typename MatrixZ,
             typename VectorIFAIL >
     static std::ptrdiff_t invoke( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap, const real_type vl,
- const real_type vu, const fortran_int_t il,
- const fortran_int_t iu, const real_type abstol,
- fortran_int_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail,
- minimal_workspace work ) {
+ MatrixAP& ap, const real_type vl, const real_type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const real_type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, VectorIFAIL& ifail, minimal_workspace work ) {
         typedef typename result_of::data_side< MatrixAP >::type uplo;
- bindings::detail::array< real_type > tmp_work( min_size_work( n ) );
+ bindings::detail::array< real_type > tmp_work( min_size_work(
+ size_column(ap) ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
- min_size_iwork( n ) );
- return invoke( jobz, range, n, ap, vl, vu, il, iu, abstol, m, w, z,
+ min_size_iwork( size_column(ap) ) );
+ return invoke( jobz, range, ap, vl, vu, il, iu, abstol, m, w, z,
                 ifail, workspace( tmp_work, tmp_iwork ) );
     }
 
@@ -167,13 +169,12 @@
     template< typename MatrixAP, typename VectorW, typename MatrixZ,
             typename VectorIFAIL >
     static std::ptrdiff_t invoke( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap, const real_type vl,
- const real_type vu, const fortran_int_t il,
- const fortran_int_t iu, const real_type abstol,
- fortran_int_t& m, VectorW& w, MatrixZ& z, VectorIFAIL& ifail,
- optimal_workspace work ) {
+ MatrixAP& ap, const real_type vl, const real_type vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const real_type abstol, fortran_int_t& m, VectorW& w,
+ MatrixZ& z, VectorIFAIL& ifail, optimal_workspace work ) {
         typedef typename result_of::data_side< MatrixAP >::type uplo;
- return invoke( jobz, range, n, ap, vl, vu, il, iu, abstol, m, w, z,
+ return invoke( jobz, range, ap, vl, vu, il, iu, abstol, m, w, z,
                 ifail, minimal_workspace() );
     }
 
@@ -215,8 +216,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t spevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -224,7 +224,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return spevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -238,8 +238,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL >
 inline std::ptrdiff_t spevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -247,7 +246,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail ) {
     return spevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -262,8 +261,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t spevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ const MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -271,7 +269,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return spevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -285,8 +283,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL >
 inline std::ptrdiff_t spevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ const MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -294,7 +291,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, VectorIFAIL& ifail ) {
     return spevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -309,8 +306,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t spevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -318,7 +314,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return spevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -332,8 +328,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL >
 inline std::ptrdiff_t spevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -341,7 +336,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return spevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -356,8 +351,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t spevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ const MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -365,7 +359,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return spevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -379,8 +373,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL >
 inline std::ptrdiff_t spevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ const MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -388,7 +381,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, VectorIFAIL& ifail ) {
     return spevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -403,8 +396,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t spevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -412,7 +404,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return spevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -426,8 +418,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL >
 inline std::ptrdiff_t spevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -435,7 +426,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail ) {
     return spevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -450,8 +441,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t spevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ const MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -459,7 +449,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail, Workspace work ) {
     return spevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -473,8 +463,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL >
 inline std::ptrdiff_t spevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ const MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -482,7 +471,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, VectorIFAIL& ifail ) {
     return spevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -497,8 +486,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t spevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -507,7 +495,7 @@
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail,
         Workspace work ) {
     return spevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -521,8 +509,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL >
 inline std::ptrdiff_t spevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -530,7 +517,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return spevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -545,8 +532,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t spevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ const MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -555,7 +541,7 @@
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail,
         Workspace work ) {
     return spevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -569,8 +555,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL >
 inline std::ptrdiff_t spevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ const MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -578,7 +563,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, VectorIFAIL& ifail ) {
     return spevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -593,8 +578,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t spevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -602,7 +586,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return spevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -616,8 +600,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL >
 inline std::ptrdiff_t spevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -625,7 +608,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail ) {
     return spevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -640,8 +623,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t spevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ const MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -649,7 +631,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return spevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -663,8 +645,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL >
 inline std::ptrdiff_t spevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ const MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -672,7 +653,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         MatrixZ& z, const VectorIFAIL& ifail ) {
     return spevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -687,8 +668,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t spevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -697,7 +677,7 @@
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return spevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -711,8 +691,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL >
 inline std::ptrdiff_t spevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -720,7 +699,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return spevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -735,8 +714,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t spevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ const MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -745,7 +723,7 @@
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return spevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -759,8 +737,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL >
 inline std::ptrdiff_t spevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ const MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -768,7 +745,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, MatrixZ& z, const VectorIFAIL& ifail ) {
     return spevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -783,8 +760,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t spevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -792,7 +768,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return spevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -806,8 +782,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL >
 inline std::ptrdiff_t spevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -815,7 +790,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail ) {
     return spevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -830,8 +805,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t spevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ const MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -839,7 +813,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail, Workspace work ) {
     return spevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -853,8 +827,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL >
 inline std::ptrdiff_t spevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ const MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -862,7 +835,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m, VectorW& w,
         const MatrixZ& z, const VectorIFAIL& ifail ) {
     return spevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -877,8 +850,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t spevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -887,7 +859,7 @@
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return spevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -901,8 +873,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL >
 inline std::ptrdiff_t spevx( const char jobz, const char range,
- const fortran_int_t n, MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -910,7 +881,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return spevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 
@@ -925,8 +896,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL, typename Workspace >
 inline std::ptrdiff_t spevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ const MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -935,7 +905,7 @@
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail,
         Workspace work ) {
     return spevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail, work );
 }
 
 //
@@ -949,8 +919,7 @@
 template< typename MatrixAP, typename VectorW, typename MatrixZ,
         typename VectorIFAIL >
 inline std::ptrdiff_t spevx( const char jobz, const char range,
- const fortran_int_t n, const MatrixAP& ap,
- const typename remove_imaginary< typename value<
+ const MatrixAP& ap, const typename remove_imaginary< typename value<
         MatrixAP >::type >::type vl, const typename remove_imaginary<
         typename value< MatrixAP >::type >::type vu,
         const fortran_int_t il, const fortran_int_t iu,
@@ -958,7 +927,7 @@
         MatrixAP >::type >::type abstol, fortran_int_t& m,
         const VectorW& w, const MatrixZ& z, const VectorIFAIL& ifail ) {
     return spevx_impl< typename value< MatrixAP >::type >::invoke( jobz,
- range, n, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
+ range, ap, vl, vu, il, iu, abstol, m, w, z, ifail,
             optimal_workspace() );
 }
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sposv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sposv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sposv.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -95,21 +95,21 @@
                 MatrixX >::type >::type >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< MatrixX >::value) );
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_swork(
- size_column(a), size_column(b) ));
+ stride_major(work), size_column(b) ));
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
                 $CALL_MIN_SIZE ));
- BOOST_ASSERT( size_column(a) >= 0 );
         BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_minor(x) == 1 || stride_minor(x) == 1 );
         BOOST_ASSERT( stride_major(a) >= std::max< std::ptrdiff_t >(1,
- size_column(a)) );
+ stride_major(work)) );
         BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
- size_column(a)) );
+ stride_major(work)) );
+ BOOST_ASSERT( stride_major(work) >= 0 );
         BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,
- size_column(a)) );
- return detail::sposv( uplo(), size_column(a), size_column(b),
+ stride_major(work)) );
+ return detail::sposv( uplo(), stride_major(work), size_column(b),
                 begin_value(a), stride_major(a), begin_value(b),
                 stride_major(b), begin_value(x), stride_major(x),
                 begin_value(work), begin_value(work.select(real_type())),
@@ -130,7 +130,7 @@
         bindings::detail::array< real_type > tmp_work( min_size_work(
                 $CALL_MIN_SIZE ) );
         bindings::detail::array< real_type > tmp_swork( min_size_swork(
- size_column(a), size_column(b) ) );
+ stride_major(work), size_column(b) ) );
         return invoke( a, b, x, iter, workspace( tmp_work, tmp_swork ) );
     }
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spsvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spsvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spsvx.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -177,20 +177,20 @@
         BOOST_STATIC_ASSERT( (is_mutable< VectorFERR >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorBERR >::value) );
         BOOST_ASSERT( fact == 'F' || fact == 'N' );
- BOOST_ASSERT( size(berr) >= size_column(x) );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
                 min_size_iwork( size_column(ap) ));
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
                 size_column(ap) ));
         BOOST_ASSERT( size_column(ap) >= 0 );
- BOOST_ASSERT( size_column(x) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_minor(x) == 1 || stride_minor(x) == 1 );
         BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
                 size_column(ap)) );
         BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,
                 size_column(ap)) );
- return detail::spsvx( fact, uplo(), size_column(ap), size_column(x),
+ return detail::spsvx( fact, uplo(), size_column(ap), size_column(b),
                 begin_value(ap), begin_value(afp), begin_value(ipiv),
                 begin_value(b), stride_major(b), begin_value(x),
                 stride_major(x), rcond, begin_value(ferr), begin_value(berr),
@@ -302,20 +302,20 @@
         BOOST_STATIC_ASSERT( (is_mutable< VectorFERR >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorBERR >::value) );
         BOOST_ASSERT( fact == 'F' || fact == 'N' );
- BOOST_ASSERT( size(berr) >= size_column(x) );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork(
                 size_column(ap) ));
         BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
                 size_column(ap) ));
         BOOST_ASSERT( size_column(ap) >= 0 );
- BOOST_ASSERT( size_column(x) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
         BOOST_ASSERT( size_minor(x) == 1 || stride_minor(x) == 1 );
         BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
                 size_column(ap)) );
         BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,
                 size_column(ap)) );
- return detail::spsvx( fact, uplo(), size_column(ap), size_column(x),
+ return detail::spsvx( fact, uplo(), size_column(ap), size_column(b),
                 begin_value(ap), begin_value(afp), begin_value(ipiv),
                 begin_value(b), stride_major(b), begin_value(x),
                 stride_major(x), rcond, begin_value(ferr), begin_value(berr),

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sygvd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sygvd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sygvd.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -101,8 +101,8 @@
     template< typename MatrixA, typename MatrixB, typename VectorW,
             typename WORK, typename IWORK >
     static std::ptrdiff_t invoke( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorW& w, detail::workspace2< WORK, IWORK > work ) {
+ const char jobz, MatrixA& a, MatrixB& b, VectorW& w,
+ detail::workspace2< WORK, IWORK > work ) {
         typedef typename result_of::data_side< MatrixA >::type uplo;
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< MatrixA >::type >::type,
@@ -116,18 +116,21 @@
         BOOST_STATIC_ASSERT( (is_mutable< MatrixB >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorW >::value) );
         BOOST_ASSERT( jobz == 'N' || jobz == 'V' );
- BOOST_ASSERT( n >= 0 );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
- min_size_iwork( jobz, n ));
+ min_size_iwork( jobz, size_column(a) ));
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_work( jobz,
- n ));
+ size_column(a) ));
+ BOOST_ASSERT( size_column(a) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
- BOOST_ASSERT( stride_major(a) >= std::max< std::ptrdiff_t >(1,n) );
- BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,n) );
- return detail::sygvd( itype, jobz, uplo(), n, begin_value(a),
- stride_major(a), begin_value(b), stride_major(b),
- begin_value(w), begin_value(work.select(real_type())),
+ BOOST_ASSERT( stride_major(a) >= std::max< std::ptrdiff_t >(1,
+ size_column(a)) );
+ BOOST_ASSERT( stride_major(b) >= std::max< std::ptrdiff_t >(1,
+ size_column(a)) );
+ return detail::sygvd( itype, jobz, uplo(), size_column(a),
+ begin_value(a), stride_major(a), begin_value(b),
+ stride_major(b), begin_value(w),
+ begin_value(work.select(real_type())),
                 size(work.select(real_type())),
                 begin_value(work.select(fortran_int_t())),
                 size(work.select(fortran_int_t())) );
@@ -142,14 +145,14 @@
     //
     template< typename MatrixA, typename MatrixB, typename VectorW >
     static std::ptrdiff_t invoke( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorW& w, minimal_workspace work ) {
+ const char jobz, MatrixA& a, MatrixB& b, VectorW& w,
+ minimal_workspace work ) {
         typedef typename result_of::data_side< MatrixA >::type uplo;
         bindings::detail::array< real_type > tmp_work( min_size_work( jobz,
- n ) );
+ size_column(a) ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
- min_size_iwork( jobz, n ) );
- return invoke( itype, jobz, n, a, b, w, workspace( tmp_work,
+ min_size_iwork( jobz, size_column(a) ) );
+ return invoke( itype, jobz, a, b, w, workspace( tmp_work,
                 tmp_iwork ) );
     }
 
@@ -162,19 +165,20 @@
     //
     template< typename MatrixA, typename MatrixB, typename VectorW >
     static std::ptrdiff_t invoke( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, MatrixA& a,
- MatrixB& b, VectorW& w, optimal_workspace work ) {
+ const char jobz, MatrixA& a, MatrixB& b, VectorW& w,
+ optimal_workspace work ) {
         typedef typename result_of::data_side< MatrixA >::type uplo;
         real_type opt_size_work;
         fortran_int_t opt_size_iwork;
- detail::sygvd( itype, jobz, uplo(), n, begin_value(a),
- stride_major(a), begin_value(b), stride_major(b),
- begin_value(w), &opt_size_work, -1, &opt_size_iwork, -1 );
+ detail::sygvd( itype, jobz, uplo(), size_column(a),
+ begin_value(a), stride_major(a), begin_value(b),
+ stride_major(b), begin_value(w), &opt_size_work, -1,
+ &opt_size_iwork, -1 );
         bindings::detail::array< real_type > tmp_work(
                 traits::detail::to_int( opt_size_work ) );
         bindings::detail::array< fortran_int_t > tmp_iwork(
                 opt_size_iwork );
- return invoke( itype, jobz, n, a, b, w, workspace( tmp_work,
+ return invoke( itype, jobz, a, b, w, workspace( tmp_work,
                 tmp_iwork ) );
     }
 
@@ -227,10 +231,9 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename Workspace >
 inline std::ptrdiff_t sygvd( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, MatrixA& a, MatrixB& b,
- VectorW& w, Workspace work ) {
+ const char jobz, MatrixA& a, MatrixB& b, VectorW& w, Workspace work ) {
     return sygvd_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, n, a, b, w, work );
+ jobz, a, b, w, work );
 }
 
 //
@@ -242,10 +245,9 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorW >
 inline std::ptrdiff_t sygvd( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, MatrixA& a, MatrixB& b,
- VectorW& w ) {
+ const char jobz, MatrixA& a, MatrixB& b, VectorW& w ) {
     return sygvd_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, n, a, b, w, optimal_workspace() );
+ jobz, a, b, w, optimal_workspace() );
 }
 
 //
@@ -258,10 +260,10 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename Workspace >
 inline std::ptrdiff_t sygvd( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, const MatrixA& a,
- MatrixB& b, VectorW& w, Workspace work ) {
+ const char jobz, const MatrixA& a, MatrixB& b, VectorW& w,
+ Workspace work ) {
     return sygvd_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, n, a, b, w, work );
+ jobz, a, b, w, work );
 }
 
 //
@@ -273,10 +275,9 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorW >
 inline std::ptrdiff_t sygvd( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, const MatrixA& a,
- MatrixB& b, VectorW& w ) {
+ const char jobz, const MatrixA& a, MatrixB& b, VectorW& w ) {
     return sygvd_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, n, a, b, w, optimal_workspace() );
+ jobz, a, b, w, optimal_workspace() );
 }
 
 //
@@ -289,10 +290,10 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename Workspace >
 inline std::ptrdiff_t sygvd( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorW& w, Workspace work ) {
+ const char jobz, MatrixA& a, const MatrixB& b, VectorW& w,
+ Workspace work ) {
     return sygvd_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, n, a, b, w, work );
+ jobz, a, b, w, work );
 }
 
 //
@@ -304,10 +305,9 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorW >
 inline std::ptrdiff_t sygvd( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, VectorW& w ) {
+ const char jobz, MatrixA& a, const MatrixB& b, VectorW& w ) {
     return sygvd_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, n, a, b, w, optimal_workspace() );
+ jobz, a, b, w, optimal_workspace() );
 }
 
 //
@@ -320,10 +320,10 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename Workspace >
 inline std::ptrdiff_t sygvd( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, const MatrixA& a,
- const MatrixB& b, VectorW& w, Workspace work ) {
+ const char jobz, const MatrixA& a, const MatrixB& b, VectorW& w,
+ Workspace work ) {
     return sygvd_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, n, a, b, w, work );
+ jobz, a, b, w, work );
 }
 
 //
@@ -335,10 +335,9 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorW >
 inline std::ptrdiff_t sygvd( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, const MatrixA& a,
- const MatrixB& b, VectorW& w ) {
+ const char jobz, const MatrixA& a, const MatrixB& b, VectorW& w ) {
     return sygvd_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, n, a, b, w, optimal_workspace() );
+ jobz, a, b, w, optimal_workspace() );
 }
 
 //
@@ -351,10 +350,10 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename Workspace >
 inline std::ptrdiff_t sygvd( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, MatrixA& a, MatrixB& b,
- const VectorW& w, Workspace work ) {
+ const char jobz, MatrixA& a, MatrixB& b, const VectorW& w,
+ Workspace work ) {
     return sygvd_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, n, a, b, w, work );
+ jobz, a, b, w, work );
 }
 
 //
@@ -366,10 +365,9 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorW >
 inline std::ptrdiff_t sygvd( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, MatrixA& a, MatrixB& b,
- const VectorW& w ) {
+ const char jobz, MatrixA& a, MatrixB& b, const VectorW& w ) {
     return sygvd_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, n, a, b, w, optimal_workspace() );
+ jobz, a, b, w, optimal_workspace() );
 }
 
 //
@@ -382,10 +380,10 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename Workspace >
 inline std::ptrdiff_t sygvd( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, const MatrixA& a,
- MatrixB& b, const VectorW& w, Workspace work ) {
+ const char jobz, const MatrixA& a, MatrixB& b, const VectorW& w,
+ Workspace work ) {
     return sygvd_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, n, a, b, w, work );
+ jobz, a, b, w, work );
 }
 
 //
@@ -397,10 +395,9 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorW >
 inline std::ptrdiff_t sygvd( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, const MatrixA& a,
- MatrixB& b, const VectorW& w ) {
+ const char jobz, const MatrixA& a, MatrixB& b, const VectorW& w ) {
     return sygvd_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, n, a, b, w, optimal_workspace() );
+ jobz, a, b, w, optimal_workspace() );
 }
 
 //
@@ -413,10 +410,10 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename Workspace >
 inline std::ptrdiff_t sygvd( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorW& w, Workspace work ) {
+ const char jobz, MatrixA& a, const MatrixB& b, const VectorW& w,
+ Workspace work ) {
     return sygvd_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, n, a, b, w, work );
+ jobz, a, b, w, work );
 }
 
 //
@@ -428,10 +425,9 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorW >
 inline std::ptrdiff_t sygvd( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, MatrixA& a,
- const MatrixB& b, const VectorW& w ) {
+ const char jobz, MatrixA& a, const MatrixB& b, const VectorW& w ) {
     return sygvd_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, n, a, b, w, optimal_workspace() );
+ jobz, a, b, w, optimal_workspace() );
 }
 
 //
@@ -444,10 +440,10 @@
 template< typename MatrixA, typename MatrixB, typename VectorW,
         typename Workspace >
 inline std::ptrdiff_t sygvd( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, const MatrixA& a,
- const MatrixB& b, const VectorW& w, Workspace work ) {
+ const char jobz, const MatrixA& a, const MatrixB& b, const VectorW& w,
+ Workspace work ) {
     return sygvd_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, n, a, b, w, work );
+ jobz, a, b, w, work );
 }
 
 //
@@ -459,10 +455,10 @@
 //
 template< typename MatrixA, typename MatrixB, typename VectorW >
 inline std::ptrdiff_t sygvd( const fortran_int_t itype,
- const char jobz, const fortran_int_t n, const MatrixA& a,
- const MatrixB& b, const VectorW& w ) {
+ const char jobz, const MatrixA& a, const MatrixB& b,
+ const VectorW& w ) {
     return sygvd_impl< typename value< MatrixA >::type >::invoke( itype,
- jobz, n, a, b, w, optimal_workspace() );
+ jobz, a, b, w, optimal_workspace() );
 }
 
 } // namespace lapack

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sysvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sysvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sysvx.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -187,13 +187,13 @@
         BOOST_STATIC_ASSERT( (is_mutable< VectorFERR >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorBERR >::value) );
         BOOST_ASSERT( fact == 'F' || fact == 'N' );
- BOOST_ASSERT( size(berr) >= size_column(x) );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
         BOOST_ASSERT( size(work.select(fortran_int_t())) >=
                 min_size_iwork( size_column(a) ));
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
                 size_column(a) ));
         BOOST_ASSERT( size_column(a) >= 0 );
- BOOST_ASSERT( size_column(x) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(af) == 1 || stride_minor(af) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
@@ -206,7 +206,7 @@
                 size_column(a)) );
         BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,
                 size_column(a)) );
- return detail::sysvx( fact, uplo(), size_column(a), size_column(x),
+ return detail::sysvx( fact, uplo(), size_column(a), size_column(b),
                 begin_value(a), stride_major(a), begin_value(af),
                 stride_major(af), begin_value(ipiv), begin_value(b),
                 stride_major(b), begin_value(x), stride_major(x), rcond,
@@ -257,7 +257,7 @@
         real_type opt_size_work;
         bindings::detail::array< fortran_int_t > tmp_iwork(
                 min_size_iwork( size_column(a) ) );
- detail::sysvx( fact, uplo(), size_column(a), size_column(x),
+ detail::sysvx( fact, uplo(), size_column(a), size_column(b),
                 begin_value(a), stride_major(a), begin_value(af),
                 stride_major(af), begin_value(ipiv), begin_value(b),
                 stride_major(b), begin_value(x), stride_major(x), rcond,
@@ -331,13 +331,13 @@
         BOOST_STATIC_ASSERT( (is_mutable< VectorFERR >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorBERR >::value) );
         BOOST_ASSERT( fact == 'F' || fact == 'N' );
- BOOST_ASSERT( size(berr) >= size_column(x) );
+ BOOST_ASSERT( size(berr) >= size_column(b) );
         BOOST_ASSERT( size(work.select(real_type())) >= min_size_rwork(
                 size_column(a) ));
         BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
                 size_column(a) ));
         BOOST_ASSERT( size_column(a) >= 0 );
- BOOST_ASSERT( size_column(x) >= 0 );
+ BOOST_ASSERT( size_column(b) >= 0 );
         BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
         BOOST_ASSERT( size_minor(af) == 1 || stride_minor(af) == 1 );
         BOOST_ASSERT( size_minor(b) == 1 || stride_minor(b) == 1 );
@@ -350,7 +350,7 @@
                 size_column(a)) );
         BOOST_ASSERT( stride_major(x) >= std::max< std::ptrdiff_t >(1,
                 size_column(a)) );
- return detail::sysvx( fact, uplo(), size_column(a), size_column(x),
+ return detail::sysvx( fact, uplo(), size_column(a), size_column(b),
                 begin_value(a), stride_major(a), begin_value(af),
                 stride_major(af), begin_value(ipiv), begin_value(b),
                 stride_major(b), begin_value(x), stride_major(x), rcond,
@@ -401,7 +401,7 @@
         value_type opt_size_work;
         bindings::detail::array< real_type > tmp_rwork( min_size_rwork(
                 size_column(a) ) );
- detail::sysvx( fact, uplo(), size_column(a), size_column(x),
+ detail::sysvx( fact, uplo(), size_column(a), size_column(b),
                 begin_value(a), stride_major(a), begin_value(af),
                 stride_major(af), begin_value(ipiv), begin_value(b),
                 stride_major(b), begin_value(x), stride_major(x), rcond,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/ublas/matrix_proxy.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/ublas/matrix_proxy.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/ublas/matrix_proxy.hpp 2010-01-12 11:28:33 EST (Tue, 12 Jan 2010)
@@ -59,7 +59,6 @@
     }
 
     static std::ptrdiff_t bandwidth2( const Id& id ) {
- std::cout << "proxy bandwidth 2 requested.." << std::endl;
         return bindings::bandwidth2( id.data() );
     }
 


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