LAMA
/home/brandes/workspace/LAMA/src/lama/openmp/lamablas/LAMABLAS1.hpp
Go to the documentation of this file.
00001 
00033 #ifndef LAMA_LAMABLAS1_HPP_
00034 #define LAMA_LAMABLAS1_HPP_
00035 
00036 #include <lama/LAMATypes.hpp>
00037 #include <lama/SyncToken.hpp>
00038 
00039 #include <logging/logging.hpp>
00040 
00041 namespace lama
00042 {
00043 
00049 class LAMABLAS1
00050 {
00051 public:
00052 
00056     template<typename T>
00057     static void scal( const IndexType n, const T alpha, T* x, const IndexType incX );
00058 
00062     template<typename T>
00063     static T nrm2( const IndexType n, const T* x, const IndexType incX );
00064 
00068     template<typename T>
00069     static T asum( const IndexType n, const T* x, const IndexType incX );
00070 
00074     template<typename T>
00075     static IndexType iamax( const IndexType n, const T* x, const IndexType incX );
00076 
00080     template<typename T>
00081     static T viamax( const IndexType n, const T* x, const IndexType incX );
00082 
00086     template<typename T>
00087     static void swap(
00088         const IndexType n,
00089         T* y,
00090         const IndexType incY,
00091         T* x,
00092         const IndexType incX );
00093 
00097     template<typename T>
00098     static void copy(
00099         const IndexType n,
00100         const T* x,
00101         const IndexType incX,
00102         T* y,
00103         const IndexType incY );
00104 
00108     template<typename T>
00109     static void axpy(
00110         const IndexType n,
00111         const T alpha,
00112         const T* x,
00113         const IndexType incX,
00114         T* y,
00115         const IndexType incY );
00116 
00120     template<typename T>
00121     static T dot(
00122         const IndexType n,
00123         const T* x,
00124         const IndexType incX,
00125         const T* y,
00126         const IndexType incY );
00127 
00131     template<typename T>
00132     static void sum(
00133         const IndexType n,
00134         T alpha,
00135         const T* x,
00136         T beta,
00137         const T* y,
00138         T* z,
00139         SyncToken* syncToken );
00140 
00144     template<typename T>
00145     static void rot(
00146         const IndexType n,
00147         T* x,
00148         const IndexType incX,
00149         T* y,
00150         const IndexType incY,
00151         const T c,
00152         const T s );
00153 
00157     template<typename T>
00158     static void rotm(
00159         const IndexType n,
00160         T* x,
00161         const IndexType incX,
00162         T* y,
00163         const IndexType incY,
00164         const T* P );
00165 
00169     template<typename T>
00170     static void rotg( T* a, T* b, T* c, T* s );
00171 
00175     template<typename T>
00176     static void rotmg( T* d1, T* d2, T* b1, const T b2, T* P );
00177 
00181     template<typename T>
00182     static void ass( const IndexType n, const T value, T* x, SyncToken* syncToken );
00183 
00184 private:
00185 
00186     LAMA_LOG_DECL_STATIC_LOGGER( logger );
00187 
00188 };
00189 
00190 } /* namespace lama */
00191 
00192 #endif // LAMA_LAMABLAS1_HPP_