diff options
author | cnugteren <web@cedricnugteren.nl> | 2016-04-20 21:11:33 -0600 |
---|---|---|
committer | cnugteren <web@cedricnugteren.nl> | 2016-04-20 21:11:33 -0600 |
commit | 894983fc3c7c57ffc48c21523641694cde318eca (patch) | |
tree | e1c5e36923448fa6c89014216308bce631c24a6e /src | |
parent | 5a4f8217be97575daf4f0f97d8ae7f8cf7bbbcd0 (diff) |
Added prototype for ixAMAX routines
Diffstat (limited to 'src')
-rw-r--r-- | src/clblast.cc | 25 | ||||
-rw-r--r-- | src/clblast_c.cc | 42 |
2 files changed, 67 insertions, 0 deletions
diff --git a/src/clblast.cc b/src/clblast.cc index 7210ad1d..bee63b53 100644 --- a/src/clblast.cc +++ b/src/clblast.cc @@ -428,6 +428,31 @@ template StatusCode PUBLIC_API Asum<double2>(const size_t, const cl_mem, const size_t, const size_t, cl_command_queue*, cl_event*); +// Index of absolute maxium value in a vector: iSAMAX/iDAMAX/iCAMAX/iZAMAX +template <typename T> +StatusCode Amax(const size_t, + cl_mem, const size_t, + const cl_mem, const size_t, const size_t, + cl_command_queue*, cl_event*) { + return StatusCode::kNotImplemented; +} +template StatusCode PUBLIC_API Amax<float>(const size_t, + cl_mem, const size_t, + const cl_mem, const size_t, const size_t, + cl_command_queue*, cl_event*); +template StatusCode PUBLIC_API Amax<double>(const size_t, + cl_mem, const size_t, + const cl_mem, const size_t, const size_t, + cl_command_queue*, cl_event*); +template StatusCode PUBLIC_API Amax<float2>(const size_t, + cl_mem, const size_t, + const cl_mem, const size_t, const size_t, + cl_command_queue*, cl_event*); +template StatusCode PUBLIC_API Amax<double2>(const size_t, + cl_mem, const size_t, + const cl_mem, const size_t, const size_t, + cl_command_queue*, cl_event*); + // ================================================================================================= // BLAS level-2 (matrix-vector) routines // ================================================================================================= diff --git a/src/clblast_c.cc b/src/clblast_c.cc index c36edbca..23c96feb 100644 --- a/src/clblast_c.cc +++ b/src/clblast_c.cc @@ -475,6 +475,48 @@ StatusCode CLBlastDzasum(const size_t n, return static_cast<StatusCode>(status); } +// AMAX +StatusCode CLBlastiSamax(const size_t n, + cl_mem imax_buffer, const size_t imax_offset, + const cl_mem x_buffer, const size_t x_offset, const size_t x_inc, + cl_command_queue* queue, cl_event* event) { + auto status = clblast::Amax<float>(n, + imax_buffer, imax_offset, + x_buffer, x_offset, x_inc, + queue, event); + return static_cast<StatusCode>(status); +} +StatusCode CLBlastiDamax(const size_t n, + cl_mem imax_buffer, const size_t imax_offset, + const cl_mem x_buffer, const size_t x_offset, const size_t x_inc, + cl_command_queue* queue, cl_event* event) { + auto status = clblast::Amax<double>(n, + imax_buffer, imax_offset, + x_buffer, x_offset, x_inc, + queue, event); + return static_cast<StatusCode>(status); +} +StatusCode CLBlastiCamax(const size_t n, + cl_mem imax_buffer, const size_t imax_offset, + const cl_mem x_buffer, const size_t x_offset, const size_t x_inc, + cl_command_queue* queue, cl_event* event) { + auto status = clblast::Amax<float2>(n, + imax_buffer, imax_offset, + x_buffer, x_offset, x_inc, + queue, event); + return static_cast<StatusCode>(status); +} +StatusCode CLBlastiZamax(const size_t n, + cl_mem imax_buffer, const size_t imax_offset, + const cl_mem x_buffer, const size_t x_offset, const size_t x_inc, + cl_command_queue* queue, cl_event* event) { + auto status = clblast::Amax<double2>(n, + imax_buffer, imax_offset, + x_buffer, x_offset, x_inc, + queue, event); + return static_cast<StatusCode>(status); +} + // ================================================================================================= // BLAS level-2 (matrix-vector) routines // ================================================================================================= |