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 /src | |
parent | 6e5f558746eec09eda6132754649419430a86f41 (diff) |
Added prototypes for the xROT and xROTG functions
Diffstat (limited to 'src')
-rw-r--r-- | src/clblast.cc | 43 | ||||
-rw-r--r-- | src/clblast_c.cc | 56 |
2 files changed, 99 insertions, 0 deletions
diff --git a/src/clblast.cc b/src/clblast.cc index 0b8de40a..8f7abfd6 100644 --- a/src/clblast.cc +++ b/src/clblast.cc @@ -67,6 +67,49 @@ namespace clblast { // BLAS level-1 (vector-vector) routines // ================================================================================================= +// Generate plane rotation: SROTG/DROTG +template <typename T> +StatusCode Rotg(cl_mem, const size_t, + cl_mem, const size_t, + cl_mem, const size_t, + cl_mem, const size_t, + cl_command_queue*, cl_event*) { + return StatusCode::kNotImplemented; +} +template StatusCode PUBLIC_API Rotg<float>(cl_mem, const size_t, + cl_mem, const size_t, + cl_mem, const size_t, + cl_mem, const size_t, + cl_command_queue*, cl_event*); +template StatusCode PUBLIC_API Rotg<double>(cl_mem, const size_t, + cl_mem, const size_t, + cl_mem, const size_t, + cl_mem, const size_t, + cl_command_queue*, cl_event*); + +// Apply plane rotation: SROT/DROT +template <typename T> +StatusCode Rot(const size_t, + cl_mem, const size_t, const size_t, + cl_mem, const size_t, const size_t, + const T, + const T, + cl_command_queue*, cl_event*) { + return StatusCode::kNotImplemented; +} +template StatusCode PUBLIC_API Rot<float>(const size_t, + cl_mem, const size_t, const size_t, + cl_mem, const size_t, const size_t, + const float, + const float, + cl_command_queue*, cl_event*); +template StatusCode PUBLIC_API Rot<double>(const size_t, + cl_mem, const size_t, const size_t, + cl_mem, const size_t, const size_t, + const double, + const double, + cl_command_queue*, cl_event*); + // Swap two vectors: SSWAP/DSWAP/CSWAP/ZSWAP template <typename T> StatusCode Swap(const size_t n, diff --git a/src/clblast_c.cc b/src/clblast_c.cc index 66d16f6d..d36b2695 100644 --- a/src/clblast_c.cc +++ b/src/clblast_c.cc @@ -25,6 +25,62 @@ using double2 = clblast::double2; // BLAS level-1 (vector-vector) routines // ================================================================================================= +// ROTG +StatusCode 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) { + auto status = clblast::Rotg<float>(SA_buffer, SA_offset, + SB_buffer, SB_offset, + C_buffer, C_offset, + S_buffer, S_offset, + queue, event); + return static_cast<StatusCode>(status); +} +StatusCode 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) { + auto status = clblast::Rotg<double>(SA_buffer, SA_offset, + SB_buffer, SB_offset, + C_buffer, C_offset, + S_buffer, S_offset, + queue, event); + return static_cast<StatusCode>(status); +} + +// ROT +StatusCode 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) { + auto status = clblast::Rot(n, + x_buffer, x_offset, x_inc, + y_buffer, y_offset, y_inc, + C, + S, + queue, event); + return static_cast<StatusCode>(status); +} +StatusCode 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) { + auto status = clblast::Rot(n, + x_buffer, x_offset, x_inc, + y_buffer, y_offset, y_inc, + C, + S, + queue, event); + return static_cast<StatusCode>(status); +} + // SWAP StatusCode CLBlastSswap(const size_t n, cl_mem x_buffer, const size_t x_offset, const size_t x_inc, |