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