max@0
|
1 // Copyright (C) 2008-2011 NICTA (www.nicta.com.au)
|
max@0
|
2 // Copyright (C) 2008-2011 Conrad Sanderson
|
max@0
|
3 //
|
max@0
|
4 // This file is part of the Armadillo C++ library.
|
max@0
|
5 // It is provided without any warranty of fitness
|
max@0
|
6 // for any purpose. You can redistribute this file
|
max@0
|
7 // and/or modify it under the terms of the GNU
|
max@0
|
8 // Lesser General Public License (LGPL) as published
|
max@0
|
9 // by the Free Software Foundation, either version 3
|
max@0
|
10 // of the License or (at your option) any later version.
|
max@0
|
11 // (see http://www.opensource.org/licenses for more info)
|
max@0
|
12
|
max@0
|
13
|
max@0
|
14 #ifdef ARMA_USE_ATLAS
|
max@0
|
15
|
max@0
|
16
|
max@0
|
17 //! \namespace atlas namespace for ATLAS functions (imported from the global namespace)
|
max@0
|
18 namespace atlas
|
max@0
|
19 {
|
max@0
|
20
|
max@0
|
21 using ::CblasColMajor;
|
max@0
|
22 using ::CblasNoTrans;
|
max@0
|
23 using ::CblasTrans;
|
max@0
|
24 using ::CblasConjTrans;
|
max@0
|
25
|
max@0
|
26 #if defined(ARMA_USE_WRAPPER)
|
max@0
|
27 extern "C"
|
max@0
|
28 {
|
max@0
|
29
|
max@0
|
30 float wrapper_cblas_sdot(const int N, const float *X, const int incX, const float *Y, const int incY);
|
max@0
|
31 double wrapper_cblas_ddot(const int N, const double *X, const int incX, const double *Y, const int incY);
|
max@0
|
32
|
max@0
|
33 void wrapper_cblas_cdotu_sub(const int N, const void *X, const int incX, const void *Y, const int incY, void *dotu);
|
max@0
|
34 void wrapper_cblas_zdotu_sub(const int N, const void *X, const int incX, const void *Y, const int incY, void *dotu);
|
max@0
|
35
|
max@0
|
36
|
max@0
|
37 void wrapper_cblas_sgemv(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, const int M, const int N, const float alpha,
|
max@0
|
38 const float *A, const int lda, const float *X, const int incX, const float beta, float *Y, const int incY);
|
max@0
|
39
|
max@0
|
40 void wrapper_cblas_dgemv(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, const int M, const int N, const double alpha,
|
max@0
|
41 const double *A, const int lda, const double *X, const int incX, const double beta, double *Y, const int incY);
|
max@0
|
42
|
max@0
|
43 void wrapper_cblas_cgemv(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, const int M, const int N, const void *alpha,
|
max@0
|
44 const void *A, const int lda, const void *X, const int incX, const void *beta, void *Y, const int incY);
|
max@0
|
45
|
max@0
|
46 void wrapper_cblas_zgemv(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, const int M, const int N, const void *alpha,
|
max@0
|
47 const void *A, const int lda, const void *X, const int incX, const void *beta, void *Y, const int incY);
|
max@0
|
48
|
max@0
|
49
|
max@0
|
50
|
max@0
|
51 void wrapper_cblas_sgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_TRANSPOSE TransB,
|
max@0
|
52 const int M, const int N, const int K, const float alpha,
|
max@0
|
53 const float *A, const int lda, const float *B, const int ldb, const float beta, float *C, const int ldc);
|
max@0
|
54
|
max@0
|
55 void wrapper_cblas_dgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_TRANSPOSE TransB,
|
max@0
|
56 const int M, const int N, const int K, const double alpha,
|
max@0
|
57 const double *A, const int lda, const double *B, const int ldb, const double beta, double *C, const int ldc);
|
max@0
|
58
|
max@0
|
59 void wrapper_cblas_cgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_TRANSPOSE TransB,
|
max@0
|
60 const int M, const int N, const int K, const void *alpha,
|
max@0
|
61 const void *A, const int lda, const void *B, const int ldb, const void *beta, void *C, const int ldc);
|
max@0
|
62
|
max@0
|
63 void wrapper_cblas_zgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_TRANSPOSE TransB,
|
max@0
|
64 const int M, const int N, const int K, const void *alpha,
|
max@0
|
65 const void *A, const int lda, const void *B, const int ldb, const void *beta, void *C, const int ldc);
|
max@0
|
66
|
max@0
|
67
|
max@0
|
68 int wrapper_clapack_sgetrf(const enum CBLAS_ORDER Order, const int M, const int N, float *A, const int lda, int *ipiv);
|
max@0
|
69 int wrapper_clapack_dgetrf(const enum CBLAS_ORDER Order, const int M, const int N, double *A, const int lda, int *ipiv);
|
max@0
|
70 int wrapper_clapack_cgetrf(const enum CBLAS_ORDER Order, const int M, const int N, void *A, const int lda, int *ipiv);
|
max@0
|
71 int wrapper_clapack_zgetrf(const enum CBLAS_ORDER Order, const int M, const int N, void *A, const int lda, int *ipiv);
|
max@0
|
72
|
max@0
|
73 int wrapper_clapack_sgetri(const enum CBLAS_ORDER Order, const int N, float *A, const int lda, const int *ipiv);
|
max@0
|
74 int wrapper_clapack_dgetri(const enum CBLAS_ORDER Order, const int N, double *A, const int lda, const int *ipiv);
|
max@0
|
75 int wrapper_clapack_cgetri(const enum CBLAS_ORDER Order, const int N, void *A, const int lda, const int *ipiv);
|
max@0
|
76 int wrapper_clapack_zgetri(const enum CBLAS_ORDER Order, const int N, void *A, const int lda, const int *ipiv);
|
max@0
|
77
|
max@0
|
78 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);
|
max@0
|
79 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);
|
max@0
|
80 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);
|
max@0
|
81 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);
|
max@0
|
82
|
max@0
|
83 }
|
max@0
|
84 #endif
|
max@0
|
85
|
max@0
|
86 }
|
max@0
|
87
|
max@0
|
88
|
max@0
|
89 #endif
|