提示:该函数属于BLAS Level 1 Routines and Functions章节
前言
BLAS Level 1 Routines and Functions章节主要提供向量与向量之间的操作函数,该函数在Intel官网说明链接如下,cblas_i?amax (intel.com)。
一、cblas_i?amax函数
cblas_i?amax函数的功能是查找一个向量的元素的最大值索引,适用于float,double,MKL_Complex8,MKL_Complex16类型的向量,其中?代表了传进去的数据类型,前面的四种数据类型分别对应的字母分别为s,d,c,z。
使用语法为cblas_i?amax(n, x, incx),n为指定要计算向量的元素个数,x为指向输入进行计算的向量的指针,incy指代在x向量元素中跳跃的步长,假如x = [2 4 6 8],incx为2,则在a中[2 6]查找最大值的索引。
下面提供在C语言中应用cblas_i?amax的例子。
二、使用步骤
1.引入库
代码如下(示例):
#include <stdio.h>
#include "mkl.h"
2.使用cblas_i?amax函数在向量中查找最大值索引
代码如下(示例):
int main()
{
float* a = (float*)mkl_calloc(4, sizeof(float), 64);
int indMax = 0;
for (int ii = 0; ii < 4; ii++)
{
a[ii] = ii * 2 + 2;
printf("a[%d] is %f\n", ii, a[ii]);
}
indMax = cblas_isamax(4, a, 1);
printf("indMax is %d, max(a) is %f\n", indMax, a[indMax]);
mkl_free(a);
}
代码运行结果如下。
总结
以上即为MKL库的cblas_i?amax函数的简介和示例。