4 #undef ARMA_USE_WRAPPER 24 #if defined(ARMA_USE_BLAS) 38 void arma_fortran_prefix(arma_sgemv)(
const char* transA,
const blas_int* m,
const blas_int* n,
const float* alpha,
const float* A,
const blas_int* ldA,
const float* x,
const blas_int* incx,
const float* beta,
float* y,
const blas_int* incy)
40 arma_fortran_noprefix(arma_sgemv)(transA, m, n, alpha, A, ldA, x, incx, beta, y, incy);
43 void arma_fortran_prefix(arma_dgemv)(
const char* transA,
const blas_int* m,
const blas_int* n,
const double* alpha,
const double* A,
const blas_int* ldA,
const double* x,
const blas_int* incx,
const double* beta,
double* y,
const blas_int* incy)
45 arma_fortran_noprefix(arma_dgemv)(transA, m, n, alpha, A, ldA, x, incx, beta, y, incy);
48 void arma_fortran_prefix(arma_cgemv)(
const char* transA,
const blas_int* m,
const blas_int* n,
const void* alpha,
const void* A,
const blas_int* ldA,
const void* x,
const blas_int* incx,
const void* beta,
void* y,
const blas_int* incy)
50 arma_fortran_noprefix(arma_cgemv)(transA, m, n, alpha, A, ldA, x, incx, beta, y, incy);
53 void arma_fortran_prefix(arma_zgemv)(
const char* transA,
const blas_int* m,
const blas_int* n,
const void* alpha,
const void* A,
const blas_int* ldA,
const void* x,
const blas_int* incx,
const void* beta,
void* y,
const blas_int* incy)
55 arma_fortran_noprefix(arma_zgemv)(transA, m, n, alpha, A, ldA, x, incx, beta, y, incy);
60 void arma_fortran_prefix(arma_sgemm)(
const char* transA,
const char* transB,
const blas_int* m,
const blas_int* n,
const blas_int* k,
const float* alpha,
const float* A,
const blas_int* ldA,
const float* B,
const blas_int* ldB,
const float* beta,
float* C,
const blas_int* ldC)
62 arma_fortran_noprefix(arma_sgemm)(transA, transB, m, n, k, alpha, A, ldA, B, ldB, beta, C, ldC);
65 void arma_fortran_prefix(arma_dgemm)(
const char* transA,
const char* transB,
const blas_int* m,
const blas_int* n,
const blas_int* k,
const double* alpha,
const double* A,
const blas_int* ldA,
const double* B,
const blas_int* ldB,
const double* beta,
double* C,
const blas_int* ldC)
67 arma_fortran_noprefix(arma_dgemm)(transA, transB, m, n, k, alpha, A, ldA, B, ldB, beta, C, ldC);
70 void arma_fortran_prefix(arma_cgemm)(
const char* transA,
const char* transB,
const blas_int* m,
const blas_int* n,
const blas_int* k,
const void* alpha,
const void* A,
const blas_int* ldA,
const void* B,
const blas_int* ldB,
const void* beta,
void* C,
const blas_int* ldC)
72 arma_fortran_noprefix(arma_cgemm)(transA, transB, m, n, k, alpha, A, ldA, B, ldB, beta, C, ldC);
75 void arma_fortran_prefix(arma_zgemm)(
const char* transA,
const char* transB,
const blas_int* m,
const blas_int* n,
const blas_int* k,
const void* alpha,
const void* A,
const blas_int* ldA,
const void* B,
const blas_int* ldB,
const void* beta,
void* C,
const blas_int* ldC)
77 arma_fortran_noprefix(arma_zgemm)(transA, transB, m, n, k, alpha, A, ldA, B, ldB, beta, C, ldC);
84 #if defined(ARMA_USE_LAPACK) 176 void arma_fortran_prefix(arma_sgeev)(
char* jobvl,
char* jobvr,
blas_int* n,
float* a,
blas_int* lda,
float* wr,
float* wi,
float* vl,
blas_int* ldvl,
float* vr,
blas_int* ldvr,
float* work,
blas_int* lwork,
blas_int* info)
178 arma_fortran_noprefix(arma_sgeev)(jobvl, jobvr, n, a, lda, wr, wi, vl, ldvl, vr, ldvr, work, lwork, info);
181 void arma_fortran_prefix(arma_dgeev)(
char* jobvl,
char* jobvr,
blas_int* n,
double* a,
blas_int* lda,
double* wr,
double* wi,
double* vl,
blas_int* ldvl,
double* vr,
blas_int* ldvr,
double* work,
blas_int* lwork,
blas_int* info)
183 arma_fortran_noprefix(arma_dgeev)(jobvl, jobvr, n, a, lda, wr, wi, vl, ldvl, vr, ldvr, work, lwork, info);
188 void arma_fortran_prefix(arma_cgeev)(
char* jobvl,
char* jobvr,
blas_int* n,
void* a,
blas_int* lda,
void* w,
void* vl,
blas_int* ldvl,
void* vr,
blas_int* ldvr,
void* work,
blas_int* lwork,
float* rwork,
blas_int* info)
190 arma_fortran_noprefix(arma_cgeev)(jobvl, jobvr, n, a, lda, w, vl, ldvl, vr, ldvr, work, lwork, rwork, info);
193 void arma_fortran_prefix(arma_zgeev)(
char* jobvl,
char* jobvr,
blas_int* n,
void* a,
blas_int* lda,
void* w,
void* vl,
blas_int* ldvl,
void* vr,
blas_int* ldvr,
void* work,
blas_int* lwork,
double* rwork,
blas_int* info)
195 arma_fortran_noprefix(arma_zgeev)(jobvl, jobvr, n, a, lda, w, vl, ldvl, vr, ldvr, work, lwork, rwork, info);
290 void arma_fortran_prefix(arma_sgesvd)(
char* jobu,
char* jobvt,
blas_int* m,
blas_int* n,
float* a,
blas_int* lda,
float* s,
float* u,
blas_int* ldu,
float* vt,
blas_int* ldvt,
float* work,
blas_int* lwork,
blas_int* info)
292 arma_fortran_noprefix(arma_sgesvd)(jobu, jobvt, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, info);
295 void arma_fortran_prefix(arma_dgesvd)(
char* jobu,
char* jobvt,
blas_int* m,
blas_int* n,
double* a,
blas_int* lda,
double* s,
double* u,
blas_int* ldu,
double* vt,
blas_int* ldvt,
double* work,
blas_int* lwork,
blas_int* info)
297 arma_fortran_noprefix(arma_dgesvd)(jobu, jobvt, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, info);
302 void arma_fortran_prefix(arma_cgesvd)(
char* jobu,
char* jobvt,
blas_int* m,
blas_int* n,
void* a,
blas_int* lda,
float* s,
void* u,
blas_int* ldu,
void* vt,
blas_int* ldvt,
void* work,
blas_int* lwork,
float* rwork,
blas_int* info)
304 arma_fortran_noprefix(arma_cgesvd)(jobu, jobvt, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, rwork, info);
307 void arma_fortran_prefix(arma_zgesvd)(
char* jobu,
char* jobvt,
blas_int* m,
blas_int* n,
void* a,
blas_int* lda,
double* s,
void* u,
blas_int* ldu,
void* vt,
blas_int* ldvt,
void* work,
blas_int* lwork,
double* rwork,
blas_int* info)
309 arma_fortran_noprefix(arma_zgesvd)(jobu, jobvt, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, rwork, info);
336 void arma_fortran_prefix(arma_sgels)(
char*
trans,
blas_int* m,
blas_int* n,
blas_int* nrhs,
float* a,
blas_int* lda,
float* b,
blas_int* ldb,
float* work,
blas_int* lwork,
blas_int* info)
338 arma_fortran_noprefix(arma_sgels)(
trans, m, n, nrhs, a, lda, b, ldb, work, lwork, info);
341 void arma_fortran_prefix(arma_dgels)(
char*
trans,
blas_int* m,
blas_int* n,
blas_int* nrhs,
double* a,
blas_int* lda,
double* b,
blas_int* ldb,
double* work,
blas_int* lwork,
blas_int* info)
343 arma_fortran_noprefix(arma_dgels)(
trans, m, n, nrhs, a, lda, b, ldb, work, lwork, info);
346 void arma_fortran_prefix(arma_cgels)(
char*
trans,
blas_int* m,
blas_int* n,
blas_int* nrhs,
void* a,
blas_int* lda,
void* b,
blas_int* ldb,
void* work,
blas_int* lwork,
blas_int* info)
348 arma_fortran_noprefix(arma_cgels)(
trans, m, n, nrhs, a, lda, b, ldb, work, lwork, info);
351 void arma_fortran_prefix(arma_zgels)(
char*
trans,
blas_int* m,
blas_int* n,
blas_int* nrhs,
void* a,
blas_int* lda,
void* b,
blas_int* ldb,
void* work,
blas_int* lwork,
blas_int* info)
353 arma_fortran_noprefix(arma_zgels)(
trans, m, n, nrhs, a, lda, b, ldb, work, lwork, info);
382 void arma_fortran_prefix(arma_sgees)(
char* jobvs,
char*
sort,
blas_int* select,
blas_int* n,
float* a,
blas_int* lda,
blas_int* sdim,
float* wr,
float* wi,
float* vs,
blas_int* ldvs,
float* work,
blas_int* lwork,
blas_int* bwork,
blas_int* info)
384 arma_fortran_noprefix(arma_sgees)(jobvs,
sort, select, n, a, lda, sdim, wr, wi, vs, ldvs, work, lwork, bwork, info);
387 void arma_fortran_prefix(arma_dgees)(
char* jobvs,
char*
sort,
blas_int* select,
blas_int* n,
double* a,
blas_int* lda,
blas_int* sdim,
double* wr,
double* wi,
double* vs,
blas_int* ldvs,
double* work,
blas_int* lwork,
blas_int* bwork,
blas_int* info)
389 arma_fortran_noprefix(arma_dgees)(jobvs,
sort, select, n, a, lda, sdim, wr, wi, vs, ldvs, work, lwork, bwork, info);
394 void arma_fortran_prefix(arma_cgees)(
char* jobvs,
char*
sort,
blas_int* select,
blas_int* n,
void* a,
blas_int* lda,
blas_int* sdim,
void* w,
void* vs,
blas_int* ldvs,
void* work,
blas_int* lwork,
float* rwork,
blas_int* bwork,
blas_int* info)
396 arma_fortran_noprefix(arma_cgees)(jobvs,
sort, select, n, a, lda, sdim, w, vs, ldvs, work, lwork, rwork, bwork, info);
399 void arma_fortran_prefix(arma_zgees)(
char* jobvs,
char*
sort,
blas_int* select,
blas_int* n,
void* a,
blas_int* lda,
blas_int* sdim,
void* w,
void* vs,
blas_int* ldvs,
void* work,
blas_int* lwork,
double* rwork,
blas_int* bwork,
blas_int* info)
401 arma_fortran_noprefix(arma_zgees)(jobvs,
sort, select, n, a, lda, sdim, w, vs, ldvs, work, lwork, rwork, bwork, info);
406 void arma_fortran_prefix(arma_strsyl)(
char* transa,
char* transb,
blas_int* isgn,
blas_int* m,
blas_int* n,
const float* a,
blas_int* lda,
const float* b,
blas_int* ldb,
float* c,
blas_int* ldc,
float* scale,
blas_int* info)
408 arma_fortran_noprefix(arma_strsyl)(transa, transb, isgn, m, n, a, lda, b, ldb, c, ldc, scale, info);
411 void arma_fortran_prefix(arma_dtrsyl)(
char* transa,
char* transb,
blas_int* isgn,
blas_int* m,
blas_int* n,
const double* a,
blas_int* lda,
const double* b,
blas_int* ldb,
double* c,
blas_int* ldc,
double* scale,
blas_int* info)
413 arma_fortran_noprefix(arma_dtrsyl)(transa, transb, isgn, m, n, a, lda, b, ldb, c, ldc, scale, info);
416 void arma_fortran_prefix(arma_ctrsyl)(
char* transa,
char* transb,
blas_int* isgn,
blas_int* m,
blas_int* n,
const void* a,
blas_int* lda,
const void* b,
blas_int* ldb,
void* c,
blas_int* ldc,
float* scale,
blas_int* info)
418 arma_fortran_noprefix(arma_ctrsyl)(transa, transb, isgn, m, n, a, lda, b, ldb, c, ldc, scale, info);
421 void arma_fortran_prefix(arma_ztrsyl)(
char* transa,
char* transb,
blas_int* isgn,
blas_int* m,
blas_int* n,
const void* a,
blas_int* lda,
const void* b,
blas_int* ldb,
void* c,
blas_int* ldc,
double* scale,
blas_int* info)
423 arma_fortran_noprefix(arma_ztrsyl)(transa, transb, isgn, m, n, a, lda, b, ldb, c, ldc, scale, info);
476 #if defined(ARMA_USE_ATLAS) 478 float wrapper_cblas_sdot(
const int N,
const float *X,
const int incX,
const float *Y,
const int incY)
480 return cblas_sdot(N, X, incX, Y, incY);
483 double wrapper_cblas_ddot(
const int N,
const double *X,
const int incX,
const double *Y,
const int incY)
485 return cblas_ddot(N, X, incX, Y, incY);
488 void wrapper_cblas_cdotu_sub(
const int N,
const void *X,
const int incX,
const void *Y,
const int incY,
void *dotu)
490 cblas_cdotu_sub(N, X, incX, Y, incY, dotu);
493 void wrapper_cblas_zdotu_sub(
const int N,
const void *X,
const int incX,
const void *Y,
const int incY,
void *dotu)
495 cblas_zdotu_sub(N, X, incX, Y, incY, dotu);
500 void wrapper_cblas_sgemv(
const enum CBLAS_ORDER Order,
const enum CBLAS_TRANSPOSE TransA,
const int M,
const int N,
const float alpha,
501 const float *A,
const int lda,
const float *X,
const int incX,
const float beta,
float *Y,
const int incY)
503 cblas_sgemv(Order, TransA, M, N, alpha, A, lda, X, incX, beta, Y, incY);
506 void wrapper_cblas_dgemv(
const enum CBLAS_ORDER Order,
const enum CBLAS_TRANSPOSE TransA,
const int M,
const int N,
const double alpha,
507 const double *A,
const int lda,
const double *X,
const int incX,
const double beta,
double *Y,
const int incY)
509 cblas_dgemv(Order, TransA, M, N, alpha, A, lda, X, incX, beta, Y, incY);
512 void wrapper_cblas_cgemv(
const enum CBLAS_ORDER Order,
const enum CBLAS_TRANSPOSE TransA,
const int M,
const int N,
const void *alpha,
513 const void *A,
const int lda,
const void *X,
const int incX,
const void *beta,
void *Y,
const int incY)
515 cblas_cgemv(Order, TransA, M, N, alpha, A, lda, X, incX, beta, Y, incY);
518 void wrapper_cblas_zgemv(
const enum CBLAS_ORDER Order,
const enum CBLAS_TRANSPOSE TransA,
const int M,
const int N,
const void *alpha,
519 const void *A,
const int lda,
const void *X,
const int incX,
const void *beta,
void *Y,
const int incY)
521 cblas_zgemv(Order, TransA, M, N, alpha, A, lda, X, incX, beta, Y, incY);
526 void wrapper_cblas_sgemm(
const enum CBLAS_ORDER Order,
const enum CBLAS_TRANSPOSE TransA,
const enum CBLAS_TRANSPOSE TransB,
527 const int M,
const int N,
const int K,
const float alpha,
528 const float *A,
const int lda,
const float *B,
const int ldb,
const float beta,
float *C,
const int ldc)
530 cblas_sgemm(Order, TransA, TransB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
533 void wrapper_cblas_dgemm(
const enum CBLAS_ORDER Order,
const enum CBLAS_TRANSPOSE TransA,
const enum CBLAS_TRANSPOSE TransB,
534 const int M,
const int N,
const int K,
const double alpha,
535 const double *A,
const int lda,
const double *B,
const int ldb,
const double beta,
double *C,
const int ldc)
537 cblas_dgemm(Order, TransA, TransB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
540 void wrapper_cblas_cgemm(
const enum CBLAS_ORDER Order,
const enum CBLAS_TRANSPOSE TransA,
const enum CBLAS_TRANSPOSE TransB,
541 const int M,
const int N,
const int K,
const void *alpha,
542 const void *A,
const int lda,
const void *B,
const int ldb,
const void *beta,
void *C,
const int ldc)
544 cblas_cgemm(Order, TransA, TransB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
547 void wrapper_cblas_zgemm(
const enum CBLAS_ORDER Order,
const enum CBLAS_TRANSPOSE TransA,
const enum CBLAS_TRANSPOSE TransB,
548 const int M,
const int N,
const int K,
const void *alpha,
549 const void *A,
const int lda,
const void *B,
const int ldb,
const void *beta,
void *C,
const int ldc)
551 cblas_zgemm(Order, TransA, TransB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
556 int wrapper_clapack_sgetrf(
const enum CBLAS_ORDER Order,
const int M,
const int N,
float *A,
const int lda,
int *ipiv)
558 return clapack_sgetrf(Order, M, N, A, lda, ipiv);
561 int wrapper_clapack_dgetrf(
const enum CBLAS_ORDER Order,
const int M,
const int N,
double *A,
const int lda,
int *ipiv)
563 return clapack_dgetrf(Order, M, N, A, lda, ipiv);
566 int wrapper_clapack_cgetrf(
const enum CBLAS_ORDER Order,
const int M,
const int N,
void *A,
const int lda,
int *ipiv)
568 return clapack_cgetrf(Order, M, N, A, lda, ipiv);
571 int wrapper_clapack_zgetrf(
const enum CBLAS_ORDER Order,
const int M,
const int N,
void *A,
const int lda,
int *ipiv)
573 return clapack_zgetrf(Order, M, N, A, lda, ipiv);
578 int wrapper_clapack_sgetri(
const enum CBLAS_ORDER Order,
const int N,
float *A,
const int lda,
const int *ipiv)
580 return clapack_sgetri(Order, N, A, lda, ipiv);
583 int wrapper_clapack_dgetri(
const enum CBLAS_ORDER Order,
const int N,
double *A,
const int lda,
const int *ipiv)
585 return clapack_dgetri(Order, N, A, lda, ipiv);
588 int wrapper_clapack_cgetri(
const enum CBLAS_ORDER Order,
const int N,
void *A,
const int lda,
const int *ipiv)
590 return clapack_cgetri(Order, N, A, lda, ipiv);
593 int wrapper_clapack_zgetri(
const enum CBLAS_ORDER Order,
const int N,
void *A,
const int lda,
const int *ipiv)
595 return clapack_zgetri(Order, N, A, lda, ipiv);
600 int wrapper_clapack_sgesv(
const enum CBLAS_ORDER Order,
const int N,
const int NRHS,
float *A,
const int lda,
int *ipiv,
float *B,
const int ldb)
602 return clapack_sgesv(Order, N, NRHS, A, lda, ipiv, B, ldb);
605 int wrapper_clapack_dgesv(
const enum CBLAS_ORDER Order,
const int N,
const int NRHS,
double *A,
const int lda,
int *ipiv,
double *B,
const int ldb)
607 return clapack_dgesv(Order, N, NRHS, A, lda, ipiv, B, ldb);
610 int wrapper_clapack_cgesv(
const enum CBLAS_ORDER Order,
const int N,
const int NRHS,
void *A,
const int lda,
int *ipiv,
void *B,
const int ldb)
612 return clapack_cgesv(Order, N, NRHS, A, lda, ipiv, B, ldb);
615 int wrapper_clapack_zgesv(
const enum CBLAS_ORDER Order,
const int N,
const int NRHS,
void *A,
const int lda,
int *ipiv,
void *B,
const int ldb)
617 return clapack_zgesv(Order, N, NRHS, A, lda, ipiv, B, ldb);
#define arma_fortran_prefix(function)
arma_inline const Op< T1, op_htrans > trans(const Base< typename T1::elem_type, T1 > &X)
#define arma_fortran_noprefix(function)
arma_inline const Op< T1, op_sort > sort(const Base< typename T1::elem_type, T1 > &X, const uword sort_type=0, const uword dim=0)