diff options
author | Cedric Nugteren <web@cedricnugteren.nl> | 2016-03-30 16:17:16 +0200 |
---|---|---|
committer | cnugteren <web@cedricnugteren.nl> | 2016-03-30 16:13:32 -0700 |
commit | 6ecc0d089c80296cce3089734771279a30783f81 (patch) | |
tree | fb7e0dc3c8e04e6fe2f1e4761c386f98630689b8 /include | |
parent | 6e5f558746eec09eda6132754649419430a86f41 (diff) |
Added prototypes for the xROT and xROTG functions
Diffstat (limited to 'include')
-rw-r--r-- | include/clblast.h | 17 | ||||
-rw-r--r-- | include/clblast_c.h | 26 |
2 files changed, 43 insertions, 0 deletions
diff --git a/include/clblast.h b/include/clblast.h index 2d03b096..a5fd30f8 100644 --- a/include/clblast.h +++ b/include/clblast.h @@ -87,6 +87,23 @@ enum class Precision { kHalf = 16, kSingle = 32, kDouble = 64, // BLAS level-1 (vector-vector) routines // ================================================================================================= +// Generate plane rotation: SROTG/DROTG +template <typename T> +StatusCode Rotg(cl_mem SA_buffer, const size_t SA_offset, + cl_mem SB_buffer, const size_t SB_offset, + cl_mem C_buffer, const size_t C_offset, + cl_mem S_buffer, const size_t S_offset, + cl_command_queue* queue, cl_event* event = nullptr); + +// Apply plane rotation: SROT/DROT +template <typename T> +StatusCode Rot(const size_t n, + cl_mem x_buffer, const size_t x_offset, const size_t x_inc, + cl_mem y_buffer, const size_t y_offset, const size_t y_inc, + const T C, + const T S, + cl_command_queue* queue, cl_event* event = nullptr); + // Swap two vectors: SSWAP/DSWAP/CSWAP/ZSWAP template <typename T> StatusCode Swap(const size_t n, diff --git a/include/clblast_c.h b/include/clblast_c.h index c5395e51..be5bab57 100644 --- a/include/clblast_c.h +++ b/include/clblast_c.h @@ -96,6 +96,32 @@ typedef enum Precision_ { kHalf = 16, kSingle = 32, kDouble = 64, // BLAS level-1 (vector-vector) routines // ================================================================================================= +// Generate plane rotation: SROTG/DROTG +StatusCode PUBLIC_API CLBlastSrotg(cl_mem SA_buffer, const size_t SA_offset, + cl_mem SB_buffer, const size_t SB_offset, + cl_mem C_buffer, const size_t C_offset, + cl_mem S_buffer, const size_t S_offset, + cl_command_queue* queue, cl_event* event); +StatusCode PUBLIC_API CLBlastDrotg(cl_mem SA_buffer, const size_t SA_offset, + cl_mem SB_buffer, const size_t SB_offset, + cl_mem C_buffer, const size_t C_offset, + cl_mem S_buffer, const size_t S_offset, + cl_command_queue* queue, cl_event* event); + +// Apply plane rotation: SROT/DROT +StatusCode PUBLIC_API CLBlastSrot(const size_t n, + cl_mem x_buffer, const size_t x_offset, const size_t x_inc, + cl_mem y_buffer, const size_t y_offset, const size_t y_inc, + const float C, + const float S, + cl_command_queue* queue, cl_event* event); +StatusCode PUBLIC_API CLBlastDrot(const size_t n, + cl_mem x_buffer, const size_t x_offset, const size_t x_inc, + cl_mem y_buffer, const size_t y_offset, const size_t y_inc, + const double C, + const double S, + cl_command_queue* queue, cl_event* event); + // Swap two vectors: SSWAP/DSWAP/CSWAP/ZSWAP StatusCode PUBLIC_API CLBlastSswap(const size_t n, cl_mem x_buffer, const size_t x_offset, const size_t x_inc, |