diff options
author | Cedric Nugteren <web@cedricnugteren.nl> | 2017-05-12 20:01:33 -0700 |
---|---|---|
committer | Cedric Nugteren <web@cedricnugteren.nl> | 2017-05-12 20:01:33 -0700 |
commit | f151e56daa617e3327826f06f0765d1673fa8cfd (patch) | |
tree | 66396978988720155adf4f6eb21b921758ccd8aa /include | |
parent | 86e8df60f1598760511b059b42a9e4f9dddfa150 (diff) |
Added the IxAMIN routines: absolute minimum version of IxAMAX
Diffstat (limited to 'include')
-rw-r--r-- | include/clblast.h | 7 | ||||
-rw-r--r-- | include/clblast_c.h | 22 | ||||
-rw-r--r-- | include/clblast_netlib_c.h | 10 |
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); |