summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorcnugteren <web@cedricnugteren.nl>2016-04-20 21:11:33 -0600
committercnugteren <web@cedricnugteren.nl>2016-04-20 21:11:33 -0600
commit894983fc3c7c57ffc48c21523641694cde318eca (patch)
treee1c5e36923448fa6c89014216308bce631c24a6e /src
parent5a4f8217be97575daf4f0f97d8ae7f8cf7bbbcd0 (diff)
Added prototype for ixAMAX routines
Diffstat (limited to 'src')
-rw-r--r--src/clblast.cc25
-rw-r--r--src/clblast_c.cc42
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
// =================================================================================================