Arg
计算两个向量的幅角。
函数接口声明如下。
主函数操作:
HmppResult HMPPS_Arg_32fc(const Hmpp32fc* pSrc, float* pDst, int32_t len);
参数
参数名 |
描述 |
取值范围 |
输入/输出 |
|---|---|---|---|
pSrc |
指向源向量指针。 |
非空 |
输入 |
pDst |
指向目标向量指针。 |
非空 |
输出 |
len |
源向量与目标向量长度。 |
(0, INT_MAX] |
输入 |
返回值
- 成功:返回HMPP_STS_NO_ERR。
- 失败:返回错误码。
错误码
错误码 |
描述 |
|---|---|
HMPP_STS_NO_ERR |
表示没有错误。 |
HMPP_STS_NULL_PTR_ERR |
当任何指定的指针为空时指示错误。 |
HMPP_STS_SIZE_ERR |
当srcLen或dstLen小于或等于0时指示错误。 |
示例
#define BUFFER_SIZE_T 10
void ArgExample(void)
{
Hmpp32fc src[BUFFER_SIZE_T] = {1.64, 1.63, -1.09, 0.71, -3.20, -0.43, 0.41, -4.83, 5.36, -4.40};
float dst[BUFFER_SIZE_T];
(void)HMPPS_Zero_32f(dst, BUFFER_SIZE_T); // 数组初始化,将dst所有元素初始化为0.
HmppResult result = HMPPS_Arg_32fc(src, dst, BUFFER_SIZE_T / 2);
printf("result = %d\n", result);
if (result != HMPP_STS_NO_ERR) {
return;
}
printf("dst =");
for (int i = 0; i < BUFFER_SIZE_T; i++) {
printf(" %.2f", dst[i]);
}
printf("\n");
}
int main() {
ArgExample();
return 0;
}
运行结果:
result = 0 dst = 0.78 2.56 -3.01 -1.49 -0.69 0.00 0.00 0.00 0.00 0.00
父主题: 基础与通用运算