LAMA
/home/brandes/workspace/LAMA/src/lama/openmp/OpenMPBLAS1.hpp
Go to the documentation of this file.
00001 
00033 #ifndef LAMA_OPENMPBLAS1_HPP_
00034 #define LAMA_OPENMPBLAS1_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 // logging
00044 #include <logging/logging.hpp>
00045 
00046 namespace lama
00047 {
00048 
00054 class LAMA_DLL_IMPORTEXPORT OpenMPBLAS1
00055 {
00056 public:
00057 
00061     template<typename T>
00062     static void scal( const IndexType n, const T alpha, T* x, const IndexType incX, SyncToken* syncToken );
00063 
00067     template<typename T>
00068     static T nrm2( const IndexType n, const T* x, const IndexType incX, SyncToken* syncToken );
00069 
00073     template<typename T>
00074     static T asum( const IndexType n, const T* x, const IndexType incX, SyncToken* syncToken );
00075 
00079     template<typename T>
00080     static IndexType iamax( const IndexType n, const T* x, const IndexType incX, SyncToken* syncToken );
00081 
00085     template<typename T>
00086     static T viamax( const IndexType n, const T* x, const IndexType incX, SyncToken* syncToken );
00087 
00091     template<typename T>
00092     static void swap(
00093         const IndexType n,
00094         T* y,
00095         const IndexType incY,
00096         T* x,
00097         const IndexType incX,
00098         SyncToken* syncToken );
00099 
00103     template<typename T>
00104     static void copy(
00105         const IndexType n,
00106         const T* x,
00107         const IndexType incX,
00108         T* y,
00109         const IndexType incY,
00110         SyncToken* syncToken );
00111 
00115     template<typename T>
00116     static void axpy(
00117         const IndexType n,
00118         const T alpha,
00119         const T* x,
00120         const IndexType incX,
00121         T* y,
00122         const IndexType incY,
00123         SyncToken* syncToken );
00124 
00128     template<typename T>
00129     static T dot(
00130         const IndexType n,
00131         const T* x,
00132         const IndexType incX,
00133         const T* y,
00134         const IndexType incY,
00135         SyncToken* syncToken );
00136 
00140     template<typename T>
00141     static void sum(
00142         const IndexType n,
00143         T alpha,
00144         const T* x,
00145         T beta,
00146         const T* y,
00147         T* z,
00148         SyncToken* syncToken );
00149 
00153     template<typename T>
00154     static void rot(
00155         const IndexType n,
00156         T* x,
00157         const IndexType incX,
00158         T* y,
00159         const IndexType incY,
00160         const T c,
00161         const T s,
00162         SyncToken* syncToken );
00163 
00167     template<typename T>
00168     static void rotm(
00169         const IndexType n,
00170         T* x,
00171         const IndexType incX,
00172         T* y,
00173         const IndexType incY,
00174         const T* P,
00175         SyncToken* syncToken );
00176 
00180     template<typename T>
00181     static void rotg( T* a, T* b, T* c, T* s, SyncToken* syncToken );
00182 
00186     template<typename T>
00187     static void rotmg( T* d1, T* d2, T* b1, const T b2, T* P, SyncToken* syncToken );
00188 
00192     template<typename T>
00193     static void ass( const IndexType n, const T value, T* x, SyncToken* syncToken );
00194 
00195 private:
00196 
00197     LAMA_LOG_DECL_STATIC_LOGGER( logger );
00198 
00199 };
00200 
00201 } /* namespace lama */
00202 
00203 #endif // LAMA_OPENMPBLAS1_HPP_