diff -Naur old/boost/numeric/bindings/lapack/computational/tgsen.hpp new/boost/numeric/bindings/lapack/computational/tgsen.hpp --- old/boost/numeric/bindings/lapack/computational/tgsen.hpp 2010-08-26 16:32:17.000000000 +0200 +++ new/boost/numeric/bindings/lapack/computational/tgsen.hpp 2010-08-26 17:06:48.000000000 +0200 @@ -312,24 +312,28 @@ // Static member function that returns the minimum size of // workspace-array work. // - static std::ptrdiff_t min_size_work( const std::ptrdiff_t ijob, - const std::ptrdiff_t n, std::ptrdiff_t& m ) { + static std::ptrdiff_t min_size_work( const fortran_int_t ijob, + const std::ptrdiff_t n, fortran_int_t& m ) { if ( ijob == 1 || ijob == 2 || ijob == 4 ) return std::max< std::ptrdiff_t >(4*n+16, 2*m*(n-m)); - else // if ( ijob == 3 || ijob == 5 ) + else if ( ijob == 3 || ijob == 5 ) return std::max< std::ptrdiff_t >(4*n+16, 4*m*(n-m)); + else // ijob == 0 + return std::max< std::ptrdiff_t >(1, 4*n+16); } // // Static member function that returns the minimum size of // workspace-array iwork. // - static std::ptrdiff_t min_size_iwork( const std::ptrdiff_t ijob, - const std::ptrdiff_t n, std::ptrdiff_t& m ) { + static std::ptrdiff_t min_size_iwork( const fortran_int_t ijob, + const std::ptrdiff_t n, fortran_int_t& m ) { if ( ijob == 1 || ijob == 2 || ijob == 4 ) return std::max< std::ptrdiff_t >(1, n+6); - else // if ( ijob == 3 || ijob == 5 ) + else if ( ijob == 3 || ijob == 5 ) return std::max< std::ptrdiff_t >(2*m*(n-m), n+6); + else // ijob == 0 + return 1; } }; @@ -487,24 +491,28 @@ // Static member function that returns the minimum size of // workspace-array work. // - static std::ptrdiff_t min_size_work( const std::ptrdiff_t ijob, - const std::ptrdiff_t n, std::ptrdiff_t& m ) { + static std::ptrdiff_t min_size_work( const fortran_int_t ijob, + const std::ptrdiff_t n, fortran_int_t& m ) { if ( ijob == 1 || ijob == 2 || ijob == 4 ) return std::max< std::ptrdiff_t >(1, 2*m*(n-m)); - else // if ( ijob == 3 || ijob == 5 ) + else if ( ijob == 3 || ijob == 5 ) return std::max< std::ptrdiff_t >(1, 4*m*(n-m)); + else // ijob == 0 + return 1; } // // Static member function that returns the minimum size of // workspace-array iwork. // - static std::ptrdiff_t min_size_iwork( const std::ptrdiff_t ijob, - const std::ptrdiff_t n, std::ptrdiff_t& m ) { + static std::ptrdiff_t min_size_iwork( const fortran_int_t ijob, + const std::ptrdiff_t n, fortran_int_t& m ) { if ( ijob == 1 || ijob == 2 || ijob == 4 ) return std::max< std::ptrdiff_t >(1, n+2); - else // if ( ijob == 3 || ijob == 5 ) + else if ( ijob == 3 || ijob == 5 ) return std::max< std::ptrdiff_t >(2*m*(n-m), n+2); + else // ijob == 0 + return 1; } };