summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorCedric Nugteren <web@cedricnugteren.nl>2017-05-12 20:01:33 -0700
committerCedric Nugteren <web@cedricnugteren.nl>2017-05-12 20:01:33 -0700
commitf151e56daa617e3327826f06f0765d1673fa8cfd (patch)
tree66396978988720155adf4f6eb21b921758ccd8aa /include
parent86e8df60f1598760511b059b42a9e4f9dddfa150 (diff)
Added the IxAMIN routines: absolute minimum version of IxAMAX
Diffstat (limited to 'include')
-rw-r--r--include/clblast.h7
-rw-r--r--include/clblast_c.h22
-rw-r--r--include/clblast_netlib_c.h10
3 files changed, 39 insertions, 0 deletions
diff --git a/include/clblast.h b/include/clblast.h
index 54944ea2..354ca591 100644
--- a/include/clblast.h
+++ b/include/clblast.h
@@ -240,6 +240,13 @@ StatusCode Amax(const size_t n,
const cl_mem x_buffer, const size_t x_offset, const size_t x_inc,
cl_command_queue* queue, cl_event* event = nullptr);
+// Index of absolute minimum value in a vector (non-BLAS function): iSAMIN/iDAMIN/iCAMIN/iZAMIN/iHAMIN
+template <typename T>
+StatusCode Amin(const size_t n,
+ cl_mem imin_buffer, const size_t imin_offset,
+ const cl_mem x_buffer, const size_t x_offset, const size_t x_inc,
+ cl_command_queue* queue, cl_event* event = nullptr);
+
// Index of maximum value in a vector (non-BLAS function): iSMAX/iDMAX/iCMAX/iZMAX/iHMAX
template <typename T>
StatusCode Max(const size_t n,
diff --git a/include/clblast_c.h b/include/clblast_c.h
index b0ef5f34..323a28df 100644
--- a/include/clblast_c.h
+++ b/include/clblast_c.h
@@ -403,6 +403,28 @@ CLBlastStatusCode PUBLIC_API CLBlastiHamax(const size_t n,
const cl_mem x_buffer, const size_t x_offset, const size_t x_inc,
cl_command_queue* queue, cl_event* event);
+// Index of absolute minimum value in a vector (non-BLAS function): iSAMIN/iDAMIN/iCAMIN/iZAMIN/iHAMIN
+CLBlastStatusCode PUBLIC_API CLBlastiSamin(const size_t n,
+ cl_mem imin_buffer, const size_t imin_offset,
+ const cl_mem x_buffer, const size_t x_offset, const size_t x_inc,
+ cl_command_queue* queue, cl_event* event);
+CLBlastStatusCode PUBLIC_API CLBlastiDamin(const size_t n,
+ cl_mem imin_buffer, const size_t imin_offset,
+ const cl_mem x_buffer, const size_t x_offset, const size_t x_inc,
+ cl_command_queue* queue, cl_event* event);
+CLBlastStatusCode PUBLIC_API CLBlastiCamin(const size_t n,
+ cl_mem imin_buffer, const size_t imin_offset,
+ const cl_mem x_buffer, const size_t x_offset, const size_t x_inc,
+ cl_command_queue* queue, cl_event* event);
+CLBlastStatusCode PUBLIC_API CLBlastiZamin(const size_t n,
+ cl_mem imin_buffer, const size_t imin_offset,
+ const cl_mem x_buffer, const size_t x_offset, const size_t x_inc,
+ cl_command_queue* queue, cl_event* event);
+CLBlastStatusCode PUBLIC_API CLBlastiHamin(const size_t n,
+ cl_mem imin_buffer, const size_t imin_offset,
+ const cl_mem x_buffer, const size_t x_offset, const size_t x_inc,
+ cl_command_queue* queue, cl_event* event);
+
// Index of maximum value in a vector (non-BLAS function): iSMAX/iDMAX/iCMAX/iZMAX/iHMAX
CLBlastStatusCode PUBLIC_API CLBlastiSmax(const size_t n,
cl_mem imax_buffer, const size_t imax_offset,
diff --git a/include/clblast_netlib_c.h b/include/clblast_netlib_c.h
index 384fab20..4d0d8e1f 100644
--- a/include/clblast_netlib_c.h
+++ b/include/clblast_netlib_c.h
@@ -240,6 +240,16 @@ int PUBLIC_API cblas_icamax(const int n,
int PUBLIC_API cblas_izamax(const int n,
const void* x, const int x_inc);
+// Index of absolute minimum value in a vector (non-BLAS function): iSAMIN/iDAMIN/iCAMIN/iZAMIN/iHAMIN
+int PUBLIC_API cblas_isamin(const int n,
+ const float* x, const int x_inc);
+int PUBLIC_API cblas_idamin(const int n,
+ const double* x, const int x_inc);
+int PUBLIC_API cblas_icamin(const int n,
+ const void* x, const int x_inc);
+int PUBLIC_API cblas_izamin(const int n,
+ const void* x, const int x_inc);
+
// Index of maximum value in a vector (non-BLAS function): iSMAX/iDMAX/iCMAX/iZMAX/iHMAX
int PUBLIC_API cblas_ismax(const int n,
const float* x, const int x_inc);