Functions | |
void | lapack::sgetrf_ (int *m, int *n, float *a, int *lda, int *ipiv, int *info) |
void | lapack::dgetrf_ (int *m, int *n, double *a, int *lda, int *ipiv, int *info) |
void | lapack::cgetrf_ (int *m, int *n, void *a, int *lda, int *ipiv, int *info) |
void | lapack::zgetrf_ (int *m, int *n, void *a, int *lda, int *ipiv, int *info) |
void | lapack::sgetri_ (int *n, float *a, int *lda, int *ipiv, float *work, int *lwork, int *info) |
void | lapack::dgetri_ (int *n, double *a, int *lda, int *ipiv, double *work, int *lwork, int *info) |
void | lapack::cgetri_ (int *n, void *a, int *lda, int *ipiv, void *work, int *lwork, int *info) |
void | lapack::zgetri_ (int *n, void *a, int *lda, int *ipiv, void *work, int *lwork, int *info) |
void | lapack::ssyev_ (char *jobz, char *uplo, int *n, float *a, int *lda, float *w, float *work, int *lwork, int *info) |
void | lapack::dsyev_ (char *jobz, char *uplo, int *n, double *a, int *lda, double *w, double *work, int *lwork, int *info) |
void | lapack::cheev_ (char *jobz, char *uplo, int *n, void *a, int *lda, float *w, void *work, int *lwork, float *rwork, int *info) |
void | lapack::zheev_ (char *jobz, char *uplo, int *n, void *a, int *lda, double *w, void *work, int *lwork, double *rwork, int *info) |
void | lapack::sgeev_ (char *jobvl, char *jobvr, int *n, float *a, int *lda, float *wr, float *wi, float *vl, int *ldvl, float *vr, int *ldvr, float *work, int *lwork, int *info) |
void | lapack::dgeev_ (char *jobvl, char *jobvr, int *n, double *a, int *lda, double *wr, double *wi, double *vl, int *ldvl, double *vr, int *ldvr, double *work, int *lwork, int *info) |
void | lapack::cgeev_ (char *jobvr, char *jobvl, int *n, void *a, int *lda, void *w, void *vl, int *ldvl, void *vr, int *ldvr, void *work, int *lwork, float *rwork, int *info) |
void | lapack::zgeev_ (char *jobvl, char *jobvr, int *n, void *a, int *lda, void *w, void *vl, int *ldvl, void *vr, int *ldvr, void *work, int *lwork, double *rwork, int *info) |
void | lapack::spotrf_ (char *uplo, int *n, float *a, int *lda, int *info) |
void | lapack::dpotrf_ (char *uplo, int *n, double *a, int *lda, int *info) |
void | lapack::cpotrf_ (char *uplo, int *n, void *a, int *lda, int *info) |
void | lapack::zpotrf_ (char *uplo, int *n, void *a, int *lda, int *info) |
void | lapack::sgeqrf_ (int *m, int *n, float *a, int *lda, float *tau, float *work, int *lwork, int *info) |
void | lapack::dgeqrf_ (int *m, int *n, double *a, int *lda, double *tau, double *work, int *lwork, int *info) |
void | lapack::cgeqrf_ (int *m, int *n, void *a, int *lda, void *tau, void *work, int *lwork, int *info) |
void | lapack::zgeqrf_ (int *m, int *n, void *a, int *lda, void *tau, void *work, int *lwork, int *info) |
void | lapack::sorgqr_ (int *m, int *n, int *k, float *a, int *lda, float *tau, float *work, int *lwork, int *info) |
void | lapack::dorgqr_ (int *m, int *n, int *k, double *a, int *lda, double *tau, double *work, int *lwork, int *info) |
void | lapack::cungqr_ (int *m, int *n, int *k, void *a, int *lda, void *tau, void *work, int *lwork, int *info) |
void | lapack::zungqr_ (int *m, int *n, int *k, void *a, int *lda, void *tau, void *work, int *lwork, int *info) |
void | lapack::sgesvd_ (char *jobu, char *jobvt, int *m, int *n, float *a, int *lda, float *s, float *u, int *ldu, float *vt, int *ldvt, float *work, int *lwork, int *info) |
void | lapack::dgesvd_ (char *jobu, char *jobvt, int *m, int *n, double *a, int *lda, double *s, double *u, int *ldu, double *vt, int *ldvt, double *work, int *lwork, int *info) |
void | lapack::cgesvd_ (char *jobu, char *jobvt, int *m, int *n, void *a, int *lda, float *s, void *u, int *ldu, void *vt, int *ldvt, void *work, int *lwork, float *rwork, int *info) |
void | lapack::zgesvd_ (char *jobu, char *jobvt, int *m, int *n, void *a, int *lda, double *s, void *u, int *ldu, void *vt, int *ldvt, void *work, int *lwork, double *rwork, int *info) |
void | lapack::sgesv_ (int *n, int *nrhs, float *a, int *lda, int *ipiv, float *b, int *ldb, int *info) |
void | lapack::dgesv_ (int *n, int *nrhs, double *a, int *lda, int *ipiv, double *b, int *ldb, int *info) |
void | lapack::cgesv_ (int *n, int *nrhs, void *a, int *lda, int *ipiv, void *b, int *ldb, int *info) |
void | lapack::zgesv_ (int *n, int *nrhs, void *a, int *lda, int *ipiv, void *b, int *ldb, int *info) |
void | lapack::sgels_ (char *trans, int *m, int *n, int *nrhs, float *a, int *lda, float *b, int *ldb, float *work, int *lwork, int *info) |
void | lapack::dgels_ (char *trans, int *m, int *n, int *nrhs, double *a, int *lda, double *b, int *ldb, double *work, int *lwork, int *info) |
void | lapack::cgels_ (char *trans, int *m, int *n, int *nrhs, void *a, int *lda, void *b, int *ldb, void *work, int *lwork, int *info) |
void | lapack::zgels_ (char *trans, int *m, int *n, int *nrhs, void *a, int *lda, void *b, int *ldb, void *work, int *lwork, int *info) |
template<typename eT > | |
void | lapack::getrf_ (int *m, int *n, eT *a, int *lda, int *ipiv, int *info) |
template<typename eT > | |
void | lapack::getri_ (int *n, eT *a, int *lda, int *ipiv, eT *work, int *lwork, int *info) |
template<typename eT > | |
void | lapack::syev_ (char *jobz, char *uplo, int *n, eT *a, int *lda, eT *w, eT *work, int *lwork, int *info) |
template<typename eT > | |
void | lapack::heev_ (char *jobz, char *uplo, int *n, eT *a, int *lda, typename eT::value_type *w, eT *work, int *lwork, typename eT::value_type *rwork, int *info) |
template<typename eT > | |
void | lapack::geev_ (char *jobvl, char *jobvr, int *n, eT *a, int *lda, eT *wr, eT *wi, eT *vl, int *ldvl, eT *vr, int *ldvr, eT *work, int *lwork, int *info) |
template<typename eT > | |
void | lapack::cx_geev_ (char *jobvl, char *jobvr, int *n, eT *a, int *lda, eT *w, eT *vl, int *ldvl, eT *vr, int *ldvr, eT *work, int *lwork, typename eT::value_type *rwork, int *info) |
template<typename eT > | |
void | lapack::potrf_ (char *uplo, int *n, eT *a, int *lda, int *info) |
template<typename eT > | |
void | lapack::geqrf_ (int *m, int *n, eT *a, int *lda, eT *tau, eT *work, int *lwork, int *info) |
template<typename eT > | |
void | lapack::orgqr_ (int *m, int *n, int *k, eT *a, int *lda, eT *tau, eT *work, int *lwork, int *info) |
template<typename eT > | |
void | lapack::ungqr_ (int *m, int *n, int *k, eT *a, int *lda, eT *tau, eT *work, int *lwork, int *info) |
template<typename eT > | |
void | lapack::gesvd_ (char *jobu, char *jobvt, int *m, int *n, eT *a, int *lda, eT *s, eT *u, int *ldu, eT *vt, int *ldvt, eT *work, int *lwork, int *info) |
template<typename T > | |
void | lapack::cx_gesvd_ (char *jobu, char *jobvt, int *m, int *n, std::complex< T > *a, int *lda, T *s, std::complex< T > *u, int *ldu, std::complex< T > *vt, int *ldvt, std::complex< T > *work, int *lwork, T *rwork, int *info) |
template<typename eT > | |
void | lapack::gesv_ (int *n, int *nrhs, eT *a, int *lda, int *ipiv, eT *b, int *ldb, int *info) |
template<typename eT > | |
void | lapack::gels_ (char *trans, int *m, int *n, int *nrhs, eT *a, int *lda, eT *b, int *ldb, eT *work, int *lwork, int *info) |
void lapack::sgetrf_ | ( | int * | m, | |
int * | n, | |||
float * | a, | |||
int * | lda, | |||
int * | ipiv, | |||
int * | info | |||
) |
Referenced by lapack::getrf_().
void lapack::dgetrf_ | ( | int * | m, | |
int * | n, | |||
double * | a, | |||
int * | lda, | |||
int * | ipiv, | |||
int * | info | |||
) |
Referenced by lapack::getrf_().
void lapack::cgetrf_ | ( | int * | m, | |
int * | n, | |||
void * | a, | |||
int * | lda, | |||
int * | ipiv, | |||
int * | info | |||
) |
Referenced by lapack::getrf_().
void lapack::zgetrf_ | ( | int * | m, | |
int * | n, | |||
void * | a, | |||
int * | lda, | |||
int * | ipiv, | |||
int * | info | |||
) |
Referenced by lapack::getrf_().
void lapack::sgetri_ | ( | int * | n, | |
float * | a, | |||
int * | lda, | |||
int * | ipiv, | |||
float * | work, | |||
int * | lwork, | |||
int * | info | |||
) |
Referenced by lapack::getri_().
void lapack::dgetri_ | ( | int * | n, | |
double * | a, | |||
int * | lda, | |||
int * | ipiv, | |||
double * | work, | |||
int * | lwork, | |||
int * | info | |||
) |
Referenced by lapack::getri_().
void lapack::cgetri_ | ( | int * | n, | |
void * | a, | |||
int * | lda, | |||
int * | ipiv, | |||
void * | work, | |||
int * | lwork, | |||
int * | info | |||
) |
Referenced by lapack::getri_().
void lapack::zgetri_ | ( | int * | n, | |
void * | a, | |||
int * | lda, | |||
int * | ipiv, | |||
void * | work, | |||
int * | lwork, | |||
int * | info | |||
) |
Referenced by lapack::getri_().
void lapack::ssyev_ | ( | char * | jobz, | |
char * | uplo, | |||
int * | n, | |||
float * | a, | |||
int * | lda, | |||
float * | w, | |||
float * | work, | |||
int * | lwork, | |||
int * | info | |||
) |
Referenced by lapack::syev_().
void lapack::dsyev_ | ( | char * | jobz, | |
char * | uplo, | |||
int * | n, | |||
double * | a, | |||
int * | lda, | |||
double * | w, | |||
double * | work, | |||
int * | lwork, | |||
int * | info | |||
) |
Referenced by lapack::syev_().
void lapack::cheev_ | ( | char * | jobz, | |
char * | uplo, | |||
int * | n, | |||
void * | a, | |||
int * | lda, | |||
float * | w, | |||
void * | work, | |||
int * | lwork, | |||
float * | rwork, | |||
int * | info | |||
) |
Referenced by lapack::heev_().
void lapack::zheev_ | ( | char * | jobz, | |
char * | uplo, | |||
int * | n, | |||
void * | a, | |||
int * | lda, | |||
double * | w, | |||
void * | work, | |||
int * | lwork, | |||
double * | rwork, | |||
int * | info | |||
) |
Referenced by lapack::heev_().
void lapack::sgeev_ | ( | char * | jobvl, | |
char * | jobvr, | |||
int * | n, | |||
float * | a, | |||
int * | lda, | |||
float * | wr, | |||
float * | wi, | |||
float * | vl, | |||
int * | ldvl, | |||
float * | vr, | |||
int * | ldvr, | |||
float * | work, | |||
int * | lwork, | |||
int * | info | |||
) |
Referenced by lapack::geev_().
void lapack::dgeev_ | ( | char * | jobvl, | |
char * | jobvr, | |||
int * | n, | |||
double * | a, | |||
int * | lda, | |||
double * | wr, | |||
double * | wi, | |||
double * | vl, | |||
int * | ldvl, | |||
double * | vr, | |||
int * | ldvr, | |||
double * | work, | |||
int * | lwork, | |||
int * | info | |||
) |
Referenced by lapack::geev_().
void lapack::cgeev_ | ( | char * | jobvr, | |
char * | jobvl, | |||
int * | n, | |||
void * | a, | |||
int * | lda, | |||
void * | w, | |||
void * | vl, | |||
int * | ldvl, | |||
void * | vr, | |||
int * | ldvr, | |||
void * | work, | |||
int * | lwork, | |||
float * | rwork, | |||
int * | info | |||
) |
Referenced by lapack::cx_geev_().
void lapack::zgeev_ | ( | char * | jobvl, | |
char * | jobvr, | |||
int * | n, | |||
void * | a, | |||
int * | lda, | |||
void * | w, | |||
void * | vl, | |||
int * | ldvl, | |||
void * | vr, | |||
int * | ldvr, | |||
void * | work, | |||
int * | lwork, | |||
double * | rwork, | |||
int * | info | |||
) |
Referenced by lapack::cx_geev_().
void lapack::spotrf_ | ( | char * | uplo, | |
int * | n, | |||
float * | a, | |||
int * | lda, | |||
int * | info | |||
) |
Referenced by lapack::potrf_().
void lapack::dpotrf_ | ( | char * | uplo, | |
int * | n, | |||
double * | a, | |||
int * | lda, | |||
int * | info | |||
) |
Referenced by lapack::potrf_().
void lapack::cpotrf_ | ( | char * | uplo, | |
int * | n, | |||
void * | a, | |||
int * | lda, | |||
int * | info | |||
) |
Referenced by lapack::potrf_().
void lapack::zpotrf_ | ( | char * | uplo, | |
int * | n, | |||
void * | a, | |||
int * | lda, | |||
int * | info | |||
) |
Referenced by lapack::potrf_().
void lapack::sgeqrf_ | ( | int * | m, | |
int * | n, | |||
float * | a, | |||
int * | lda, | |||
float * | tau, | |||
float * | work, | |||
int * | lwork, | |||
int * | info | |||
) |
Referenced by lapack::geqrf_().
void lapack::dgeqrf_ | ( | int * | m, | |
int * | n, | |||
double * | a, | |||
int * | lda, | |||
double * | tau, | |||
double * | work, | |||
int * | lwork, | |||
int * | info | |||
) |
Referenced by lapack::geqrf_().
void lapack::cgeqrf_ | ( | int * | m, | |
int * | n, | |||
void * | a, | |||
int * | lda, | |||
void * | tau, | |||
void * | work, | |||
int * | lwork, | |||
int * | info | |||
) |
Referenced by lapack::geqrf_().
void lapack::zgeqrf_ | ( | int * | m, | |
int * | n, | |||
void * | a, | |||
int * | lda, | |||
void * | tau, | |||
void * | work, | |||
int * | lwork, | |||
int * | info | |||
) |
Referenced by lapack::geqrf_().
void lapack::sorgqr_ | ( | int * | m, | |
int * | n, | |||
int * | k, | |||
float * | a, | |||
int * | lda, | |||
float * | tau, | |||
float * | work, | |||
int * | lwork, | |||
int * | info | |||
) |
Referenced by lapack::orgqr_().
void lapack::dorgqr_ | ( | int * | m, | |
int * | n, | |||
int * | k, | |||
double * | a, | |||
int * | lda, | |||
double * | tau, | |||
double * | work, | |||
int * | lwork, | |||
int * | info | |||
) |
Referenced by lapack::orgqr_().
void lapack::cungqr_ | ( | int * | m, | |
int * | n, | |||
int * | k, | |||
void * | a, | |||
int * | lda, | |||
void * | tau, | |||
void * | work, | |||
int * | lwork, | |||
int * | info | |||
) |
Referenced by lapack::ungqr_().
void lapack::zungqr_ | ( | int * | m, | |
int * | n, | |||
int * | k, | |||
void * | a, | |||
int * | lda, | |||
void * | tau, | |||
void * | work, | |||
int * | lwork, | |||
int * | info | |||
) |
Referenced by lapack::ungqr_().
void lapack::sgesvd_ | ( | char * | jobu, | |
char * | jobvt, | |||
int * | m, | |||
int * | n, | |||
float * | a, | |||
int * | lda, | |||
float * | s, | |||
float * | u, | |||
int * | ldu, | |||
float * | vt, | |||
int * | ldvt, | |||
float * | work, | |||
int * | lwork, | |||
int * | info | |||
) |
Referenced by lapack::gesvd_().
void lapack::dgesvd_ | ( | char * | jobu, | |
char * | jobvt, | |||
int * | m, | |||
int * | n, | |||
double * | a, | |||
int * | lda, | |||
double * | s, | |||
double * | u, | |||
int * | ldu, | |||
double * | vt, | |||
int * | ldvt, | |||
double * | work, | |||
int * | lwork, | |||
int * | info | |||
) |
Referenced by lapack::gesvd_().
void lapack::cgesvd_ | ( | char * | jobu, | |
char * | jobvt, | |||
int * | m, | |||
int * | n, | |||
void * | a, | |||
int * | lda, | |||
float * | s, | |||
void * | u, | |||
int * | ldu, | |||
void * | vt, | |||
int * | ldvt, | |||
void * | work, | |||
int * | lwork, | |||
float * | rwork, | |||
int * | info | |||
) |
Referenced by lapack::cx_gesvd_().
void lapack::zgesvd_ | ( | char * | jobu, | |
char * | jobvt, | |||
int * | m, | |||
int * | n, | |||
void * | a, | |||
int * | lda, | |||
double * | s, | |||
void * | u, | |||
int * | ldu, | |||
void * | vt, | |||
int * | ldvt, | |||
void * | work, | |||
int * | lwork, | |||
double * | rwork, | |||
int * | info | |||
) |
Referenced by lapack::cx_gesvd_().
void lapack::sgesv_ | ( | int * | n, | |
int * | nrhs, | |||
float * | a, | |||
int * | lda, | |||
int * | ipiv, | |||
float * | b, | |||
int * | ldb, | |||
int * | info | |||
) |
Referenced by lapack::gesv_().
void lapack::dgesv_ | ( | int * | n, | |
int * | nrhs, | |||
double * | a, | |||
int * | lda, | |||
int * | ipiv, | |||
double * | b, | |||
int * | ldb, | |||
int * | info | |||
) |
Referenced by lapack::gesv_().
void lapack::cgesv_ | ( | int * | n, | |
int * | nrhs, | |||
void * | a, | |||
int * | lda, | |||
int * | ipiv, | |||
void * | b, | |||
int * | ldb, | |||
int * | info | |||
) |
Referenced by lapack::gesv_().
void lapack::zgesv_ | ( | int * | n, | |
int * | nrhs, | |||
void * | a, | |||
int * | lda, | |||
int * | ipiv, | |||
void * | b, | |||
int * | ldb, | |||
int * | info | |||
) |
Referenced by lapack::gesv_().
void lapack::sgels_ | ( | char * | trans, | |
int * | m, | |||
int * | n, | |||
int * | nrhs, | |||
float * | a, | |||
int * | lda, | |||
float * | b, | |||
int * | ldb, | |||
float * | work, | |||
int * | lwork, | |||
int * | info | |||
) |
Referenced by lapack::gels_().
void lapack::dgels_ | ( | char * | trans, | |
int * | m, | |||
int * | n, | |||
int * | nrhs, | |||
double * | a, | |||
int * | lda, | |||
double * | b, | |||
int * | ldb, | |||
double * | work, | |||
int * | lwork, | |||
int * | info | |||
) |
Referenced by lapack::gels_().
void lapack::cgels_ | ( | char * | trans, | |
int * | m, | |||
int * | n, | |||
int * | nrhs, | |||
void * | a, | |||
int * | lda, | |||
void * | b, | |||
int * | ldb, | |||
void * | work, | |||
int * | lwork, | |||
int * | info | |||
) |
Referenced by lapack::gels_().
void lapack::zgels_ | ( | char * | trans, | |
int * | m, | |||
int * | n, | |||
int * | nrhs, | |||
void * | a, | |||
int * | lda, | |||
void * | b, | |||
int * | ldb, | |||
void * | work, | |||
int * | lwork, | |||
int * | info | |||
) |
Referenced by lapack::gels_().
void lapack::getrf_ | ( | int * | m, | |
int * | n, | |||
eT * | a, | |||
int * | lda, | |||
int * | ipiv, | |||
int * | info | |||
) | [inline] |
Definition at line 107 of file lapack_proto.hpp.
References lapack::cgetrf_(), lapack::dgetrf_(), lapack::sgetrf_(), and lapack::zgetrf_().
Referenced by auxlib::det(), auxlib::inv_inplace(), auxlib::inv_noalias(), auxlib::log_det(), and auxlib::lu().
00108 { 00109 arma_type_check<is_supported_blas_type<eT>::value == false>::apply(); 00110 00111 if(is_float<eT>::value == true) 00112 { 00113 typedef float T; 00114 sgetrf_(m, n, (T*)a, lda, ipiv, info); 00115 } 00116 else 00117 if(is_double<eT>::value == true) 00118 { 00119 typedef double T; 00120 dgetrf_(m, n, (T*)a, lda, ipiv, info); 00121 } 00122 else 00123 if(is_supported_complex_float<eT>::value == true) 00124 { 00125 typedef std::complex<float> T; 00126 cgetrf_(m, n, (T*)a, lda, ipiv, info); 00127 } 00128 else 00129 if(is_supported_complex_double<eT>::value == true) 00130 { 00131 typedef std::complex<double> T; 00132 zgetrf_(m, n, (T*)a, lda, ipiv, info); 00133 } 00134 }
void lapack::getri_ | ( | int * | n, | |
eT * | a, | |||
int * | lda, | |||
int * | ipiv, | |||
eT * | work, | |||
int * | lwork, | |||
int * | info | |||
) | [inline] |
Definition at line 141 of file lapack_proto.hpp.
References lapack::cgetri_(), lapack::dgetri_(), lapack::sgetri_(), and lapack::zgetri_().
Referenced by auxlib::inv_inplace(), and auxlib::inv_noalias().
00142 { 00143 arma_type_check<is_supported_blas_type<eT>::value == false>::apply(); 00144 00145 if(is_float<eT>::value == true) 00146 { 00147 typedef float T; 00148 sgetri_(n, (T*)a, lda, ipiv, (T*)work, lwork, info); 00149 } 00150 else 00151 if(is_double<eT>::value == true) 00152 { 00153 typedef double T; 00154 dgetri_(n, (T*)a, lda, ipiv, (T*)work, lwork, info); 00155 } 00156 else 00157 if(is_supported_complex_float<eT>::value == true) 00158 { 00159 typedef std::complex<float> T; 00160 cgetri_(n, (T*)a, lda, ipiv, (T*)work, lwork, info); 00161 } 00162 else 00163 if(is_supported_complex_double<eT>::value == true) 00164 { 00165 typedef std::complex<double> T; 00166 zgetri_(n, (T*)a, lda, ipiv, (T*)work, lwork, info); 00167 } 00168 }
void lapack::syev_ | ( | char * | jobz, | |
char * | uplo, | |||
int * | n, | |||
eT * | a, | |||
int * | lda, | |||
eT * | w, | |||
eT * | work, | |||
int * | lwork, | |||
int * | info | |||
) | [inline] |
Definition at line 175 of file lapack_proto.hpp.
References lapack::dsyev_(), and lapack::ssyev_().
Referenced by auxlib::eig_sym().
00176 { 00177 arma_type_check<is_supported_blas_type<eT>::value == false>::apply(); 00178 00179 if(is_float<eT>::value == true) 00180 { 00181 typedef float T; 00182 ssyev_(jobz, uplo, n, (T*)a, lda, (T*)w, (T*)work, lwork, info); 00183 } 00184 else 00185 if(is_double<eT>::value == true) 00186 { 00187 typedef double T; 00188 dsyev_(jobz, uplo, n, (T*)a, lda, (T*)w, (T*)work, lwork, info); 00189 } 00190 }
void lapack::heev_ | ( | char * | jobz, | |
char * | uplo, | |||
int * | n, | |||
eT * | a, | |||
int * | lda, | |||
typename eT::value_type * | w, | |||
eT * | work, | |||
int * | lwork, | |||
typename eT::value_type * | rwork, | |||
int * | info | |||
) | [inline] |
Definition at line 198 of file lapack_proto.hpp.
References lapack::cheev_(), and lapack::zheev_().
Referenced by auxlib::eig_sym().
00204 { 00205 arma_type_check<is_supported_blas_type<eT>::value == false>::apply(); 00206 00207 if(is_supported_complex_float<eT>::value == true) 00208 { 00209 typedef float T; 00210 typedef typename std::complex<T> cx_T; 00211 cheev_(jobz, uplo, n, (cx_T*)a, lda, (T*)w, (cx_T*)work, lwork, (T*)rwork, info); 00212 } 00213 else 00214 if(is_supported_complex_double<eT>::value == true) 00215 { 00216 typedef double T; 00217 typedef typename std::complex<T> cx_T; 00218 zheev_(jobz, uplo, n, (cx_T*)a, lda, (T*)w, (cx_T*)work, lwork, (T*)rwork, info); 00219 } 00220 }
void lapack::geev_ | ( | char * | jobvl, | |
char * | jobvr, | |||
int * | n, | |||
eT * | a, | |||
int * | lda, | |||
eT * | wr, | |||
eT * | wi, | |||
eT * | vl, | |||
int * | ldvl, | |||
eT * | vr, | |||
int * | ldvr, | |||
eT * | work, | |||
int * | lwork, | |||
int * | info | |||
) | [inline] |
Definition at line 227 of file lapack_proto.hpp.
References lapack::dgeev_(), and lapack::sgeev_().
Referenced by auxlib::eig_gen().
00234 { 00235 arma_type_check<is_supported_blas_type<eT>::value == false>::apply(); 00236 00237 if(is_float<eT>::value == true) 00238 { 00239 typedef float T; 00240 sgeev_(jobvl, jobvr, n, (T*)a, lda, (T*)wr, (T*)wi, (T*)vl, ldvl, (T*)vr, ldvr, (T*)work, lwork, info); 00241 } 00242 else 00243 if(is_double<eT>::value == true) 00244 { 00245 typedef double T; 00246 dgeev_(jobvl, jobvr, n, (T*)a, lda, (T*)wr, (T*)wi, (T*)vl, ldvl, (T*)vr, ldvr, (T*)work, lwork, info); 00247 } 00248 }
void lapack::cx_geev_ | ( | char * | jobvl, | |
char * | jobvr, | |||
int * | n, | |||
eT * | a, | |||
int * | lda, | |||
eT * | w, | |||
eT * | vl, | |||
int * | ldvl, | |||
eT * | vr, | |||
int * | ldvr, | |||
eT * | work, | |||
int * | lwork, | |||
typename eT::value_type * | rwork, | |||
int * | info | |||
) | [inline] |
Definition at line 255 of file lapack_proto.hpp.
References lapack::cgeev_(), and lapack::zgeev_().
Referenced by auxlib::eig_gen().
00263 { 00264 arma_type_check<is_supported_blas_type<eT>::value == false>::apply(); 00265 00266 if(is_supported_complex_float<eT>::value == true) 00267 { 00268 typedef float T; 00269 typedef typename std::complex<T> cx_T; 00270 cgeev_(jobvl, jobvr, n, (cx_T*)a, lda, (cx_T*)w, (cx_T*)vl, ldvl, (cx_T*)vr, ldvr, (cx_T*)work, lwork, (T*)rwork, info); 00271 } 00272 else 00273 if(is_supported_complex_double<eT>::value == true) 00274 { 00275 typedef double T; 00276 typedef typename std::complex<T> cx_T; 00277 zgeev_(jobvl, jobvr, n, (cx_T*)a, lda, (cx_T*)w, (cx_T*)vl, ldvl, (cx_T*)vr, ldvr, (cx_T*)work, lwork, (T*)rwork, info); 00278 } 00279 }
void lapack::potrf_ | ( | char * | uplo, | |
int * | n, | |||
eT * | a, | |||
int * | lda, | |||
int * | info | |||
) | [inline] |
Definition at line 287 of file lapack_proto.hpp.
References lapack::cpotrf_(), lapack::dpotrf_(), lapack::spotrf_(), and lapack::zpotrf_().
Referenced by auxlib::chol().
00288 { 00289 arma_type_check<is_supported_blas_type<eT>::value == false>::apply(); 00290 00291 if(is_float<eT>::value == true) 00292 { 00293 typedef float T; 00294 spotrf_(uplo, n, (T*)a, lda, info); 00295 } 00296 else 00297 if(is_double<eT>::value == true) 00298 { 00299 typedef double T; 00300 dpotrf_(uplo, n, (T*)a, lda, info); 00301 } 00302 else 00303 if(is_supported_complex_float<eT>::value == true) 00304 { 00305 typedef std::complex<float> T; 00306 cpotrf_(uplo, n, (T*)a, lda, info); 00307 } 00308 else 00309 if(is_supported_complex_double<eT>::value == true) 00310 { 00311 typedef std::complex<double> T; 00312 zpotrf_(uplo, n, (T*)a, lda, info); 00313 } 00314 00315 }
void lapack::geqrf_ | ( | int * | m, | |
int * | n, | |||
eT * | a, | |||
int * | lda, | |||
eT * | tau, | |||
eT * | work, | |||
int * | lwork, | |||
int * | info | |||
) | [inline] |
Definition at line 322 of file lapack_proto.hpp.
References lapack::cgeqrf_(), lapack::dgeqrf_(), lapack::sgeqrf_(), and lapack::zgeqrf_().
Referenced by auxlib::qr().
00323 { 00324 arma_type_check<is_supported_blas_type<eT>::value == false>::apply(); 00325 00326 if(is_float<eT>::value == true) 00327 { 00328 typedef float T; 00329 sgeqrf_(m, n, (T*)a, lda, (T*)tau, (T*)work, lwork, info); 00330 } 00331 else 00332 if(is_double<eT>::value == true) 00333 { 00334 typedef double T; 00335 dgeqrf_(m, n, (T*)a, lda, (T*)tau, (T*)work, lwork, info); 00336 } 00337 else 00338 if(is_supported_complex_float<eT>::value == true) 00339 { 00340 typedef std::complex<float> T; 00341 cgeqrf_(m, n, (T*)a, lda, (T*)tau, (T*)work, lwork, info); 00342 } 00343 else 00344 if(is_supported_complex_double<eT>::value == true) 00345 { 00346 typedef std::complex<double> T; 00347 zgeqrf_(m, n, (T*)a, lda, (T*)tau, (T*)work, lwork, info); 00348 } 00349 00350 }
void lapack::orgqr_ | ( | int * | m, | |
int * | n, | |||
int * | k, | |||
eT * | a, | |||
int * | lda, | |||
eT * | tau, | |||
eT * | work, | |||
int * | lwork, | |||
int * | info | |||
) | [inline] |
Definition at line 357 of file lapack_proto.hpp.
References lapack::dorgqr_(), and lapack::sorgqr_().
Referenced by auxlib::qr().
00358 { 00359 arma_type_check<is_supported_blas_type<eT>::value == false>::apply(); 00360 00361 if(is_float<eT>::value == true) 00362 { 00363 typedef float T; 00364 sorgqr_(m, n, k, (T*)a, lda, (T*)tau, (T*)work, lwork, info); 00365 } 00366 else 00367 if(is_double<eT>::value == true) 00368 { 00369 typedef double T; 00370 dorgqr_(m, n, k, (T*)a, lda, (T*)tau, (T*)work, lwork, info); 00371 } 00372 }
void lapack::ungqr_ | ( | int * | m, | |
int * | n, | |||
int * | k, | |||
eT * | a, | |||
int * | lda, | |||
eT * | tau, | |||
eT * | work, | |||
int * | lwork, | |||
int * | info | |||
) | [inline] |
Definition at line 379 of file lapack_proto.hpp.
References lapack::cungqr_(), and lapack::zungqr_().
Referenced by auxlib::qr().
00380 { 00381 arma_type_check<is_supported_blas_type<eT>::value == false>::apply(); 00382 00383 if(is_supported_complex_float<eT>::value == true) 00384 { 00385 typedef float T; 00386 cungqr_(m, n, k, (T*)a, lda, (T*)tau, (T*)work, lwork, info); 00387 } 00388 else 00389 if(is_supported_complex_double<eT>::value == true) 00390 { 00391 typedef double T; 00392 zungqr_(m, n, k, (T*)a, lda, (T*)tau, (T*)work, lwork, info); 00393 } 00394 }
void lapack::gesvd_ | ( | char * | jobu, | |
char * | jobvt, | |||
int * | m, | |||
int * | n, | |||
eT * | a, | |||
int * | lda, | |||
eT * | s, | |||
eT * | u, | |||
int * | ldu, | |||
eT * | vt, | |||
int * | ldvt, | |||
eT * | work, | |||
int * | lwork, | |||
int * | info | |||
) | [inline] |
Definition at line 401 of file lapack_proto.hpp.
References lapack::dgesvd_(), and lapack::sgesvd_().
00406 { 00407 arma_type_check<is_supported_blas_type<eT>::value == false>::apply(); 00408 00409 if(is_float<eT>::value == true) 00410 { 00411 typedef float T; 00412 sgesvd_(jobu, jobvt, m, n, (T*)a, lda, (T*)s, (T*)u, ldu, (T*)vt, ldvt, (T*)work, lwork, info); 00413 } 00414 else 00415 if(is_double<eT>::value == true) 00416 { 00417 typedef double T; 00418 dgesvd_(jobu, jobvt, m, n, (T*)a, lda, (T*)s, (T*)u, ldu, (T*)vt, ldvt, (T*)work, lwork, info); 00419 } 00420 }
void lapack::cx_gesvd_ | ( | char * | jobu, | |
char * | jobvt, | |||
int * | m, | |||
int * | n, | |||
std::complex< T > * | a, | |||
int * | lda, | |||
T * | s, | |||
std::complex< T > * | u, | |||
int * | ldu, | |||
std::complex< T > * | vt, | |||
int * | ldvt, | |||
std::complex< T > * | work, | |||
int * | lwork, | |||
T * | rwork, | |||
int * | info | |||
) | [inline] |
Definition at line 428 of file lapack_proto.hpp.
References lapack::cgesvd_(), and lapack::zgesvd_().
00433 { 00434 arma_type_check<is_supported_blas_type<T>::value == false>::apply(); 00435 arma_type_check<is_supported_blas_type< std::complex<T> >::value == false>::apply(); 00436 00437 if(is_float<T>::value == true) 00438 { 00439 typedef float bT; 00440 cgesvd_ 00441 ( 00442 jobu, jobvt, m, n, (std::complex<bT>*)a, lda, 00443 (bT*)s, (std::complex<bT>*)u, ldu, (std::complex<bT>*)vt, ldvt, 00444 (std::complex<bT>*)work, lwork, (bT*)rwork, info 00445 ); 00446 } 00447 else 00448 if(is_double<T>::value == true) 00449 { 00450 typedef double bT; 00451 zgesvd_ 00452 ( 00453 jobu, jobvt, m, n, (std::complex<bT>*)a, lda, 00454 (bT*)s, (std::complex<bT>*)u, ldu, (std::complex<bT>*)vt, ldvt, 00455 (std::complex<bT>*)work, lwork, (bT*)rwork, info 00456 ); 00457 } 00458 }
void lapack::gesv_ | ( | int * | n, | |
int * | nrhs, | |||
eT * | a, | |||
int * | lda, | |||
int * | ipiv, | |||
eT * | b, | |||
int * | ldb, | |||
int * | info | |||
) | [inline] |
Definition at line 465 of file lapack_proto.hpp.
References lapack::cgesv_(), lapack::dgesv_(), lapack::sgesv_(), and lapack::zgesv_().
00466 { 00467 arma_type_check<is_supported_blas_type<eT>::value == false>::apply(); 00468 00469 if(is_float<eT>::value == true) 00470 { 00471 typedef float T; 00472 sgesv_(n, nrhs, (T*)a, lda, ipiv, (T*)b, ldb, info); 00473 } 00474 else 00475 if(is_double<eT>::value == true) 00476 { 00477 typedef double T; 00478 dgesv_(n, nrhs, (T*)a, lda, ipiv, (T*)b, ldb, info); 00479 } 00480 else 00481 if(is_supported_complex_float<eT>::value == true) 00482 { 00483 typedef std::complex<float> T; 00484 cgesv_(n, nrhs, (T*)a, lda, ipiv, (T*)b, ldb, info); 00485 } 00486 else 00487 if(is_supported_complex_double<eT>::value == true) 00488 { 00489 typedef std::complex<double> T; 00490 zgesv_(n, nrhs, (T*)a, lda, ipiv, (T*)b, ldb, info); 00491 } 00492 }
void lapack::gels_ | ( | char * | trans, | |
int * | m, | |||
int * | n, | |||
int * | nrhs, | |||
eT * | a, | |||
int * | lda, | |||
eT * | b, | |||
int * | ldb, | |||
eT * | work, | |||
int * | lwork, | |||
int * | info | |||
) | [inline] |
Definition at line 500 of file lapack_proto.hpp.
References lapack::cgels_(), lapack::dgels_(), lapack::sgels_(), and lapack::zgels_().
00501 { 00502 arma_type_check<is_supported_blas_type<eT>::value == false>::apply(); 00503 00504 if(is_float<eT>::value == true) 00505 { 00506 typedef float T; 00507 sgels_(trans, m, n, nrhs, (T*)a, lda, (T*)b, ldb, (T*)work, lwork, info); 00508 } 00509 else 00510 if(is_double<eT>::value == true) 00511 { 00512 typedef double T; 00513 dgels_(trans, m, n, nrhs, (T*)a, lda, (T*)b, ldb, (T*)work, lwork, info); 00514 } 00515 else 00516 if(is_supported_complex_float<eT>::value == true) 00517 { 00518 typedef std::complex<float> T; 00519 cgels_(trans, m, n, nrhs, (T*)a, lda, (T*)b, ldb, (T*)work, lwork, info); 00520 } 00521 else 00522 if(is_supported_complex_double<eT>::value == true) 00523 { 00524 typedef std::complex<double> T; 00525 zgels_(trans, m, n, nrhs, (T*)a, lda, (T*)b, ldb, (T*)work, lwork, info); 00526 } 00527 }