---
title: ThresholdAbsVal
description: "指定常数作为阈值，给向量中的元素的绝对值做设阈操作。与thresholdAbs接口不同的是，不在阈值范围内的向量元素将被设置成指定值value。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2300/accel/kunpengaccel_hmpp_06_0104.html
sourcePath: /source/zh/kunpengboostkithistory/2300/accel/kunpengaccel_hmpp_06_0104.html
indexId: 4c623af4e81eaabe351c67099c28aaff1bbb663dc3845dd04086b5ad19f3398175
---
# ThresholdAbsVal

指定常数作为阈值，给向量中的元素的绝对值做设阈操作。与thresholdAbs接口不同的是，不在阈值范围内的向量元素将被设置成指定值value。

函数接口声明如下：

- 整型数的操作：
  HmppResult HMPPS_Threshold_LTAbsVal_16s(const int16_t* src, int16_t* dst, int32_t len, int16_t level, int16_t value);

  HmppResult HMPPS_Threshold_LTAbsVal_32s(const int32_t* src, int32_t* dst, int32_t len, int32_t level, int32_t value);

- 浮点数的操作：
  HmppResult HMPPS_Threshold_LTAbsVal_32f(const float* src, float* dst, int32_t len, float level, float value);

  HmppResult HMPPS_Threshold_LTAbsVal_64f(const double* src, double* dst, int32_t len, double level, double value);

- 整型数的原址操作：
  HmppResult HMPPS_Threshold_LTAbsVal_16s_I(int16_t* srcDst, int32_t len, int16_t level, int16_t value);

  HmppResult HMPPS_Threshold_LTAbsVal_32s_I(int32_t* srcDst, int32_t len, int32_t level, int32_t value);

- 浮点数的原址操作：
  HmppResult HMPPS_Threshold_LTAbsVal_32f_I(float* srcDst, int32_t len, float level, float value);

  HmppResult HMPPS_Threshold_LTAbsVal_64f_I(double* srcDst, int32_t len, double level, double value);


#### 参数

| 参数名 | 描述 | 取值范围 | 输入/输出 |
| --- | --- | --- | --- |
| src | 指向源向量的指针。 | 非空 | 输入 |
| dst | 指向目的向量的指针。 | 非空 | 输出 |
| srcDst | 指向原址操作向量的指针。 | 非空 | 输入/输出 |
| len | 向量长度。 | (0, INT\_MAX] | 输入 |
| level | 阈值。 | 不限，视类型而定 | 输入 |
| value | 指定常数。 | 不限，视类型而定 | 输入 |


#### 返回值

- 成功：返回HMPP_STS_NO_ERR。
- 失败：返回错误码。


#### 错误码

| 错误码 | 描述 |
| --- | --- |
| HMPP\_STS\_NULL\_PTR\_ERR | src、dst、srcDst这几个入参中存在空指针。 |
| HMPP\_STS\_SIZE\_ERR | len小于或等于0。 |


#### 示例

```
#define  BUFFER_SIZE_T 20
void ThresholdAbsValExample(void)
{
float src[BUFFER_SIZE_T] = {11.44, -0.07, 10.23, 8.78, -0.30, 1.72, -1.37, 3.39, 7.37, 7.40,
8.36,  -1.56, 6.65,  0.04, 6.56,  8.60, 0.84,  4.96, 5.13, 2.56};
float dst[BUFFER_SIZE_T] = {0.00};
HmppResult result;
int32_t i = 0;
result = HMPPS_Threshold_LTAbsVal_32f(src, dst, BUFFER_SIZE_T, 3.14, 8.51);
if (result != HMPP_STS_NO_ERR) {
return;
}
printf("ThresholdAbsVal: result = %d.\ndst = ", result);
for (; i < BUFFER_SIZE_T; i++) {
printf(" %.2f   ", dst[i]);
}
}
```

运行结果：

```
ThresholdAbsVal: result = 0.
dst = 11.44    8.51    10.23    8.78    8.51    8.51    8.51    3.39    7.37    7.40    8.36    8.51    6.65    8.51    6.56    8.60     8.51    4.96    5.13    8.51
```
