中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

FindNearestOne

查找表中最接近指定值的元素。查找到的元素及其索引分别存储在outVal和outIndex中。

其中表中元素必须满足条件:table[n] ≤table[n+1]。最接近指的是:min(|inVal -table[n]|)。

函数接口声明如下:

HmppResult HMPPS_FindNearestOne_16u(uint16_t inVal, uint16_t *outVal, int32_t *outIndex, const uint16_t *table, int32_t tblLen);

参数

参数名

描述

取值范围

输入/输出

inVal

指定元素。

(0, UINT16_MAX]

输入

outVal

查找结果元素的值。

(0, UINT16_MAX]

输出

outIndex

查找结果元素的索引。

[0,tblLen-1]

输出

table

指向单调不减向量表。

非空

输入

tblLen

向量表的长度。

(0, INT_MAX]

输入

返回值

  • 成功:返回HMPP_STS_NO_ERR
  • 失败:返回错误码。

错误码

错误码

描述

HMPP_STS_NULL_PTR_ERR

table为空指针。

HMPP_STS_SIZE_ERR

tblLen小于或等于0。

示例

#define  BUFFER_SIZE_T 11
void FindNearestOneExample()
{
    uint16_t table[BUFFER_SIZE_T] = {32, 545, 766, 876, 1222, 1334, 1687, 3452, 4556, 32452, 45422};
    uint16_t inVal = 4559;
    uint16_t outVal;
    int32_t outIndex;
    HmppResult result = HMPPS_FindNearestOne_16u(inVal, &outVal, &outIndex, table, BUFFER_SIZE_T );
    if (result == HMPP_STS_NO_ERR) {
        printf("outVal = %d\n", outVal);
        printf("outIndex = %d\n", outIndex);
    }
}

运行结果:

outVal = 4556
outIndex = 8