CN106227291A - 基于分段式查表法的反正切函数的实现方法及实现装置 - Google Patents

基于分段式查表法的反正切函数的实现方法及实现装置 Download PDF

Info

Publication number
CN106227291A
CN106227291A CN201610596590.8A CN201610596590A CN106227291A CN 106227291 A CN106227291 A CN 106227291A CN 201610596590 A CN201610596590 A CN 201610596590A CN 106227291 A CN106227291 A CN 106227291A
Authority
CN
China
Prior art keywords
value
interval
look
determines
angle
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201610596590.8A
Other languages
English (en)
Inventor
洪冰清
郭晨
王晓琴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Automation of Chinese Academy of Science
Original Assignee
Institute of Automation of Chinese Academy of Science
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Automation of Chinese Academy of Science filed Critical Institute of Automation of Chinese Academy of Science
Priority to CN201610596590.8A priority Critical patent/CN106227291A/zh
Publication of CN106227291A publication Critical patent/CN106227291A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/03Digital function generators working, at least partly, by table look-up
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2101/00Indexing scheme relating to the type of digital function generated
    • G06F2101/04Trigonometric functions

Abstract

本申请公开了一种基于分段式查表法的反正切函数的实现方法及实现装置。其中,该实现方法包括根据输入数据的大小,来确定反正切函数查找表;接着根据输入数据的高位值,来确定索引值,并根据输入数据的低位值,确定角度补偿值,再根据索引值在查找表中确定初始角度和补偿斜率;最后,根据初始角度、补偿斜率和角度补偿值,确定反正切角度,从而实现所述反正切函数。本申请实施例通过上述技术方案解决了如何实现无穷区间的反正切函数的技术问题,减少了反正切函数角度求解过程中的运算量,且在保证数据精度的情况下减小了计算代价并节约了有限的存储空间。

Description

基于分段式查表法的反正切函数的实现方法及实现装置
技术领域
本申请实施例涉及移动通信技术领域,具体涉及一种基于分段式查表法的反正切函数的实现方法及基于分段式查表法的反正切函数的实现装置,但绝不限于此。
背景技术
常用的反正切函数的实现设计包括泰勒公式展开法和查表法,对于使用泰勒公式展开法计算actan(x)的过程,当x<1时,利用来计算actan(x)时收敛得很快,即计算很少的几项就可以达到比较精确的值;当x>1时,利用来计算actan(x)时收敛得很慢。这样就需要计算很多项才能达到需要的精度。采用此种方法,需要构造大量的乘法器来实现,从而需要占用大量的硬件资源,可实现性较差。因此,在通常情况下,反正切函数采用查表法来实现。对于actan(x)函数,x的取值是一个无界的,如果采用常规的线性区间查表法,则需要巨大的表项,例如在计算0到128之间精度为0.01的actan(x)的角度值时,则需要12800的表项,因此,采用这样的方法进行反正切函数的实现也是不可行的。actan(x)的斜率函数是一个非线性递减的函数,actan(x)的曲线呈现先快后缓的趋势,如果表项采用线性区间,会造成0-1间的计算结果存在很大的误差。
有鉴于此,特提出本申请。
发明内容
本申请实施例的主要目的在于提供一种基于分段式查表法的反正切函数的实现方法,其至少部分地解决了如何实现无穷区间的反正切函数的技术问题。此外,还提供一种基于分段式查表法的反正切函数的实现装置。
为了实现上述目的,根据本申请的一个方面,提供了以下技术方案:
一种基于分段式查表法的反正切函数的实现方法。所述方法可以包括:
根据输入数据的大小,确定所述反正切函数查找表;其中,所述查找表包括初始角度表和补偿斜率表;
根据所述输入数据的高位值,确定索引值,并根据所述输入数据的低位值,确定角度补偿值;
根据索引值在所述查找表中确定初始角度和补偿斜率;
根据所述初始角度、所述补偿斜率和所述角度补偿值,确定反正切角度,从而实现所述反正切函数。
优选地,所述根据输入数据的大小,确定所述反正切函数查找表,具体可以包括:
根据所述输入数据和精度,确定所述输入数据的整数值;
根据所述输入数据的整数值的大小,对所述反正切函数进行非线性分区间,确定所述反正切函数的查找区间;
针对每一所述查找区间,根据反正切函数的特点设置相应的所述查找表。
优选地,所述根据所述输入数据的整数值的大小,对所述反正切函数进行非线性分区间,确定所述反正切函数的查找区间,具体可以包括:
根据所述数据的整数值确定所述查找区间,如若在所述输入数据的大小大于最高查找区间的最大边界值的情况下,根据所述最大边界值的整数值来确定所述查找区间。
优选地,所述查找表设置有表项数;所述根据所述输入数据的高位值,确定索引值,并根据所述输入数据的低位值,确定角度补偿值,具体可以包括:
根据所述输入数据的高位值,确定查表索引值;
根据所述查表索引值,选定查找区间;
根据所述查找表设置的表项数和所述输入数据的精度,确定所述高位值的位宽;
将所述高位值减去由所述查表索引值选定的查找区间起始点对应的高位值的结果,确定为所述查找区间对应的索引值;
根据所述高位值的位宽,确定低位值,并将所述低位值确定为所述反正切函数的角度补偿值。
优选地,所述根据所述初始角度、所述补偿斜率和所述角度补偿值,确定反正切角度,具体可以包括:
根据所述初始角度、所述补偿斜率和所述角度补偿值,在所述查找区间内进行两点之间的线性插值,来确定所述反正切角度。
为了实现上述目的,根据本申请的另一个方面,还提供了一种基于分段式查表法的反正切函数的实现装置。其中,所述装置可以包括:
查找表确定模块,用于根据输入数据的大小,确定所述反正切函数查找表;其中,所述查找表包括初始角度表和补偿斜率表;
索引值和补偿值确定模块,用于根据所述输入数据的高位值,确定索引值,并根据所述输入数据的低位值,确定角度补偿值;
初始角度和补偿斜率确定模块,用于根据索引值在由所述查找表确定模块确定的所述查找表中确定初始角度和补偿斜率;
反正切角度确定模块,用于根据由所述初始角度和补偿斜率确定模块确定的所述初始角度、所述补偿斜率和由所述索引值和补偿值确定模块确定的所述角度补偿值,确定反正切角度,从而实现所述反正切函数。
优选地,所述查找表确定模块具体可以包括:
整数值确定单元,用于根据所述输入数据和精度,确定所述输入数据的整数值;
查找区间确定单元,用于根据由所述整数值确定单元确定的所述输入数据的整数值的大小,对所述反正切函数进行非线性分区间,确定所述反正切函数的查找区间;
查找表确定单元,用于针对每一由所述查找区间确定单元确定的所述查找区间,根据反正切函数的特点设置相应的所述查找表。
优选地,所述查找区间确定单元具体可以包括:
查找区间确定子单元,根据所述数据的整数值确定所述查找区间,如若在所述输入数据的大小大于最高查找区间的最大边界值的情况下,根据所述最大边界值的整数值来确定所述查找区间。
优选地,所述索引值和补偿值确定模块具体可以包括:
查表索引值确定单元,用于根据所述输入数据的高位值,确定查表索引值;
查找区间选定单元,用于根据由所述查表索引值确定单元确定的所述查表索引值,选定查找区间;
位宽确定单元,用于根据所述查找表设置的表项数和所述输入数据的精度,确定所述高位值的位宽;
索引值确定单元,用于将所述高位值减去由所述查找区间选定单元选定的查找区间起始点对应的高位值的结果,确定为所述查找区间对应的索引值;
角度补偿值确定单元,用于根据由所述位宽确定单元确定的所述高位值的位宽,确定低位值,并将所述低位值确定为所述反正切函数的角度补偿值。
优选地,所述反正切角度确定模块具体可以包括:
线性插值单元,用于根据所述初始角度、所述补偿斜率和所述角度补偿值,在所述查找区间内进行两点之间的线性插值,来确定所述反正切角度。
与现有技术相比,上述技术方案至少具有以下有益效果:
本申请实施例通过根据输入数据的大小,来确定反正切函数查找表;接着根据输入数据的高位值,来确定索引值,并根据输入数据的低位值,确定角度补偿值,再根据索引值在查找表中确定初始角度和补偿斜率;最后,根据初始角度、补偿斜率和角度补偿值,确定反正切角度,从而得到精确的角度值,以实现反正切函数。考虑到实际定点系统中存储限制和计算开销,本申请实施例采用的这种分段式查表法减少了反正切函数角度求解过程中的运算量,且在保证数据精度的情况下减小了计算代价并节约了有限的存储空间。
当然,实施本申请的任一产品不一定需要同时实现以上所述的所有优点。
附图说明
附图作为本申请的一部分,用来提供对本申请的进一步的理解,本申请的示意性实施例及其说明用于解释本申请,但不构成对本申请的不当限定。显然,下面描述中的附图仅仅是一些实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。在附图中:
图1为根据一示例性实施例示出的基于分段式查表法的反正切函数的实现方法的流程示意图;
图2为根据一示例性实施例示出的根据输入数据的大小来确定反正切函数查找表的流程示意图;
图3为根据一示例性实施例示出的反正切函数的曲线示意图;
图4为根据一示例性实施例示出的区间划分[0,1)曲线示意图;
图5为根据一示例性实施例示出的区间划分[1,2)曲线示意图;
图6为根据一示例性实施例示出的区间划分[2,4)曲线示意图;
图7为根据一示例性实施例示出的区间划分[4,64)曲线示意图;
图8为根据一示例性实施例示出的区间划分[64,2048)曲线示意图;
图9为根据一示例性实施例示出的直线插值的示意图;
图10为根据一示例性实施例示出的基于分段式查表法的反正切函数的实现装置的结构示意图;
图11为根据一示例性实施例示出的查找表确定模块的结构示意图;
图12为根据一示例性实施例示出的索引值和补偿值确定模块的结构示意图。
这些附图和文字描述并不旨在以任何方式限制本申请的保护范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
下面结合附图以及具体实施例对本申请实施例解决的技术问题、所采用的技术方案以及实现的技术效果进行清楚、完整的描述。显然,所描述的实施例仅仅是本申请的一部分实施例,并不是全部实施例。基于本申请中的实施例,本领域普通技术人员在不付出创造性劳动的前提下,所获的所有其它等同或明显变型的实施例均落在本申请的保护范围内。本申请实施例可以按照权利要求中限定和涵盖的多种不同方式来具体化。
需要说明的是,在下面的描述中,为了方便理解,给出了许多具体细节。但是很明显,本申请的实现可以没有这些具体细节。
还需要说明的是,在没有明确限定或不冲突的情况下,本申请中的各个实施例及其中的技术特征可以相互组合而形成技术方案。
在实际应用中,现有方法在进行反正切函数的实现时,由于actan(x)的斜率函数是一个非线性递减的函数,actan(x)的曲线呈现先快后缓的趋势,如果表项采用线性区间,则会造成0-1间的计算结果存在很大的误差。有鉴于此,本申请实施例提出一种基于分段式查表法的反正切函数的实现方法。如图1所示,该实现方法可以通过步骤S100至步骤S130来实现。
S100:根据输入数据的大小,确定反正切函数查找表。其中,查找表包括初始角度表和补偿斜率表。
在本步骤中,实施例数据的精度可以为Q14,但绝不限于此。选择了合适的查找表之后可以进行后续的查表过程。查找表设置有表项数。
具体地,如图2所示,本步骤可以通过步骤S101至步骤S103来实现。
S101:根据输入数据和精度,确定输入数据的整数值。
S102:根据输入数据的整数值的大小,对反正切函数曲线进行非线性分区间,确定反正切函数的查找区间。
本步骤中,图3示例性地示出了反正切函数的曲线。根据反正切函数的斜率特点或者反正切函数曲线的变化情况,对反正切函数曲线进行非线性划分,将反正切函数的定义域划分为多个区间。
作为一种优选的实施方式,如果输入数据的大小大于最高查找区间(也可称为查找表区间或查表区间)的最大边界值,则根据最大边界值的整数值来确定查找区间。
S103:针对每一查找区间,根据反正切函数的特点设置相应的查找表。
本步骤根据以下反正切函数的特点来设置相应的查找表:随着输入数据的增大,反正切函数的曲线趋于一条平行于x轴的直线。
下面结合附图以一优选实施例来详细说明确定反正切函数查找表的过程。
如图4、5、6、7、8所示,随着输入的三角函数值的增大,曲线趋于平缓。根据这个特点,将曲线划分为五个区间:[0,1)、[1,2)、[2,4)、[4,64)和[64,2048)。根据输入数据的整数值来选择查找区间。每个区间根据其反正切函数的特点设置相应的查找表。
随着输入数据的增大,反正切函数的曲线趋于一条平行于x轴的直线,因此,若输入数据的大小超过最高区间[64,2048)的最大边界值2047,则根据最大边界值的整数值2047来处理,以选择查找区间。
以区间[1,2)为例,则实施例数据的整数值为1,选择[1,2)区间对应的初始角度表和补偿斜率表。
表1示例性地示出了三角函数值区间划分情况。
表1:
S110:根据输入数据的高位值,确定索引值,并根据输入数据的低位值,确定角度补偿值。
具体地,本步骤可以通过步骤S111至步骤S115来实现。
S111:根据输入数据的高位值确定查表索引值。
S112:根据查表索引值,选定查找区间。
S113:根据查找表设置的表项数和输入数据的精度确定高位值的位宽。
S114:将高位值减去由查表索引值选定的查找区间起始点对应的高位值的结果,确定为该查找区间对应的索引值。
S115:根据高位值的位宽,确定低位值,并将低位值确定为反正切函数的角度补偿值。
其中,低位值为除去高位值之外的部分。利用输入的补偿值和补偿斜率获得角度补偿值。
作为示例,以[1,2)之间的数据且该数据精度为Q14为例,选择对应的初始角度表和补偿斜率表。这两张查找表的表项都为64,因此选择实施例数据的高9位作为查表索引,记作index,余下的低7位则作为角度补偿值,记作Δy。
S120:根据索引值在查找表中确定初始角度和补偿斜率。
由于查找表不是从0开始,所以将查表索引值减去起始值的高8位值才能找到对应的初始角度和补偿斜率。
示例性地,将分段区间按不同的采样点数进行划分,每个采样点对应的反正切函数值和相邻两个采样点之间的斜率值存放在查找表中;根据索引值在查找表中可以分别获得初始角度值和补偿斜率。
以[0,1)区间为例,其对应的查找表的起始值为16396,其高9位的值为32。将实施例数据的高9位减去32,分别在初始角度表中查找初始角度值,记作y0;在补偿斜率表中查找补偿斜率,记作
S130:根据初始角度、补偿斜率和角度补偿值,确定反正切角度,从而实现反正切函数。
在具体实施过程中,本步骤可以根据初始角度、补偿斜率和角度补偿值,在查找区间内进行两点之间的线性插值,来确定反正切角度。其中,角度补偿值和初始角度值的和,便是输入数据对应的函数值。
图9示例性地示出了直线插值的示意图。其中,对数据采用插值两点之间直线插值的方法(即在查找区间内进行两点之间的线性插值)得到的角度值为:
表一示例性地示出了一些实施例数据采用本发明实施例提出的基于分段式查表法的反正切函数实现方法得到的角度值和理论的角度值,并给出了两个角度值之间的误差值。
表一:
本申请实施例通过采用上述技术方案,减少了反正切函数角度求解过程中的运算量,在保证数据精度的情况下减小了计算代价并节约了有限的存储空间。
上述实施例中虽然将各个步骤按照上述先后次序的方式进行了描述,但是本领域技术人员可以理解,为了实现本实施例的效果,不同的步骤之间不必按照这样的次序执行,其可以同时(并行)执行或以颠倒的次序执行,这些简单的变化都在本申请的保护范围之内。
基于与方法实施例相同的技术构思,本申请实施例还提供一种基于分段式查表法的反正切函数的实现装置。如图10所示,该装置100可以包括:查找表确定模块102、索引值和补偿值确定模块104、初始角度和补偿斜率确定模块106和反正切角度确定模块108。其中,查找表确定模块102用于根据输入数据的大小,确定反正切函数查找表;其中,查找表包括初始角度表和补偿斜率表。索引值和补偿值确定模块104用于根据输入数据的高位值,确定索引值,并根据输入数据的低位值,确定角度补偿值。初始角度和补偿斜率确定模块106用于根据索引值在由查找表确定模块102确定的查找表中确定初始角度和补偿斜率。反正切角度确定模块108用于根据由初始角度和补偿斜率确定模块106确定的初始角度、补偿斜率和由索引值和补偿值确定模块104确定的角度补偿值,确定反正切角度,从而实现反正切函数。
作为上述实施例优选的实现方式之一,如图11所示,上述查找表确定模块110具体可以包括:整数值确定单元112、查找区间确定单元114和查找表确定单元116。其中,整数值确定单元112用于根据输入数据和精度,确定输入数据的整数值。查找区间确定单元114用于根据由整数值确定单元112确定的输入数据的整数值的大小,对反正切函数进行非线性分区间,确定反正切函数的查找区间。查找表确定单元116用于针对每一由查找区间确定单元114确定的查找区间,根据反正切函数的特点设置相应的查找表。
作为上述实施例优选的实现方式之一,上述查找区间确定单元具体可以包括查找区间确定子单元。其中,查找区间确定子单元用于根据数据的整数值确定查找区间,并在输入数据的大小大于最高查找区间的最大边界值的情况下,根据最大边界值的整数值来确定查找区间。
在一个可选的实施例中,在图10所示实施例的基础上,如图12所示,索引值和补偿值确定模块1200具体可以包括:查表索引值确定单元1201、查找区间选定单元1202、位宽确定单元1203、索引值确定单元1204和角度补偿值确定单元1205。其中,查表索引值确定单元1201用于根据输入数据的高位值,确定查表索引值。查找区间选定单元1202用于根据由查表索引值确定单元1201确定的查表索引值,选定查找区间。位宽确定单元1203用于根据查找表设置的表项数和输入数据的精度,确定高位值的位宽。索引值确定单元1204用于将高位值减去由查找区间选定单元1202选定的查找区间起始点对应的高位值的结果,确定为查找区间对应的索引值。角度补偿值确定单元1205用于根据由位宽确定单元1203确定的高位值的位宽,确定低位值,并将低位值确定为反正切函数的角度补偿值。
在一个可选的实施例中,反正切角度确定模块具体可以包括线性插值单元。其中,线性插值单元用于根据初始角度、补偿斜率和角度补偿值,在查找区间内进行两点之间的线性插值,来确定反正切角度。
本申请上述装置实施例通过采用上述技术方案,减少了反正切函数角度求解过程中的运算量,且在保证数据精度的情况下减小了计算代价并节约了有限的存储空间。
需要说明的是,上述实施例提供的基于分段式查表法的反正切函数的实现装置在实现反正切函数时,仅以上述各功能模块或功能单元的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能模块来完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
本领域技术人员可以理解,上述基于分段式查表法的反正切函数的实现装置还包括一些其他公知结构,例如处理器、控制器、存储器等,其中,存储器包括但不限于随机存储器、闪存、只读存储器、可编程只读存储器、易失性存储器、非易失性存储器、串行存储器、并行存储器或寄存器等,处理器包括但不限于CPLD/FPGA、DSP、ARM处理器、MIPS处理器等,为了不必要地模糊本公开的实施例,这些公知的结构未在图10-12中示出。
应该理解,图10-12中的各个模块或单元的数量仅仅是示意性的。根据实际需要,各模块或单元可以具有任意的数量。
上述装置实施例可以用于执行上述方法实施例,其技术原理、所解决的技术问题及产生的技术效果相似,所属技术领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程及有关说明,可以参考前述方法实施例中的对应过程,在此不再赘述。
应指出的是,上面分别对本申请的装置实施例和方法实施例进行了描述,但是对一个实施例描述的细节也可应用于另一个实施例。对于本申请实施例中涉及的模块、步骤的名称,仅仅是为了区分各个模块或者步骤,不视为对本申请的不当限定。本领域技术人员应该理解:本申请实施例中的模块或者步骤还可以再分解或者组合。例如上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
需要说明的是,本申请详细描述了一个实施例,对于其它实施例,只描述了不同之处,但本领域技术人员应能理解,这种描述不应视为对本发明保护范围的不当限定。
以上对本申请实施例所提供的技术方案进行了详细的介绍。虽然本文应用了具体的个例对本申请的原理和实施方式进行了阐述,但是,上述实施例的说明仅适用于帮助理解本申请实施例的原理;同时,对于本领域技术人员来说,依据本申请实施例,在具体实施方式以及应用范围之内均会做出改变。
需要说明的是,本文中涉及到的流程图或框图不仅仅局限于本文所示的形式,其还可以进行其他划分和/或组合。
还需要说明的是:附图中的标记和文字只是为了更清楚地说明本申请,不视为对本申请保护范围的不当限定。
术语“包括”、“包含”或者任何其它类似用语旨在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备/装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者还包括这些过程、方法、物品或者设备/装置所固有的要素。
如本文中所使用的,术语“模块”、“单元”可以指代在计算系统上执行的软件对象或例程。可以将本文中所描述的不同模块实现为在计算系统上执行的对象或过程(例如,作为独立的线程)。虽然优选地以软件来实现本文中所描述的系统和方法,但是以硬件或者软件和硬件的组合的实现也是可以的并且是可以被设想的。
本申请的各个步骤可以用通用的计算装置来实现,例如,它们可以集中在单个的计算装置上,例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备或者多处理器装置,也可以分布在多个计算装置所组成的网络上,它们可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。因此,本申请不限于任何特定的硬件和软件或者其结合。
本申请提供的方法可以使用可编程逻辑器件来实现,也可以实施为计算机程序软件或程序模块(其包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件或数据结构等等),例如根据本申请的实施例可以是一种计算机程序产品,运行该计算机程序产品使计算机执行用于所示范的方法。所述计算机程序产品包括计算机可读存储介质,该介质上包含计算机程序逻辑或代码部分,用于实现所述方法。所述计算机可读存储介质可以是被安装在计算机中的内置介质或者可以从计算机主体上拆卸下来的可移动介质(例如:采用热插拔技术的存储设备)。所述内置介质包括但不限于可重写的非易失性存储器,例如:RAM、ROM、快闪存储器和硬盘。所述可移动介质包括但不限于:光存储介质(例如:CD-ROM和DVD)、磁光存储介质(例如:MO)、磁存储介质(例如:磁带或移动硬盘)、具有内置的可重写非易失性存储器的媒体(例如:存储卡)和具有内置ROM的媒体(例如:ROM盒)。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于分段式查表法的反正切函数的实现方法,其特征在于,所述方法至少包括:
根据输入数据的大小,确定所述反正切函数查找表;其中,所述查找表包括初始角度表和补偿斜率表;
根据所述输入数据的高位值,确定索引值,并根据所述输入数据的低位值,确定角度补偿值;
根据索引值在所述查找表中确定初始角度和补偿斜率;
根据所述初始角度、所述补偿斜率和所述角度补偿值,确定反正切角度,从而实现所述反正切函数。
2.根据权利要求1所述的方法,其特征在于,所述根据输入数据的大小,确定所述反正切函数查找表,具体包括:
根据所述输入数据和精度,确定所述输入数据的整数值;
根据所述输入数据的整数值的大小,对所述反正切函数进行非线性分区间,确定所述反正切函数的查找区间;
针对每一所述查找区间,根据反正切函数的特点设置相应的所述查找表。
3.根据权利要求2所述的方法,其特征在于,所述根据所述输入数据的整数值的大小,对所述反正切函数进行非线性分区间,确定所述反正切函数的查找区间,具体包括:
根据所述数据的整数值确定所述查找区间,如若在所述输入数据的大小大于最高查找区间的最大边界值的情况下,根据所述最大边界值的整数值来确定所述查找区间。
4.根据权利要求2所述的方法,其特征在于,
所述查找表设置有表项数;
所述根据所述输入数据的高位值,确定索引值,并根据所述输入数据的低位值,确定角度补偿值,具体包括:
根据所述输入数据的高位值,确定查表索引值;
根据所述查表索引值,选定查找区间;
根据所述查找表设置的表项数和所述输入数据的精度,确定所述高位值的位宽;
将所述高位值减去由所述查表索引值选定的查找区间起始点对应的高位值的结果,确定为所述查找区间对应的索引值;
根据所述高位值的位宽,确定低位值,并将所述低位值确定为所述反正切函数的角度补偿值。
5.根据权利要求2所述的方法,其特征在于,所述根据所述初始角度、所述补偿斜率和所述角度补偿值,确定反正切角度,具体包括:
根据所述初始角度、所述补偿斜率和所述角度补偿值,在所述查找区间内进行两点之间的线性插值,来确定所述反正切角度。
6.一种基于分段式查表法的反正切函数的实现装置,其特征在于,所述装置至少包括:
查找表确定模块,用于根据输入数据的大小,确定所述反正切函数查找表;其中,所述查找表包括初始角度表和补偿斜率表;
索引值和补偿值确定模块,用于根据所述输入数据的高位值,确定索引值,并根据所述输入数据的低位值,确定角度补偿值;
初始角度和补偿斜率确定模块,用于根据索引值在由所述查找表确定模块确定的所述查找表中确定初始角度和补偿斜率;
反正切角度确定模块,用于根据由所述初始角度和补偿斜率确定模块确定的所述初始角度、所述补偿斜率和由所述索引值和补偿值确定模块确定的所述角度补偿值,确定反正切角度,从而实现所述反正切函数。
7.根据权利要求6所述的装置,其特征在于,所述查找表确定模块具体包括:
整数值确定单元,用于根据所述输入数据和精度,确定所述输入数据的整数值;
查找区间确定单元,用于根据由所述整数值确定单元确定的所述输入数据的整数值的大小,对所述反正切函数进行非线性分区间,确定所述反正切函数的查找区间;
查找表确定单元,用于针对每一由所述查找区间确定单元确定的所述查找区间,根据反正切函数的特点设置相应的所述查找表。
8.根据权利要求7所述的装置,其特征在于,所述查找区间确定单元具体包括:
查找区间确定子单元,用于根据所述数据的整数值确定所述查找区间,并在所述输入数据的大小大于最高查找区间的最大边界值的情况下,根据所述最大边界值的整数值来确定所述查找区间。
9.根据权利要求7所述的装置,其特征在于,所述索引值和补偿值确定模块具体包括:
查找索引值确定单元,用于根据所述输入数据的高位值,确定查找表索引值;查找区间选定单元,用于根据由所述查表索引值确定单元确定的所述查表索引值,选定查找区间;
位宽确定单元,用于根据所述查找表设置的表项数和所述输入数据的精度,确定所述高位值的位宽;索引值确定单元,用于将所述高位值减去由所述查找区间选定单元选定的查找区间起始点对应的高位值的结果,确定为所述查找区间对应的索引值;
角度补偿值确定单元,用于根据由所述位宽确定单元确定的所述高位值的位宽,确定低位值,并将所述低位值确定为所述反正切函数的角度补偿值。
10.根据权利要求7所述的装置,其特征在于,所述反正切角度确定模块具体包括:
线性插值单元,用于根据所述初始角度、所述补偿斜率和所述角度补偿值,在所述查找区间内进行两点之间的线性插值,来确定所述反正切角度。
CN201610596590.8A 2016-07-26 2016-07-26 基于分段式查表法的反正切函数的实现方法及实现装置 Pending CN106227291A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610596590.8A CN106227291A (zh) 2016-07-26 2016-07-26 基于分段式查表法的反正切函数的实现方法及实现装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610596590.8A CN106227291A (zh) 2016-07-26 2016-07-26 基于分段式查表法的反正切函数的实现方法及实现装置

Publications (1)

Publication Number Publication Date
CN106227291A true CN106227291A (zh) 2016-12-14

Family

ID=57533396

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610596590.8A Pending CN106227291A (zh) 2016-07-26 2016-07-26 基于分段式查表法的反正切函数的实现方法及实现装置

Country Status (1)

Country Link
CN (1) CN106227291A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107479856A (zh) * 2017-08-09 2017-12-15 珠海市杰理科技股份有限公司 反正切函数数据结构及建立方法、函数值获取方法和装置
CN108205518A (zh) * 2016-12-19 2018-06-26 上海寒武纪信息科技有限公司 获取函数值的装置、方法及神经网络装置
CN109614073A (zh) * 2018-10-28 2019-04-12 西南电子技术研究所(中国电子科技集团公司第十研究所) 四象限反正切函数硬件实现电路
CN110210612A (zh) * 2019-05-14 2019-09-06 北京中科汇成科技有限公司 一种基于自适应分段线性逼近曲线的集成电路加速方法及系统
CN111814107A (zh) * 2020-07-10 2020-10-23 上海擎昆信息科技有限公司 一种高精度实现平方根倒数的计算系统及其计算方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050268476A1 (en) * 2004-06-07 2005-12-08 Pathfinder Energy Services, Inc. Determining a borehole azimuth from tool face measurements
US20100220878A1 (en) * 2007-11-12 2010-09-02 Widex A/S Fsk receiver for a hearing aid and a method for processing an fsk signal
CN101972153A (zh) * 2010-11-10 2011-02-16 中国医学科学院生物医学工程研究所 彩色超声多普勒血流速度估算反正切优化算法
CN102252649A (zh) * 2011-04-15 2011-11-23 中国科学院长春光学精密机械与物理研究所 航空遥感器目标指向定位角的计算方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050268476A1 (en) * 2004-06-07 2005-12-08 Pathfinder Energy Services, Inc. Determining a borehole azimuth from tool face measurements
US20100220878A1 (en) * 2007-11-12 2010-09-02 Widex A/S Fsk receiver for a hearing aid and a method for processing an fsk signal
CN101972153A (zh) * 2010-11-10 2011-02-16 中国医学科学院生物医学工程研究所 彩色超声多普勒血流速度估算反正切优化算法
CN102252649A (zh) * 2011-04-15 2011-11-23 中国科学院长春光学精密机械与物理研究所 航空遥感器目标指向定位角的计算方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108205518A (zh) * 2016-12-19 2018-06-26 上海寒武纪信息科技有限公司 获取函数值的装置、方法及神经网络装置
CN107479856A (zh) * 2017-08-09 2017-12-15 珠海市杰理科技股份有限公司 反正切函数数据结构及建立方法、函数值获取方法和装置
CN109614073A (zh) * 2018-10-28 2019-04-12 西南电子技术研究所(中国电子科技集团公司第十研究所) 四象限反正切函数硬件实现电路
CN109614073B (zh) * 2018-10-28 2023-08-08 西南电子技术研究所(中国电子科技集团公司第十研究所) 四象限反正切函数硬件实现电路
CN110210612A (zh) * 2019-05-14 2019-09-06 北京中科汇成科技有限公司 一种基于自适应分段线性逼近曲线的集成电路加速方法及系统
CN111814107A (zh) * 2020-07-10 2020-10-23 上海擎昆信息科技有限公司 一种高精度实现平方根倒数的计算系统及其计算方法
CN111814107B (zh) * 2020-07-10 2021-03-12 上海擎昆信息科技有限公司 一种高精度实现平方根倒数的计算系统及其计算方法

Similar Documents

Publication Publication Date Title
CN106227291A (zh) 基于分段式查表法的反正切函数的实现方法及实现装置
Tao et al. Time-parameterized queries in spatio-temporal databases
Lucas Jr Optimal management of a research and development project
CN104142958A (zh) 一种键值对系统中数据的存储方法和相关装置
CN104504003A (zh) 图数据的搜索方法和装置
CN112985443B (zh) 路径规划方法、装置及终端设备
CN103605758A (zh) 一种移动终端文件查找的方法及装置
CN105447030B (zh) 一种索引处理方法与设备
CN105515997B (zh) 基于bf_tcam实现零范围扩张的高效范围匹配方法
CN108776678A (zh) 基于移动端NoSQL数据库的索引创建方法及装置
US7903819B2 (en) Memory efficient storage of large numbers of key value pairs
CN109815238A (zh) 用严格平衡二叉树实现数据库的动态添加方法及装置
Onori et al. Pontryagin’s minimum principle
CN108363558A (zh) 面向大数据处理的机器数级数据比较方法
CN112395322A (zh) 一种基于分级缓存的列表数据显示方法、装置及终端设备
CN111078689B (zh) 一种非连续型预排序遍历树算法的数据处理方法及系统
CN103049516A (zh) 一种数据处理方法及装置
CN109165006A (zh) Softmax函数的设计优化及硬件实现方法及系统
US6374249B1 (en) Data structure and operations for time-varying variable in an enterprise model
CN105958850B (zh) 基于优化归并排序的模块化多电平换流器电容均压方法
CN106202091A (zh) 一种字段设置方法和装置
CN102904812B (zh) 路由表项的存储方法、查找方法、装置及系统
CN103049445A (zh) 一种查询图片信息的方法、系统和图片状态服务器
CN106648794A (zh) 一种组件加载方法及装置
CN106897224A (zh) 一种软件测试范围的确定方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20161214