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

函数命名规则

HMPP函数库的函数命名需遵循通用格式:[HMPPS|HMPPI]_<name>_<datatype>[_<descriptor>](<parameters>)

例如:HmppResult HMPPS_MulC_64f64s_IS(double val, int64_t *srcDst, uint32_t len, int32_t scale);

在上述例子中:

  1. 前缀为HMPP(基础函数)、 HMPPI (图像库)、 HMPPS (信号库)或 HMPPA (音频库)。
  1. MulC是函数名,表明该函数实现的功能是向量与常数相乘。
  1. 64f64s表示该函数两个入参的数据类型,分别为64f(double)和64s(long long)。
  2. 扩充描述_IS:

    I:表明该函数是原址操作函数,函数从输入向量依次取值,经过一系列运算以后将结果保存在源向量中。

    S:表明该函数使用入参的度量因子对输出作了缩放处理,实际结果可通过输出向量与缩放因子经过计算以后复原,保留计算精度。

  3. 圆括号里面为该接口传入的参数。

函数名<name>

函数名表明该函数的主要功能,格式为:<name>=<operation>[_modifier]。其中:

  • operation通常由一个或多个单词、首字母缩略词、缩写组成,描述该函数的基本功能。
  • modifier在部分函数中使用,由单词或者缩写组成,描述该函数的扩展功能。例如计算向量范数的norm、normdiff函数,会有一个标识符表明该函数计算的是1-范数(_L1)、2-范数(_L2)还是无穷范数(_Inf),类似的函数还有threshold、fft。

数据类型<datatype>

数据类型表明该函数处理的数据类型,通常为函数参数的数据类型。HMPP中所使用的数据类型请参见基本数据类型

数据类型的格式为:<bit depth><bit interpretation>。其中:

  • bit depth表示位宽度,常用的位宽度有8位、16位、32位、64位。
  • bit interpretation表示数据类型,通常有无符号整型u(unsigned integer)、有符号整型s(signed integer)、浮点类型f(float point)、复数c(complex)。

对于只处理一种类型数据的函数,<datatype>域只包含上表中列出的一种值。如果函数处理的源向量和目标向量的数据类型不同,源向量和目标向量各自的数据类型都会体现在函数命名中,并且遵循固定的顺序:<datatype>=<src1Datatype>[src2Datatype][dstDatatype]。

例如,HMPPS_DotProd_32f32fc计算两个数据类型分别为32位浮点型和32位浮点型复数的源向量的点积,并将计算结果存储在32位浮点型复数的目标向量中。

描述符<descriptor>

描述符由一个或多个字母组成,显示更多关于函数的细节,进一步描述函数的功能。

主要描述符如表1所示。

表1 描述符<descriptor>取值与说明

取值

说明

举例

I

函数执行的是原址操作,即源向量和目标向量是同一个向量(默认是非原址操作)。

例如,原址加法操作计算公式为:srcDst = srcDst + src。

HMPPS_Add_16s_I

S

函数结果饱和并且缩放模式固定(默认饱和且无缩放)。

HMPPS_Add_16s_S

Axx

保证xx位二进制有效位的舍入。

HMPPS_Powx_32f_A11

  • 如果函数有两个或两个以上描述符,描述符在函数名中以字母表顺序依次展现(例如:HMPPS_Add_16s_IS)。
  • 对于无描述符的函数,函数名中不包含该字段。

函数参数<parameters>

<parameters>元素指定该函数的所有参数。

参数的排列顺序按如下规则:

  1. 源操作数,通常是一定长度的向量或常量。
  2. 目标操作数。
  3. 其他包含特定操作的参数。

参数命名遵守如下约定:

  1. 每个参数名指定其功能。
  2. 输入参数以src命名,特定情形中加上数字或单词进一步说明其含义(例如src2、srcLen)。
  3. 输出参数以dst命名,与输入参数一样,特定情形中加上数字或单词进一步说明其含义(例如dst2、dstLen)。
  4. 对于原址操作函数,输入/输出参数以srcDst命名。
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词