---
title: 整数缩放
description: "由于一些信号处理函数在进行内部计算时提高了数据精度，在调用这些函数时会附加一个缩放因子作为函数参数，被调用函数使用整数缩放因子对内部计算的结果进行缩放。缩放因子必须为2^n，且不能等于正无穷，不能为nan，这些信号处理函数的函数名带有S描述符。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2300/accel/kunpengaccel_hmpp_06_0027.html
sourcePath: /source/zh/kunpengboostkithistory/2300/accel/kunpengaccel_hmpp_06_0027.html
indexId: b30aca9a7e3e7c7f6beb820db0dc7798282e2fd94b31c7681289e2405e14329175
---
# 整数缩放

由于一些信号处理函数在进行内部计算时提高了数据精度，在调用这些函数时会附加一个缩放因子作为函数参数，被调用函数使用整数缩放因子对内部计算的结果进行缩放。缩放因子必须为2^n，且不能等于正无穷，不能为nan，这些信号处理函数的函数名带有S描述符。

带缩放因子的函数在函数返回之前，将输出向量乘以scale来实现对计算结果的精度调整，这种操作有助于保留输出数据的范围或精度。

例如，对16位有符号整数300进行乘方运算时，由于运算结果溢出，实际能存储的结果为32767而不是90000。当缩放因子scale被设为0.25（即2-2）时，存储的计算结果为22500，没有溢出，并且实际的计算结果可以通过22500*4来复原。

对于需要部分保留精度的情况，例如整数3的开方运算，HMPPS_Sqrt函数会调用库函数sqrt进行计算。在不传递scale的情况下，程序输出结果是2而不是1.732；假如给程序传递缩放参数8（即23），程序会对计算结果缩放并输出结果14，程序调用者可使用输出结果14和缩放参数0.125（即2-3）经计算得到更精确的结果：14*2-3=1.75。
