LAMA
/home/brandes/workspace/LAMA/src/lama/openmp/OpenMPBLAS2.hpp
Go to the documentation of this file.
00001 
00033 #ifndef LAMA_OPENMPBLAS2_HPP_
00034 #define LAMA_OPENMPBLAS2_HPP_
00035 
00036 // for dll_import
00037 #include <lama/config.hpp>
00038 
00039 
00040 // others
00041 #include <lama/LAMATypes.hpp>
00042 #include <lama/SyncToken.hpp>
00043 
00044 #include <lama/openmp/BLASHelper.hpp>
00045 
00046 // logging
00047 #include <logging/logging.hpp>
00048 
00049 namespace lama
00050 {
00051 
00058 class LAMA_DLL_IMPORTEXPORT OpenMPBLAS2
00059 {
00060 public:
00061 
00065     template<typename T>
00066     static void gemv(
00067         const enum CBLAS_ORDER order,
00068         const enum CBLAS_TRANSPOSE trans,
00069         const IndexType m,
00070         const IndexType n,
00071         const T alpha,
00072         const T* A,
00073         const IndexType lda,
00074         const T* x,
00075         const IndexType incX,
00076         const T beta,
00077         T* y,
00078         const IndexType incY,
00079         SyncToken* syncToken );
00080 
00084     template<typename T>
00085     static void symv(
00086         const enum CBLAS_ORDER order,
00087         const enum CBLAS_UPLO uplo,
00088         const IndexType n,
00089         const T alpha,
00090         const T* A,
00091         const IndexType lda,
00092         const T* x,
00093         const IndexType incX,
00094         const T beta,
00095         T* y,
00096         const IndexType incY,
00097         SyncToken* syncToken );
00098 
00102     template<typename T>
00103     static void trmv(
00104         const enum CBLAS_ORDER order,
00105         const enum CBLAS_UPLO uplo,
00106         const enum CBLAS_TRANSPOSE trans,
00107         const enum CBLAS_DIAG diag,
00108         const IndexType n,
00109         const T* A,
00110         const IndexType lda,
00111         T* x,
00112         const IndexType incX,
00113         SyncToken* syncToken );
00114 
00118     template<typename T>
00119     static void trsv(
00120         const enum CBLAS_ORDER order,
00121         const enum CBLAS_UPLO uplo,
00122         const enum CBLAS_TRANSPOSE trans,
00123         const enum CBLAS_DIAG diag,
00124         const IndexType n,
00125         const T* A,
00126         const IndexType lda,
00127         T* x,
00128         const IndexType incX,
00129         SyncToken* syncToken );
00130 
00134     template<typename T>
00135     static void gbmv(
00136         const enum CBLAS_ORDER order,
00137         const enum CBLAS_TRANSPOSE trans,
00138         const IndexType m,
00139         const IndexType n,
00140         const IndexType kl,
00141         const IndexType ku,
00142         const T alpha,
00143         const T* A,
00144         const IndexType lda,
00145         const T* x,
00146         const IndexType incX,
00147         const T beta,
00148         T* y,
00149         const IndexType incY,
00150         SyncToken* syncToken );
00151 
00155     template<typename T>
00156     static void sbmv(
00157         const enum CBLAS_ORDER order,
00158         const enum CBLAS_UPLO uplo,
00159         const IndexType n,
00160         const IndexType k,
00161         const T alpha,
00162         const T* A,
00163         const IndexType lda,
00164         const T* x,
00165         const IndexType incX,
00166         const T beta,
00167         T* y,
00168         const IndexType incY,
00169         SyncToken* syncToken );
00170 
00174     template<typename T>
00175     static void tbmv(
00176         const enum CBLAS_ORDER order,
00177         const enum CBLAS_UPLO uplo,
00178         const enum CBLAS_TRANSPOSE trans,
00179         const enum CBLAS_DIAG diag,
00180         const IndexType n,
00181         const IndexType k,
00182         const T* A,
00183         const IndexType lda,
00184         T* x,
00185         const IndexType incX,
00186         SyncToken* syncToken );
00187 
00191     template<typename T>
00192     static void tbsv(
00193         const enum CBLAS_ORDER order,
00194         const enum CBLAS_UPLO uplo,
00195         const enum CBLAS_TRANSPOSE trans,
00196         const enum CBLAS_DIAG diag,
00197         const IndexType n,
00198         const IndexType k,
00199         const T* A,
00200         const IndexType lda,
00201         T* x,
00202         const IndexType incX,
00203         SyncToken* syncToken );
00204 
00208     template<typename T>
00209     static void ger(
00210         const enum CBLAS_ORDER order,
00211         const IndexType m,
00212         const IndexType n,
00213         const T alpha,
00214         const T* x,
00215         const IndexType incX,
00216         const T* y,
00217         const IndexType incY,
00218         T* A,
00219         const IndexType lda,
00220         SyncToken* syncToken );
00221 
00225     template<typename T>
00226     static void syr(
00227         const enum CBLAS_ORDER order,
00228         const enum CBLAS_UPLO uplo,
00229         const IndexType n,
00230         const T alpha,
00231         const T* x,
00232         const IndexType incX,
00233         T* A,
00234         const IndexType lda,
00235         SyncToken* syncToken );
00236 
00240     template<typename T>
00241     static void syr2(
00242         const enum CBLAS_ORDER order,
00243         const enum CBLAS_UPLO uplo,
00244         const IndexType n,
00245         const T alpha,
00246         const T* x,
00247         const IndexType incX,
00248         const T* y,
00249         const IndexType incY,
00250         T* A,
00251         const IndexType lda,
00252         SyncToken* syncToken );
00253 
00257     template<typename T>
00258     static void spmv(
00259         const enum CBLAS_ORDER order,
00260         const enum CBLAS_UPLO uplo,
00261         const IndexType n,
00262         const T alpha,
00263         const T* AP,
00264         const T* x,
00265         const IndexType incX,
00266         const T beta,
00267         T* y,
00268         const IndexType incY,
00269         SyncToken* syncToken );
00270 
00274     template<typename T>
00275     static void spr(
00276         const enum CBLAS_ORDER order,
00277         const enum CBLAS_UPLO uplo,
00278         const IndexType n,
00279         const T alpha,
00280         const T* x,
00281         const IndexType incX,
00282         T* AP,
00283         SyncToken* syncToken );
00284 
00288     template<typename T>
00289     static void spr2(
00290         const enum CBLAS_ORDER order,
00291         const enum CBLAS_UPLO uplo,
00292         const IndexType n,
00293         const T alpha,
00294         const T* x,
00295         const IndexType incX,
00296         const T* y,
00297         const IndexType incY,
00298         T* AP,
00299         SyncToken* syncToken );
00300 
00304     template<typename T>
00305     static void tpmv(
00306         const enum CBLAS_ORDER order,
00307         const enum CBLAS_UPLO uplo,
00308         const enum CBLAS_TRANSPOSE trans,
00309         const enum CBLAS_DIAG diag,
00310         const IndexType n,
00311         const T* AP,
00312         T* x,
00313         const IndexType incX,
00314         SyncToken* syncToken );
00315 
00319     template<typename T>
00320     static void tpsv(
00321         const enum CBLAS_ORDER order,
00322         const enum CBLAS_UPLO uplo,
00323         const enum CBLAS_TRANSPOSE trans,
00324         const enum CBLAS_DIAG diag,
00325         const IndexType n,
00326         const T* Ap,
00327         T* x,
00328         const IndexType incX,
00329         SyncToken* syncToken );
00330 
00335     template<typename T>
00336     static void agemvpbv(
00337         int n,
00338         const double alpha,
00339         const double* const a,
00340         int m,
00341         const double* const x,
00342         const double beta,
00343         const double* const z,
00344         double* y,
00345         SyncToken* syncToken );
00346 
00347 private:
00348 
00349     LAMA_LOG_DECL_STATIC_LOGGER( logger );
00350 
00351 };
00352 
00353 } /* namespace lama */
00354 
00355 #endif // LAMA_OPENMPBLAS2_HPP_