LAMA
|
00001 00033 #ifndef LAMA_OPENMPLAPACK_HPP_ 00034 #define LAMA_OPENMPLAPACK_HPP_ 00035 00036 // for dll_import 00037 #include <lama/config.hpp> 00038 00039 // others 00040 #include <lama/LAMATypes.hpp> 00041 #include <lama/SyncToken.hpp> 00042 00043 #include <lama/openmp/BLASHelper.hpp> 00044 00045 // logging 00046 #include <logging/logging.hpp> 00047 00048 #include <omp.h> 00049 00050 namespace lama 00051 { 00052 00053 class OpenMPLAPACK 00054 { 00055 public: 00056 00101 template<typename T> 00102 static IndexType getrf( 00103 const enum CBLAS_ORDER order, 00104 const IndexType m, 00105 const IndexType n, 00106 T* const a, 00107 const IndexType lda, 00108 IndexType* const ipiv ); 00109 00113 template<typename T> 00114 static IndexType getri( 00115 const enum CBLAS_ORDER order, 00116 const IndexType n, 00117 T* const A, 00118 const IndexType lda, 00119 IndexType* const ipiv ); 00120 00123 template<typename T> 00124 static void getinv ( const IndexType n, T* a, const IndexType lda ); 00125 00161 template<typename T> 00162 static IndexType trtrs( 00163 const enum CBLAS_ORDER order, 00164 const enum CBLAS_UPLO uplo, 00165 const enum CBLAS_TRANSPOSE trans, 00166 const enum CBLAS_DIAG diag, 00167 const IndexType n, 00168 const IndexType nrhs, 00169 const T* A, 00170 const IndexType lda, 00171 T* B, 00172 const IndexType ldb ); 00173 00207 template<typename T> 00208 static IndexType tptrs( 00209 const enum CBLAS_ORDER order, 00210 const enum CBLAS_UPLO uplo, 00211 const enum CBLAS_TRANSPOSE trans, 00212 const enum CBLAS_DIAG diag, 00213 const IndexType n, 00214 const IndexType nrhs, 00215 const T* AP, 00216 T* B, 00217 const IndexType ldb ); 00218 00248 template<typename T> 00249 static void laswp( 00250 const enum CBLAS_ORDER order, 00251 const IndexType n, 00252 T* A, 00253 const IndexType lda, 00254 const IndexType k1, 00255 const IndexType k2, 00256 const IndexType* ipiv, 00257 const IndexType incx, 00258 SyncToken* syncToken ); 00259 00260 private: 00261 00262 LAMA_LOG_DECL_STATIC_LOGGER( logger ); 00263 00264 }; /* OpenMPLAPACK */ 00265 00266 } /* namespace lama */ 00267 00268 #endif // LAMA_OPENMPLAPACK_HPP_