|
Ublas : |
Subject: [ublas] [bindings] LAPACK functions ORGQL, UNGQL, ... vs QR counterparts
From: Marco Guazzone (marco.guazzone_at_[hidden])
Date: 2010-08-01 14:27:42
Hello,
Are the functions ORG{QL,LQ,RQ} and UNG{QL,LQ,RQ} unfinished?
I've noticed they differ from their QR counterparts (ORGQR and UNGQR)
in the overloaded functions.
For instance, for ORGQR we have:
template< typename MatrixA, typename VectorTAU >
inline typename boost::disable_if< detail::is_workspace< VectorTAU >,
std::ptrdiff_t >::type
orgqr( const MatrixA& a, const VectorTAU& tau ) {
return orgqr_impl< typename bindings::value_type<
MatrixA >::type >::invoke( a, tau, optimal_workspace() );
}
Instead, for ORGQL (for instace) we have additional parameter:
template< typename MatrixA, typename VectorTAU >
inline typename boost::disable_if< detail::is_workspace< VectorTAU >,
std::ptrdiff_t >::type
orgql( const fortran_int_t m, const fortran_int_t n,
const fortran_int_t k, const MatrixA& a, const VectorTAU& tau ) {
return orgql_impl< typename bindings::value_type<
MatrixA >::type >::invoke( m, n, k, a, tau, optimal_workspace() );
}
In principle I have no problem to use this form above.
But, since these LAPACK functions have all the same signature, I
suppose their "bindings" interface is to be uniformed.
What do you think?
Thank you very much!!
Cheers,
-- Marco