CN117851716A - 一种补偿算法及基于补偿算法的补偿模块及系统 - Google Patents
一种补偿算法及基于补偿算法的补偿模块及系统 Download PDFInfo
- Publication number
- CN117851716A CN117851716A CN202211256465.4A CN202211256465A CN117851716A CN 117851716 A CN117851716 A CN 117851716A CN 202211256465 A CN202211256465 A CN 202211256465A CN 117851716 A CN117851716 A CN 117851716A
- Authority
- CN
- China
- Prior art keywords
- compensation
- data
- rst
- rounding
- approximation
- 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
Links
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 48
- 238000000034 method Methods 0.000 claims description 102
- 230000008569 process Effects 0.000 claims description 75
- 238000004364 calculation method Methods 0.000 claims description 13
- 230000002829 reductive effect Effects 0.000 claims description 11
- 238000003860 storage Methods 0.000 claims description 11
- 230000006870 function Effects 0.000 claims description 9
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 230000008859 change Effects 0.000 claims description 6
- 230000007704 transition Effects 0.000 claims description 6
- 230000003247 decreasing effect Effects 0.000 claims description 2
- 230000000670 limiting effect Effects 0.000 claims description 2
- 238000004458 analytical method Methods 0.000 abstract description 5
- 238000007792 addition Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 9
- 229910002056 binary alloy Inorganic materials 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 238000002347 injection Methods 0.000 description 4
- 239000007924 injection Substances 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000009825 accumulation Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 239000000243 solution Substances 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 2
- 238000005520 cutting process Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 241000284466 Antarctothoa delta Species 0.000 description 1
- 241000084490 Esenbeckia delta Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005684 electric field Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Landscapes
- Complex Calculations (AREA)
Abstract
本发明涉及数据处理、分析技术领域,尤其涉及一种补偿算法及基于该补偿算法的补偿模块、系统。所述补偿算法是根据参与处理的数据在近似前后或补偿前后的余数或所述余数乘以补偿参数得到的乘积最终确定所需的补偿值的算法,所述余数、乘积为原始值、近似值中的至少一种。其中补偿模块可单独作用或与其他模块一同作用,能够根据要求进行补偿,降低数据处理结果的误差,提高统计数据的匹配性和可用性,方便统计数据核对。
Description
技术领域
本发明涉及数据处理、分析技术领域,尤其涉及一种补偿算法及补偿模块、系统。
背景技术
根据输入数据对数据进行处理,在计算机、网络、机械工业、金融等行业有着广泛应用,例如银行利率、汇率计算系统,电信的经分系统等。而随着大数据应用在计算机、网络、金融、交通、制造等行业的普及,利用大数据分析、处理海量数据成为各行各业的关键问题。
而数据处理设备在处理数据的过程中,难免需要对数据进行近似处理:
一种近似需求是。在数据输出时,为了方便使用者使用数据,通常会由人们对计算结果的精度进行限定。
另一种近似需求是。受到数据处理设备数据存储、处理能力的限制,对于无法或不适合完整表述的数据需要在近似之后再进行处理,比如,对无限循环小数、无限不循环小数、过长的浮点数等数据在处理前必须进行近似,从而导致在数据处理装置中原始数据与近似后的数据之间存在误差,而且近似方式通常采用向下取整,所以该误差通常为原始值有效数字以下的余数。尤其对于目前数据处理设备常用的二进制系统,甚至无法完整表示0.3这样的十进制数据,所以,在二进制系统中0.3+0.6的结果是0.8999999999而不是0.9。因此,计算机系统中对数据的近似还包括对所需处理的数据的近似。
而对所需处理的数据的近似显然受限于数据处理设备本身,受限于设备的数据处理能力(比如CPU等部件的性能)。尤其对于乘除过程,需要占用大量计算资源。
而如果统计数据不准,分析方式不可靠,就会导致统计分析出错:
①数据处理对计算机领域的重要性。而计算机的应用,几乎贯穿目前社会的方方面面,所以找到一种方法,能够降低计算机因近似所产生的误差或提升最终结果的准确度,显然意义重大。尤其是会占用更多资源的乘除过程,哪怕对原始数据带来微小的改变也可能会带来巨大的误差,而当参与处理的数据越多,乘除法所带来的极限相对误差越大。
②数据处理对金融银行业的重要性。在现代,银行的业务越来越广泛,然而在货币兑换、利润计算等领域无论是采用计算机还是其他方式均需要近似计算。
而在数据处理技术领域,目前常用的手段是根据真实结果对误差进行校正,这种方式主要存在于物料系统中,而这种方式是在产生出结果之后才能进行校正或只有在产生非正常产品后才能进行校正,无疑会导致数据处理资源或物料的浪费。
因此,提高数据处理准确度,找到一种可以在最终结果出现前便可以实现误差补偿的方式既是数据处理的重点,也是难点。
发明内容
本发明要解决的技术问题是目前数据处理实践中,经常需要对数据近似后再进行后续处理。尤其对于乘除过程中,会进一步产生误差的累积。
为解决上述问题,本发明提供了一种补偿算法及基于此算法的补偿模块、系统,减小数据处理过程中造成的误差,提高数据处理的可靠性。
为达到上述目的,本发明具体通过以下技术手段实现:
为了方便描述,首先进行定义:
可将任一连续乘除运算归纳为:其中xi为原始值,i∈[1,n],当Cti=-1时xi是除数,此外,令:/>Ci=[xi]过半进位;ai=xi-Ai为原始数据有效数字后的数据,为原始数据的绝对余数;Δi为取整时所要保留的最低位的一个单位值,而Xi为近似后的结果,即Xi代表Ai/Bi/Ci等任意一种近似结果,a*i=xi-Xi为原始数据与近似结果的差值,为原始数据对近似结果的相对余数,当近似方式为向下取整时,ai=a*i。其中,常见过半向上进位包括两种进位方式:①大于等于一半时进位,其他舍去;②大于一半时进位,等于一半时取偶,其他舍去。
而本发明涉及一种补偿算法,该补偿算法适用于加减乘除过程,包括了开根、多次方、阶乘等可化作加减乘除的运算,其误差补偿方式为:根据参与处理的数据在近似前后的相对余数(a*i)或该余数与补偿参数(Cti或)的积来确定最终的补偿值,假设第一步先根据近似后的数据得到初步结果rst*,补偿后结果为rst。对于混合运算过程,按照优先级,比如有括号时,先处理括号内数据,接着处理括号外的数据,逐步结合,直至得出结果。
在具体进行数据补偿时,假定需要依据第x项(x代表一项或多项)补偿,补偿中间值(t、T、si、Si或s`i)的计算步骤为:
步骤1.获取需处理的数据,并对需处理的原始数据进行近似;
步骤2.获取原始数据近似前后的余数或补偿后得到的数据与近似后得到的数据的相对余数中的至少一种余数;
进一步的,步骤2.1.获取原始数据近似前后的余数或补偿后得到的数据与近似后得到的数据的相对余数中的至少一项相对余数,所述余数为所有数据的余数,或需要据其进行补偿的数据以外的余数;
步骤3.取得或依次取得所述余数的和或差或所述余数与至少一个补偿参数的乘积的和,作为补偿中间值;
进一步的,步骤3.1.获取所述余数与至少一项补偿参数的乘积,接着,获取所述乘积或余数的和,所得结果标记为t或T;或逐步获取所得余数或乘积的和,标记该结果为si或Si,默认t=sn、T=Sn。或进一步的,以上内容用公式语言可限定为:
其中,或/>
若无特殊说明,参照补偿起始序数(stt)默认为1:
即,默认为:
或
Hi恒为1时:其中,或/>
步骤4.依据补偿中间值、补偿方式确定补偿值。
进一步的,在乘除过程中:首先,有不同的补偿方式(为方便说明,以下默认Hi=1):
第一种,得出rst*之后进行补偿:
先根据需要,对数据(xi)进行近似(近似方式包括:向上取整、向下取整、过半向上取整或高精度取整等取整方式),得到近似值(Xi)。然后求出原始值与近似值之间的相对余数(a*i=xi-Xi),也可以只求出需要补偿的数据(xx)以外的原始数据与近似后数据的余数。
进一步的,得出带有一定误差的近似结果(rst*),接着对近似结果补偿得到最终结果(rst)。则最终结果为rst=rst*+t×rst*÷xx或rst=rst*+t×rst*÷Xx。
比如,R=10.21×22.32×35.37,保留两位有效数字,则rst*=10×22×35=7700,t=0.9,令x=2(即通过第2个数据补偿),则有rst=rst*+t×rst*÷xx=7700+0.9×7700÷22≈8015。第二种,直接在结果的对应位数的位置上叠加补偿中间值的倍数:
比如,R=16.21×32.32×55.37,保留两位有效数字,则rst*=16×32×55=28160,t=0.9,令bs=1,则对应位置为左起第二位,结果有rst=rst*+bs×t=29060。而真实结果R=29009。
优选的,当Hx不恒为1时,叠加方式为:rst=rst*×(1+t)或rst=rst*×(1+T)。
第三种,近似与误差补偿合并进行:
先根据需要,对数据(xi)进行近似,包括:向上取整、向下取整、过半向上取整或高精度取整等取整方式得到近似值(Xi)。然后求出原始值与近似值之间的相对余数(a*i=xi-Xi)。
接着得出t或T,将其中某个近似值(Xx)或原始数据转化为X*x=Xx+(Ctx)±1×t,或X*x=xx+(Ctx)±1×T,然后,利用X*x替代Xx或xx进行数据处理,得到rst。
比如,要获得R=10.21×22.32×35.37,保留两位有效数字,t=0.9,令x=2,则X*x=Xx+Ctx×t=22+0.9=22.9,则有rst=10×22.9×35=8015。
进一步的,除了上述根据其中某一个数值进行的误差补偿外,在实际操作中,还可以依据多个数据进行补偿。对于多个数据进行补偿的方式可分为得出rst*前和得出rst*后两种补偿方式:
比如,R=10.51×22.62×35.77,向下取整,保留两位,t=1.9,令x=1、3,则:
得出rst*前补偿:rst=rst*+t×rst*÷xx=7700+1×7700÷10+0.9×7700÷35=8668。
得出rst*后补偿:令x=y_1、y_2......y_k,优选的,其中X*y_j=xy_j+(Ctx)±1×Ty_j,(j∈[1,k]),其中/>其中Ty_j对应第y_j项补偿中间值。
如,y_1=1、y_2=3时:X*1=X1+Ct1×t1=10+1=11,同理X*3=35.9,则有:
rst=11×22×35.9=8687.8。
除此之外,还可利用t进行过度补偿(即|ti|>|0.5Δi|,见具体实施方式)。
进一步的,可以通过逐步结合的方式降低单一数据的补偿幅度,提高补偿精度:
逐步补偿:令假设需要对其中第s’项至第s”项进行补偿,其他项正常近似。优选的,i=s’时,X*i=Xi+(Cti)±1×[si+C×Δi]取整;
i∈(s’,s”]时,X*i=Xi+(Cti)±1×{[si+C×Δi]取整-[si-1+C×Δi-1]取整};然后利用X*i作为补偿后的数据进行处理,其中C根据取整方式、进制、工作需要的不同取值不同。
如,在Ω进制中C等于±0.05×Ω或0;又如取整方式采取过半进位,则C值优选为0。
进一步的,在逐步结合补偿过程中,为了进一步控制结果误差,在乘除过程中可根据参与处理的数据的有效数字大小顺序结合,进行补偿:
比如:在十进制系统中R=50.59×109.2÷30.61,保留两位有效数字,按照有效数字大小(不考虑数据原本的数量级)顺序结合:
如由小到大结合:R=109.2÷30.61×50.59,rst=110÷31×50.9=181。
理论证据:在数据处理过程中,尤其以乘除法在数据处理过程中更容易产生误差累积,而在采取如上所述的补偿方法后,对最终结果的误差分析如下:
对在P点(x1,x2,...,xn)处进行泰勒一阶展开(当保留位数足够时,可以忽略其高阶展开项,这是误差分析当中的习惯做法):
则rst的绝对误差(E*):
rst的相对误差(Er*):
按有效数字大小顺序补偿后,对于任意k∈[1,n]都有:
且所以/>
同理,常用的过半进位的近似方式的极限误差:由此可见,参与的数据越多,经过补偿处理后的结果相较于目前通常用的误差较小的过半进位方式优势越明显(同理,不进行排序时极限误差可降至一半左右,而当Hi为各数据首几位数据时,其误差可以进一步降低)。
实验证据:图6中所得出的数据是根据过半进位的近似方式在两个数据的处理中保留2位数据所得出的相对误差的绝对值减去在此基础上进行误差补偿后得到的相对误差的绝对值所得出的差值,在404550次运算中(即穷举了三位数的运算),所有补偿后得到的结果的误差均不高于过半进位得到的误差(即两者差值非负),且大量补偿后的结果的误差明显小于补偿前的误差(即两者差值为正值),且极限误差≈5%,相较正常过半近似的极限误差(≈10%)下降一半,符合上述推导。
进一步的,对于加减单元:其中xi为参与处理的原始值,i∈[1,n],当Cti=1时对应xi进行加法过程,Cti=-1时xi是减法中的减数,此外,令Xi为近似后的结果,此时a*i=xi-Xi。
对结果进行补偿或通过其中某个数据进行补偿或逐步补偿X*i=Xi+Cti×{[Si+C×Δi]取整-[Si-1+C×Δi-1]取整},(i∈[s′,s″],当i=s’时[Si-1+C×Δi-1]取整=0),或/>其中取整方式、C值的确定与乘除法中相同。
Si与[Si+C×Δi]取整在乘除过程中均进行高位对齐,在加减过程中均保留原数量级。
在上述补偿算法的基础上,可以获得一种具有误差补偿功能的补偿模块及数据处理系统。
所述数据处理系统包括误差补偿模块,该误差补偿模块的补偿算法如前所述。
除误差补偿模块外,这种具有补偿功能的数据处理系统还可包括输入模块、近似模块、计算模块、误差补偿模块;使用中,由输入模块输入需处理的数据,接着由近似模块、计算模块、误差补偿模块根据需要进行近似、补偿。
本发明的有益效果在于:
①通过补偿算法可以提高数据处理结果的精度;
②本误差补偿算法适用于多进制操作系统,跨进制使用时不必进行进制转换,效率高;
③误差补偿算法可在初步计算后对误差进行补偿,提升结果的精度;
④误差补偿算法可在计算前对误差进行补偿,提高数据处理效率;
⑤本系统适用于多数据处理,使得结果更加可控,对于一个Ω进制设备,若采用本系统进行数据处理,合理的保留m位有效数字,则不采用本系统处理时需要保留m+|logΩn|位有效数字才可达到相同的极限精度,即可以保留更少的数据,达到相同的计算精度;
⑥可以通过过度补偿提高数据处理速度;
⑦可通过迭代方式降低数据处理的每个步骤所需要保留的数据字长。
附图说明
图1补偿算法的流程示意图
图2对初步结果进行补偿的数据处理流程示意图①
图3对初步结果进行补偿的数据处理流程示意图②
图4对原始数据进行补偿的数据处理流程示意图①
图5对原始数据进行补偿的数据处理流程示意图②
图6误差补偿前后相对误差的比较
具体实施方式
为更方便的说明本发明的目的、技术方案和优点,下面将结合本发明的实施例和附图,对本发明的技术方案进行清楚、完整的描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要注意的是,本申请中的公式、字母的定义仅为解释本发明,而不能理解为对本发明的限制,基于具体实施方式对其进行简单变型、改动、组合后得出的数据处理过程均应理解为不超出本发明的保护范围,则本发明也意图包含这些改动和变型在内。
为了方便描述,首先进行如下定义:
任一连续乘除运算可归纳为:其中xi为原始数据,i∈[1,n],即从/>连续乘至/>Cti为记号参数,用于标记运算的类型。如,当Cti为负值时对应该数据可理解为除数。
进一步优选的,当|Cti|不为1时,可展开至|Cti|取值为1时继续处理。
任一连续加减过程可归纳为:其中xi为原始数据,i∈[1,n],Cti=1时对应xi进行加法,Cti=-1时对应xi为减法中的减数。
进一步定义:Ci=[xi]过半进位,ai=xi-Ai为原始数据的绝对余数;Δi为取整时所要保留的最低位的单位值,如Ai≠Bi时,Δi=Bi-Ai。
为方便描述,令Xi代表xi初步近似后的结果,即Xi代表Ai/Bi或Ci等近似结果的任意一种,令X*i代表xi或Xi补偿后得到的数据(具体过程见实施例);定义a*i=xi-Xi,为原始数据相对近似数据的相对余数,当近似过程为向下取整时ai=a*i,因此ai与a*i统称为余数。
假设根据近似后的数据得到的初步结果为rst*,则补偿后得到的结果为rst。
补偿方式包括①在获得rst*之前补偿,②获得rst*后补偿等方式。而且可依据其中至少一个数据完成补偿。若在获得rst*前对数据(xi或Xi)进行补偿,xi或Xi补偿后得到X*i。
si(或s`i或Si)、t(或T)为确定最终补偿值的补偿中间值。若无特殊说明,默认为t=sn、T=Sn。
其中,或/>(如无特殊说明stt默认为1,即/>或/>
进一步定义:Cti、为补偿参数;其中Hi为补偿控制参数。
@i为第i项占位符,表示在此处执行第i种特定操作。
所述补偿算法的补偿步骤包括:
步骤1.对原始数据进行近似;
步骤2.取得原始数据与近似后得到的数据或原始数据与补偿后得到的数据的相对(或绝对)余数中的至少一类余数;
步骤3.取得或依次取得所述余数的和或差或所述余数与至少一项补偿参数的乘积的和,作为补偿中间值;
步骤4.依据补偿中间值、补偿方式确定补偿值。
以下将结合具体的实施例来说明具体补偿方式。
优选的,以下实施例中若非特别说明,则在乘除过程中默认根据原数据(xi)进行高位对齐,直至最终确定结果时确定其数量级。加减过程中均按各数据的原始数量级对齐。
进一步的,为了方便对技术方案的说明,以下实施例中所列举例子对于所处理数据进行了简化,实际操作时可对应多位数据的处理过程。
实施例1:
本实施例以先获得rst*,接着补偿为例,比如需要处理:
R=21.94×21.94÷79.38 (式1-1)
若对1-1保留两位有效数字,则按照不同的保留方式有:
A1=21、A2=21、A3=79,对应rst*=21×21÷79;
B1=22、B2=22、B3=80,对应rst*=22×22÷80;
C1=22、C2=22、C3=79,对应rst*=22×22÷79;
Δi=Bi-Ai=1(i∈[1,3])。
进行补偿时,假定需要依据第x项数据进行补偿,补偿中间值的计算步骤为:
首先,获取原始数据与近似后的数据的相对余数,即a*i。
进一步的,假设stt=1,获得或在必要时逐步获得Ctj×a*j/Hj的和:
优选的
或
其中,优选的,t通常用于对近似后的数据(Xx、rst*等)补偿,T用于直接对原数据(xx)补偿以获得X*i。
值得注意的是,当R中仅包含单一类型的运算时,比如Cti恒为1时,可得:
或
其中,Hi为补偿控制参数,为变参数或固定值,在乘除过程中,优选的固定为1或为所述原始或初步近似后的数据(xi或Xi)的前z2位(八进制、十进制、十六进制中优选为前1~6位,二进制中优选为前2~20位)有效数字,这样既可保证有足够的补偿精度,也可方便通过读取等方式直接得出所需的补偿中间值,从而有效避免数据处理速度的降低。比如在部分导航系统中(通常为二进制系统),由于可用芯片字长有限,因此Hi优选为有效数字前2~8位即可在保证数据补偿精度的同时减少因补偿带来的数据处理速度的下降;乘除中,Hi为1时处理速度较快,Hi为有效数字前几位时补偿结果更准确。加减中Hi优选为1。
为方便解释本发明的具体实施方式,以下如非特殊说明,则stt、Hi均默认等于1,
即:或/>
例如,式1-1中,对各数据向下近似,令x=2(即针对第二个数据进行补偿,下同),则t=s3=0.94+0.94-0.38=1.5或T=S3=0.94-0.38=0.56[注1];
注1:本实施例中,是通过rst*完成补偿的(即补偿过程在得出初步结果rst*之
后),因此,优选的,此处补偿中间值取t=1.5(下同)。
对各数据采取向上近似,令x=3,则t=-0.06-0.06+0.62=0.5或T=-0.06-0.06=-0.12;
对各数据采取过半进位近似,x=2,t=-0.06-0.06-0.38=-0.5或T=-0.06-0.38=-0.44。
进一步的,若得出rst*后进行补偿,并仅通过其中一个数据进行补偿,在近似后的数据的基础上,补偿算法对初步结果(rst*)按照如下方式进行补偿:
结果rst为:rst=rst*+t×rst*×Hx÷xx或rst=rst*+t×rst*×Hx÷Xx。[注2]
注2:对rst*补偿时既可用xx也可用Xx,两者差距较小,可根据具体场景进行选择。
其中,Hx为第x项的补偿控制参数,默认Hx=1。即:
rst=rst*+t×rst*÷xx或rst=rst*+t×rst*÷Xx。
例如:①式1-1,对各数据采取向下近似,令x=2,或/>
进一步的,可通过直接叠加来完成补偿:
第一种叠加方式:在rst*对应位置[注3]上直接叠加t(或T)的合理倍数完成补偿(假设该倍数为bs,此处令bs=1),则:rst=rst*+bs×t=5.582+0.15=5.732。
第二种叠加方式:优选的,当Hx不恒为1时,叠加方式可归纳为rst=rst*×(1+t)或rst=rst*×(1+T)。[注4]
注3:其中,保留n位对应位置即从最高位开始算起的第n位(此处为对乘除运算进
行的补偿,进行高位对齐,不考虑其本身的数量级),由于本例中保留2位有效数字,因此所
述对应位置即第二位有效数字处。
注4:其中1+t或1+T中需要考虑t、T的数量级,具体方式可描述为:当保留z1位有效
数字、Hx为各数字前z2位时,优选的,t或T的小数点自其有效数字最低位(与原数字xi的有效
数字最低位一致)向前移动z1-z2位,如R=0.02194×0.2194,保留2位(向下取整),则原式化
为0.021×0.21=0.00441,令Hx为各数字第1位,得t=94/2+94/2=94(在乘除过程中,获得
t的过程进行高位对齐,不考虑原始数据的数量级,此处为方便描述将其保留为整数),其有
效数字最低位对应“9”的前一位,因此代入时小数点自94最高位前一位向前移动z1-z2=1
位,即t确定为0.094,代入为:rst=rst*×(1+t)=0.00441×(1+0.094)≈0.00482。值得注
意的是,当t数量级发生增高或降低后,仍然对应其小数点自其有效数字最低位向前移动
z1-z2位,如R=0.02194×0.2194×2.194,其他条件不变,得t=94/2+94/2+94/2=141,其有
效数字最低位对应“4”的前一位,向前移动1位得到0.141,代入为:rst=rst*×(1+t)=
0.009261×(1+0.141)≈0.01057。同理,当t数量级下降后,仍然对应其小数点自其有效数
字最低位向前移动z1-z2位,如R=0.02194×0.2194÷1.192,其他条件不变,得t=94/2+94/
2-92=02,其有效数字最低位即“0”前一位,向前移动1位得到0.002,代入为:rst=rst*×
(1+0.002)。同时一旦确定z1、z2即可确定移动方式,方便通过数据处理设备实现对应过程。
进一步的,可先得出tep=rst*÷Xx,
则rst=Xx×tep+t×tep×Hx=(Xx+t×Hx)×tep=(xx+T×Hx)×tep。
尤其当Ctx=1时,可先将x项以外的数据算出,接着再将运算、补偿一并进行。
例如,式1-1中采取向下取整,tep=21÷79=0.265823,则rst=(21+1.5)×0.265823=5.981。
进一步的,当t(或T)、si(或Si)等补偿中间值的绝对值足够小时,补偿前后差异较小,符合所需精度需求时,可直接输出结果(以下以t为例说明判断过程,T等补偿中间值的判断方式与之相同)。
即,需要根据其中第x项数据进行补偿时,当|t×Hx|小于或小于等于th×Δx(默认Hx=1,即|t|小于或小于等于th×Δx)时可直接输出结果。
值得注意的是,判断时,在乘除中xi均与xx高位对齐,th为根据工作需要确定的参数,比如th取值范围设为[10,1]∪(1,0.5]∪(0.5,0]。
例如,①式1-1中,取th=2,则采取向上取整时|t|=0.5<th×Δx=2,不需要补偿。
②式1-1中,取th=1,则采取向下取整时|t|=1.5>th×Δx=1,需要补偿。
③式1-1中,取th=1,则采取过半进位取整时|t|=0.5<th×Δx=1,不需要补偿。
或根据参与处理的数据多少确定是否需要进行补偿,如:Hi=1,①th取值为2时,参与处理的数据个数n=1或2时,采取常用的几种近似方式时,|t|<2×Δx,不必补偿;或当采取过半进位时,n=1、2、3或4时,|t|<2×Δx,可直接得出结论;②th取值为1时,参与处理的数据个数n=1时,采取常用近似方式时,|t|<1×Δx,可直接得出结论;或当采取过半进位时,n=1或2,|t|<1×Δx,可直接得出结论。依次类推,当th=z时,n小于等于z时,采取常用近似方式时,|t|<z×Δx,可直接得出结论,或n小于等于2z时,通过过半进位近似得到的结果|t|≤z×Δx,可直接得出结论。
例如,①在式1-1中,取th=2,采取向上取整时,由于n=3,即判断可能需要进行补偿。
②在式1-1中,取th=2,采取过半向上取整时,由于n=3,即判断不需要进行补偿。
③在式1-1中,取th=1,采取过半向上取整时,由于n=3,即判断可能需要进行补偿。
此外,也可以结合以上两种判断方式,即先根据个数(n)判断出可能需要进行补偿,接着利用|t|等补偿中间值的绝对值的大小进行判断。
比如,在式1-1中,取th=2,则采取向上取整时,由于n=3,即判断可能需要进行补偿,采取向上取整时|t|=0.5<th×Δx=2,即判断不需要补偿。最终结论:不需要进行补偿。即补偿中间值的绝对值的判断结果优于n的判断。
值得注意的是,本申请中,在乘除过程中补偿的一般要求为:若无特殊说明,则根据原数字(xi)进行高位对齐,接着处理,直至完成补偿、确定最终结果时确定其数量级。
本申请中高位对齐的常见描述方式包括两种,而在实践中还可直接通过指针移动等常用方式实现高位对齐,则这些方案也属于本申请的保护范围。本申请中的常用描述方式包括:
①自最高位起逐位对齐:如,要处理2.194×219.4÷7.938,且向下取整保留前两位时:
2 1 9 4×10-3
2 1 9 4×10-1
7 9 3 8×10-3
则rst*=2100×2100×÷7900×10(-1)+(-3)-(-3)
计算补偿中间值时忽略其数量级,根据原数据进行高位对齐,如上述列式中,t=0094+0094-0038=0150,T=0094-0038=0056。[注5]
注5:此处为了更方便理解,对高位补充0进行对齐。在实际操作中,优选的,可通过
指针移动完成对齐过程。
最终得出结果时确定其数量级:
②以其中一个数据为基准,通过移动小数点对齐:
如要处理2.194×219.4÷7.938,向下取整保留前两位,以第二个数字为基准进行对齐:
2 1 9.4×10-2
2 1 9.4×100
7 9 3.8×10-2
以下为方便描述,通常以第二种对齐方式进行对齐,且通常以xx为基准进行对齐。
进一步的,在数据处理的每个步骤中,以中间过渡式作为新的列式进行补偿,即可通过迭代的方式进行补偿,以降低数据处理过程中对数据字长的要求。
实施例2:
进一步的,可在得出rst*前,通过其中一个数据或多个数据进行补偿。具体方式是在xi或Xi的基础上,补偿方式为:
将Xx或xx转化为X*x=Xx+t×Hx÷Ctx≈Xx+t÷Ctx,或X*x=xx+T×Hx÷Ctx≈xx+T÷Ctx[注],接着,以X*x作为补偿后的数据替代xx或Xx,直接获得rst。
注:当Hi=1时使用约等号后面的方式对数据进行处理。进一步的,值得注意的是,
当|Cti|=1时X*x=Xx+t×Hx×Ctx=Xx+t×Hx÷Ctx,或X*x=xx+T×Hx×Ctx=xx+T×Hx÷Ctx
例如:式1-1中,对各数据采取向下近似的近似方式,令x=2,rst=21×(21+1.5)÷79≈5.981或rst=21×(21.94+0.56)÷79≈5.981。
值得注意的是,当Cti为负值时,这种补偿方式同样可以节省数据处理资源。
进一步的,其他近似方式也可使用这种补偿方式:
如式1-1中对各数据过半进位取整,令x=2,rst=22×(22-0.5)÷79≈5.987,或rst=22×(21.94-0.44)÷79≈5.987。
实施例3:
进一步的,加减过程中,Hi=1(其中i∈[1,n]):
如:5.981+87.39+71.28 (式3-1)
保留原数据数量级后,将所有数据保留至个位:①如式3-1对结果进行补偿:
②对原始数据补偿:或/>
实施例4:
进一步的,在复合运算中,先处理优先级较高的,接着处理优先级低的(如先处理括号内的,接着处理括号外的)。为方便叙述,本实施例以过半进位近似方式为例,其他近似方式可参考实施例1~3。
如:164.651×(13.05-0.07)=164.651×12.98 (式4-2)
进一步的,按照过半进位方式,保留2位,根据164.651进行补偿,对齐a*i的有效数字(即高位对齐):rst*=160×13;t=4.651-0.2=4.451[注]。
注:由于164.651-160=4.651保留2位至十位,而12.98-13=-0.02,保留2位至个
位,所以要使-0.02的个位与4.651的十位实现高位对齐,需要提高-0.02一个数量级,变为-
0.2。而本申请其他部分所述“对齐有效数字”若无特别说明,则均为此种高位对齐的含义
(此处的高位对齐的含义与实施例1中第二种高位对齐方式一致)。
进一步的,可以通过存储定长的a*i来实现快速对齐操作:
优选的:以定长的方式存储式4-2中的两个数据:164.651(04651),12.9800(10200),其中第一位为符号位:0代表正数,1代表负数,后续数据为定长的a*i。
或在高位对齐的前提下,实现a*i的快速对齐:如,以变长的方式存储式4-2中的两数据:164.651(4651),12.9800(02),其中括号内的02是由于12.9800第三位数据在得出a*i时得到的结果为0,要与164.651中a*i对齐,则高位补0占位。
则rst=164.451×13≈2137.86。
实施例5:
进一步的,还可通过多个数据进行补偿,比如当x=y_1、y_2......y_k时进行补偿:
其中,在乘除过程中进行补偿的方式包括,
方式一、得出rst*之后进行补偿的处理过程可归纳为:
或
方式二、得出rst*之前进行补偿的过程:
优选的,其中X*y_i=xy_i+Ty_i×Hy_i÷Cty_i或X*y_i=Xy_i+ty_i×Hy_i÷Cty_i,(i∈[1,k]),其中/>其中ty_i、Ty_i即对第y_i项数据补偿的补偿中间值。
其中,进一步优选的,令全部Hi=1,且通过ty_i对rst*补偿,有:或/>进一步的,X*y_i=xy_i+Ty_i÷Cty_i或X*y_i=Xy_i+ty_i÷Cty_i,(i∈[1,k])。
进一步的,Cti取值为±1时,可有X*y_i=xy_i+Ty_i×Hy_i×Cty_i或X*y_i=Xy_i+ty_i×Hy_i×Cty_i。
如在式1-1中R=21.94×21.94÷79.38,在进行向下取整时(rst*=21×21÷79,t=1.5)可将t=1.5拆开(令t=1+0.5),对第1、第3两个数据进行补偿(对第1个数据补偿1,相当于对第1个数据加1,对第3个数据补偿0.5,相当于对第3个数据减0.5[注]):
rst=22×21÷78.5=5.885。
注:在乘除法的补偿中,补偿过程中符号的确定方式同实施例2。
进一步的,在对多个数据进行补偿时,还可对其中至少一个数据进行过度补偿来简化处理过程:
例如:R=57.32×68.38 (式5-1)
其中,优选的是对原数据直接进行补偿:
对式5-1保留2位,可对其中68.38进行过度补偿(“过度补偿”即|ti|≥0.5Δi,或|Ti|≥0.5Δi,本例中Δi=1,其中ti或Ti即第i个补偿中间值),为方便后续处理,令68.38变为70,直接对全部原始数据进行补偿时,T=0,此时T2=70-68.38=1.62,T1=-T2=-1.62(由于T=0,因此,优选的,T1+T2=0)即可完成补偿,原式变为:
rst=55.7×70=3899
值得注意的是,此时数据处理的复杂程度为三位数乘以一位数,最终只需转化为三步乘法,且误差低于0.53%(原式的结果约为3919);而直接对原式保留两位有效数字,算式变为57×68=3876,复杂程度为两位数乘以两位数,需要四步乘法,且误差超过1.12%。
值得注意的是,假设补偿结果为则对原数据的补偿一般符合如下条件:/>取Hi=1,则有/>进一步的,可先进行全面近似再进行补偿,t代表第一步近似后得出的补偿中间值,如:
R=57.32×68.38中,先向下取整,得到rst*=57×68,此时t=0.7,
则,令t1=3,有X*1=57+3=60,则t2=0.7-3=-2.3,此时t1+t2=3-2.3=0.7,所以X*2=68+(-2.3)=65.7。则,rst=60×65.7=3942。
实施例6:
进一步的,还可根据补偿中间值对原始数据逐步完成补偿(逐步补偿)。
例如乘除过程中:
假设Hi=1,需要通过原始数据中第s’项至第s”项逐步进行补偿,其他项正常近似。优选的,为方便后续操作,应当在确定最终补偿结果前进行取整,如:
利用si进行补偿时有:i=s’时X*i=Xi+{[si+C×Δi]@1÷Cti}@2,
i∈(s’,s”]时X*i=Xi+{[(si+C×Δi)@1-(si-1+C×Δi)@1]÷Cti}@2;
利用Si进行补偿时有:i=s’时X*i=[si+(Si÷Cti)@1+C×Δi]@2,
i∈(s’,s”]时X*i=[xi+(Si÷Cti)@1+C×Δi]@2-[(Si÷Cti)@1+C×Δi]@2
优选的,在@1或@2中至少一处执行取整操作,且各公式中取整操作相对独立,如在i=s’时在@1处取整,当i∈(s’,s”]时在@2处取整。
进一步优选的,当|Cti|≠1时,取整步骤在@2处进行。
如:利用Si进行补偿时有:i=s’时X*i=[xi+Si÷Cti+C×Δi]取整,
i∈(s’,s”]时X*i=[xi+Si÷Cti+C×Δi]取整-[Si÷Cti+C×Δi]取整。
或者,进一步优选的,对补偿中间值(如si或Si)或补偿中间值与C×Δi的和等参数在存储、补偿过程中截去其高位数字。优选的,si、Si或所述和值最高位只保留至对应原始数据有效数字最低一位数据(当stt取值较大时,至少在完成第一次补偿时可保留更高位的数字),补偿过程若产生向所保留的最高位相比更高位的进位时忽略出现的进位,如设12345中有效数字为前三位123,则存储过程中忽略高位,最高仅保留有效数字最低位的数据。即,将12345保留为345,产生向“3”的更高位的进位时舍去该进位。或当stt取值较大时多保留更高几位,如保留多一位,将12345保留为2345,产生向“2”的更高位进位时舍去该进位。进一步优选的,在对原数据补偿时仅判断补偿中间值(如si或Si)或补偿中间值与C×Δi的和的有效数字最低位的变化来确定补偿方式:
如,当所用补偿中间值为si时,仅当si(或si+C×Δi)与si-1(或si-1+C×Δi-1)相比有效数字发生变化,对该原始数据有效数字最低位处增加si(或si+C×Δi)的有效数字变化的变化值。采取这种方式可以使数据处理设备通过简单的指针移动实现误差补偿,提高数据处理效率。
以下以通过si进行补偿、在@1处取整为例。其他过程两者基本一致,在此不再赘述。
其中,stt为补偿起始参数,优选的,stt可选择为1、2或s’。
进一步的,为了方便说明,本实施例中若非特殊说明,则默认取stt=s’。
在对乘除法进行补偿时si、[si+C×Δi]取整、si-1、Δi-1均根据原始数据进行高位对齐。在加减过程中均对齐小数点。
进一步的,得出X*i时,C根据[si+C×Δi]取整的取整方式、进制的不同取值不同。
更进一步的,C取值的优选方法:在不同进制体系中,如Ω进制中C等于±0.05×Ω或0,如二进制系统中C等于±0.1或0、十进制中C等于±0.5或0。进一步优选的,当通过补偿获得X*i的取整为过半进位时,C取0;为向上取整时C取负值;为向下取整时C取正值。当此处不进行取整时C取0。
进而通过调整C值可快速的实现在不同进制系统的补偿过程中直接完成误差补偿,而不必首先进行进制转换,提高数据处理效率,降低因为进制转换带来的误差。
或可根据[si+C×Δi]取整判断如何进行补偿,如在二进制系统中通过移动来实现C×Δi,如通过移动Δi的数量级来实现C×Δi,接着加和后直接截断来实现[si+C×Δi]取整,或对si直接对其有效数字以下的低位移位后截断,实现[si+C×Δi]取整,如在八进制中通过移动Δi的位数接着乘4来实现C×Δi,接着加和后直接截断来实现[si+C×Δi]取整,等电学领域常用近似手段来实现补偿;[si+C×Δi]取整中取整可采用向上、向下或过半进位的取整方式。其中,优选的,当采用向下取整时更容易实现,如:
X*i=Xi+{[si+C×Δi]向下取整-[si-1+C×Δi-1]向下取整}÷Cti,
比如在十进制中有X*i=Xi+{[si+0.5×Δi]向下取整-[si-1+0.5×Δi-1]向下取整}÷Cti。
值得注意的是:关于Δi的确定,如11.01×10.1,若保留前三位,i=1时,对其中11.01向上、向下取整的结果分别为11.1与11.0,所以Δ1=0.1;i=2时,其中10.1取整保留的最低位为小数点后一位,其单位值为0.1,因此Δ2=0.1。优选的,在一个连续乘除运算中,Δi相等。
进一步的,为提升rst的准确度,令
接下来将通过具体示例说明补偿过程:
一、比如,(1.1)与(1.2)要处理:10001.001×10101.11×11001.111×11011.101÷11101.01
(1.1)在二进制系统中,假设s’=1,s”=n=5,保留前5位。
①对原数据(xi)的近似及补偿(即@1处)均采取向下取整的近似方式,此时C=0.1,[si+C×Δi]取整中,C×Δi即Δi数量级降一位,则处理过程可归纳如下:
X1=10001,X2=10101,X3=11001,X4=11011,X5=11101
X*1=10001+{[s1+C×Δ1]取整-[s0+C×Δ1]取整}÷Cti=10001+{[0.001+0.1×1]取整-0}=10001
X*2=10101+{[s2+C×Δ2]取整-0}÷Cti=10001+{[0.001+0.11+0.1×1]取整-0}=10110
X*3=11001+{[s3+C×Δ3]取整-1}÷Cti=11010
...
X*5=11101+{[s5+C×Δ5]取整-2}÷Cti=11101
则rst=10001×10110×11010×11011÷11101≈10001101011101。
②进一步提高结果的准确度,令:X*n=Xn+{sn-[sn-1+C×Δn-1]取整}÷Ctn。
即在上述基础上,令X*5=11101-{s5-[s4+C×Δi]取整}=11101-0.001=11100.111,进而提高补偿精度。此时,rst=10001×10110×11010×11011÷11100.111。
③进一步的,对原数据(xi)采取向上取整的近似方式:
X1=10010,X2=10110,X3=11010,X4=11100,X5=11110
在@1处采取向下取整,此时C=0.1,则该算式处理过程可归纳如下:
X*1=10010+{[s1+C×Δ1]取整-[s0+C×Δ1]取整}=10010+{[-0.111+0.1×1]取整-0}=10001,
或[si+C×Δi]取整为si的有效数字更低位的数据提高一位数量级并截断:
X*1=10010+{[-0.111]提高一位-0}=10001,
同理:X*2=10110,X*3=11010,X*4=11011,X*5=11101。
则rst=10001×10110×11010×11011÷11101≈10001101011101。
④进一步的,对原数据(xi)采取过半进位的近似方式,@1处同样采取过半进位的近似方式,此时C=0,则该算式处理过程可归纳如下:
X1=10001,X2=10110,X3=11010,X4=11100,X5=11101
X*1=10001,X*2=10110,X*3=11010,X*4=11011,X*5=11101。
则rst=10001×10110×11010×11011÷11101≈10001101011101。
(1.2)在八进制系统中,假设s’=1,s”=5,保留前5位。
①对原数据(xi)近似及补偿均采取向下取整,则C=0.4,则处理过程为:
X1=10001,X2=10101,X3=11001,X4=11011,X5=11101
X*1=10001+{[s1+C×Δ1]取整-0}÷Cti=10001+{[0.001+0.4×1]取整-0}=10001
X*2=10101+{[s2+C×Δ2]取整-0}=10101;同理X*3=11001,X*4=11011,X*5=11101
则rst=10001×10101×11001×11011÷11101。
②进一步提高补偿的准确度:令
X*5=11101-{s5-[s5-1+C×Δ5-1]取整}=11101-0.333=11100.445。
二、进一步的,(2.1)要处理的算式为:10001.03×10101.61×11001.62×11011.53÷11101.39,
(2.1)在十六进制系统中,s’=1,s”=5,保留前5位。
对原数据xi近似、@1处采取向下取整的近似方式,此时C=0.8:
X1=10001,X2=10101,X3=11001,X4=11011,X5=11101
X*1=10001+{[s1+C×Δ1]取整-0}=10001+{[0.03+0.8×1]取整-0}=10001
同理X*2=10101,X*3=11002,X*4=11011,X*5=11101
则rst=10001×10101×11002×11011÷11101。
同(1.1)或(1.2)一样,在十六进制数据处理系统中同样可进一步提高结果的准确度,还可以对向上取整、过半进位等取整的结果进行逐步补偿,在此不再赘述。
三、进一步的,例如,(3.1)与(3.2)需要处理331.03×551.61×591.62×701.53÷821.39
(3.1)在十进制系统中,当s’≠1,且stt=s’时,即不考虑对x1与x2的补偿。
s’=3,s”=5,保留前3位,对原数据xi近似、X*i补偿采取向下取整的近似方式,则C=0.5:
X*1=331,X*2=552
X*3=591+[s3+C×Δ3]取整=592
同理X*4=701+{[s4+C×Δ4]取整-1}=701,X*5=821-{[s5+C×Δ5]取整-2}=821
则rst=331×552×592×701÷821≈92355686.12。同理,其他进制中,s’≠1时也可进行类似操作。
(3.2)在十进制系统中,进一步的,当s’≠1且stt=1时:
s’=3,s”=5,保留前3位,对原数据xi近似、X*i的补偿采取向下取整的近似方式,则:
X*1=331,X*2=551,X*3=591+[s3+C×Δ3]取整=592,
同理X*4=701+{[s4+C×Δ4]取整-1}=702,X*5=821-{[s5+C×Δ5]取整-2}=822
则rst=331×551×592×702÷822≈92207573.61
可以看出(其中R≈92265463.65):(3.1)处理后的误差为0.098%,(3.2)处理后的误差为0.063%(而这两者的误差均远小于目前较常用的过半进位近似方式得到的0.25%的误差),这是因为(3.2)的处理方式将算式中第1项至第s’-1项也作为补偿依据,通常此种处理方式得到的结果误差更小,但是相较而言(3.1)的处理方式处理数据的过程更简单。因此,当stt≠1时处理速度会提升,同理,其他补偿方式中也可通过调整stt值来提升处理速度。
或者,进一步的,以上例子可以在si等补偿中间值的存储过程中优选的最高位只保留至其有效数字最低一位的数据,补偿过程中若产生向更高位进位或借位时舍去该进位或借位。进一步优选的,在对原数据补偿时仅判断si、Si(或si+C×Δi、Si+C×Δi)的对应有效数字最低位的变化,以确定对其补偿的方式,仅当所述有效数字最低位差值不为0时对该数据有效数字最低位对应增加所述有效数字最低位的差值(除对xs’或Xs’的补偿外,均不必要考虑哪个数据更大)。
实施例7:
进一步的,乘除运算中可通过调整Hi参数来提高补偿精确度(尤其在算式复杂的情况下),比如变Hi参数结合逐步补偿的技术方案(为方便说明,本实施例以数据处理设备容易实施的向下取整为例):
定义:其中X*i为补偿后的数据。即,逐步获取参与运算的数据与补偿后的数据的相对余数。优选的,Xi为原始数据向下取整得到的近似数据Ai。
假定需要对其中第s’项至第s”项进行补偿,其他项正常近似,
利用si进行补偿时:i=s’时X*i=Xi+[(si×Hi)@1÷Cti+C×Δi]@2,
i∈(s’,s”]时X*i=Xi+{[(si-s`i-1)×Hi]@1÷Cti+C×Δi}@2≈Xi+[(si-s`i-1)×Hi]过半进位÷Cti
或者,为了方便后续处理,i∈(s’,s”]时,X*i=Xi+[(si-s`i-1)×Hi÷Cti+C×Δi]取整≈Xi+[(si-s`i-1)×Hi÷Cti]过半进位;
利用Si进行补偿时:i=s’时,X*i=[xi+(Cti)±1×(Si×Hi)@1+C×Δi]@2;
i∈(s’,s”]时,X*i={xi+(Cti)±1×[(Si-s`i-1)×Hi]@1+C×Δi}@2;
或当i=s’时X*i正常近似,i∈(s’,s”)时,X*i=[xi+(Cti)±1×(Si-s`i-1)×Hi]过半进位。
其中,在@1或@2处至少进行一次取整。以下以利用si进行补偿为例。
然后以X*i作为补偿后的数据进行后续处理。
其中,stt、si、C的含义及取值方式同实施例6。
同理,此处也可以对s`i×Hi、si×Hi存储时忽略更高位,判断时忽略更低位的后续位(参照实施例6)。优选的,仅当si×Hi(或si×Hi+C×Δi)与s`i-1×Hi(或s`i-1×Hi+C×Δi)的有效数字的差值不为0时对该原始数据有效数字最低位增加对应的所述有效数字的差值。
在对乘除法进行补偿时si、s`i-1、Δi-1均根据xi进行高位对齐。
为进一步的提升rst的精确度,可令/>
当Hi为变参数时:
例如:在十进制系统中,需要处理算式100.512÷507.49912,s’=1,s”=n,保留前3位,令Hi为各数据的第一位有效数字,对原数据(xi)采取向下取整的近似方式,则该算式按不同的展开方式处理过程如下:
①将100.512÷507.49912展开为100.512×507.499-12
则有:X*1=101
X*2=507+[(-12×0.499÷5+12×0.5÷1-12×1÷1)×5÷(-12)]取整=510[注]
rst=10112×510-12≈3.639×10-9
注:进一步的,指数绝对值相同时,内外Cti的值可以相互抵消。可以根据这种性质
加速补偿过程,如将100.53×507.499-5转变为(100.5×507.499-1)3×507.499-2
②将100.512÷507.49912展开为100.5÷507.499×100.5÷507.499...÷507.499
则有:X*1=101
X*2=507-[(-0.499÷5+0.5÷1-1÷1)×5]取整=510
...
rst=101÷510×101÷510...÷510≈3.639×10-9
注:还可将100.512÷507.49912逆展开为(101÷510)12,接着按照优先级,首先对括
号内运算进行补偿,在此不再赘述(见实施例4)。
值得注意的是,若Hi为定值(如Hi=1),则原式变为(101÷508)12≈3.815×10-9
而原式的结果为R=(100.5÷507.499)12≈3.637×10-9
而正常四舍五入后的结果为rst*=(101÷507)12≈3.906×10-9
由此可见,相比较而言,当参与处理的数据较多时,优选的令Hi为各数据的前几位有效数字。且当Hi为各数据前几位时,设备在处理数据的过程中可通过在数据池中查找,快速得出对应结果。
进一步的,可在数据处理过程中通过迭代的方式将处理过程中每个步骤所用到的数据字长控制在较小的范围内,进一步降低对数据处理字长的需求。如:将100.52÷507.4992展开为100.5÷507.499×100.5÷507.499,通过迭代的方式降低数据字长,优选的,在迭代过程中将新产生的列式中的过渡值的原值与近似值的相对余数也纳入补偿过程中。如令Hx为首两位,处理方式为:
100.5÷507.499×100.5÷507.499 (7-1)
X*1=101
X*2=507-[(0.5÷10-0.499÷50-1÷10)×50]取整=510,
则(7-1)转换为
101÷510×100.5÷507.499≈0.198039216×100.5÷507.499 (7-2)
在(7-2)中,x1=0.1980392即所述过渡值,也是新列式(7-2)中的第一项,x2=100.5,x3=507.499
则X*1=0.198
X*2=100+[(0.5÷10-0.499÷50+0.0392÷19+0.5÷10)×10-(1÷10-3÷50+0÷19)×10]取整=101
则(7-2)转换为:0.198×101÷507.499=19.998÷507.499 (7-3)
同理,此时X*1=19.9
X*2=507-[(0.5÷10-0.499÷50+0.039216÷19+0.5÷10+0.98÷19-0.499÷50)×50-(1÷10-3÷50+0÷19+1÷10+0÷19)×50]取整=507-[-0.32]取整=507
则rst=19.9÷507≈0.03925。
其中(7-1)为初始列式,(7-2)与(7-3)为中间过渡式。
进一步的,其他进制系统中,同样可以通过调整C值来实现补偿。
进一步的,本实施例及本申请的其他实施例中,当|Cti|=1时,乘除Cti后的结果一致,因此这两种方式均应被认为属于本发明的保护范围之内。
值得注意的是,可变Hi、迭代补偿的技术方案既可与逐步补偿方案结合,也可与实施例1-5及后续实施例的其他补偿方案结合,来提高补偿精确度或控制处理数据的字长。
实施例8:
进一步的,在对乘除补偿时优选的按照各数据有效数字大小的顺序来确定依据哪个数据(xx)进行补偿,优选的依据大小顺序的序数相对靠近中间的数据进行补偿,以此提升补偿效果(比较大小时不考虑数量级,比如123.45×5.67中各数字若均具有一位有效数字,则相比较而言5.67的有效数字为5,因此5.67的有效数字更大。本申请其他地方比较有效数字大小且无特殊说明,则默认不考虑其数量级而是从高位向低位逐位比较)。优选的,先对各数据按有效数字大小进行排序。排序后,优选的,若根据一个数据进行补偿,如n为偶数,则x=n÷2,如n为奇数,x=(n+1)÷2。若需要保留2位,则原数据前两位为有效数字:
如:323.41×23.23÷318.71×89.2
1、排序:①按有效数字从小到大排序:23.23÷318.71×323.41×89.2 (式8-1)
②按有效数字从大到小排序:89.2×323.41÷318.71×23.23 (式8-2)
2、近似(保留2位,可按向上取整、向下取整等方式进行,为方便描述,此处仅以过半进位取整方式进行,其他取整方式见实施例1≈7):
式8-1:rst*=23÷320×320×89
式8-2:rst*=89×320÷320×23
3、进行补偿(可对多个数据补偿,也可进行逐步满足补偿,此处仅以对单个数据补偿为例,优选的,依据其中序数较靠近中间的数据进行补偿,比如令x=2,则t=9[注]):
rst(式8-1)=rst(式8-2)=23÷320×320×89+9×23÷320×320×89÷320≈2105。
同样,此处也可以结合逐步补偿、对多个数据补偿、调整Hi等补偿方式进行补偿。
注:补偿时,此处所有a*i均依据原数据高位对齐,如式8-2对齐后a*1=2,a*2=
3.41,a*3=-1.29,a*4=2.3,即t=2+3.41-(-1.29)+2.3=9。其中,对齐的具体步骤可参考
实施例1、4。
值得注意的是,对于较复杂的列式也可以通过这种方式提高补偿精度,比如:
对(100.5÷507.499)13按照优先级展开后排序(优选的,将其彻底展开):
R=100.5×100.5...×100.5÷507.499...÷507.499
逐步补偿后,原式变为rst=101×100...×101÷508÷507...÷508≈7.159×10-10。
实施例9:
进一步的,对xx一步实现取整、补偿的方式也应当被认为是本发明的一种实现方式:
如,对原式向下取整:
假设Hi恒为1:[注]
当Hi不固定为1时:
[注]xx可以是多项。进一步的,还可据此通过过度补偿实现数据的快速处理。
其中,当x=n时:
。
进一步的,向下(向上)取整、过半进位、高精度近似等方式也可一步实现取整、补偿。
实施例10:
对于加减过程,除了如实施例3一样对结果进行补偿、对单一数据进行补偿,还可以对多个数据进行补偿(包括逐步补偿)。
如:逐步补偿X*i=Xi+Cti×{[si+C×Δi]取整-[si-1+C×Δi-1]取整},(i∈[s′,s″],当i=s’时[si-1+C×Δi-1]取整=0);或逐步补偿时对i∈[1,n-1]时X*i=Xi+{[si+C×Δi]取整-[si-1+C×Δi-1]取整}对i=n时X*n=Xn+{sn-[sn-1+C×Δn-1]取整},其中或接着,利用X*i代替Xi从而得到rst,其中Δi在数值上等同于原数据向上取整与向下取整结果不同时得到的数据的差值,在对加减法进行补偿时需要对齐数量级:
如:92.39+83.38-(5.58+87.19+71.2) (式9-1)
假设Xi是通过过半进位方式得到的近似值,对齐数量级后,所有数据保留至个位:
则式9-1转变为92+83-(6+87+71)=11 (式9-2)
则t=0.8
①如式9-2对第一、第五两个数据进行补偿:rst=(92+0.4)+83-(6+87+71-0.4)=11.8。
②如式9-2逐步补偿:rst=92+84-(6+87+71+0.2)=11.8。
此外,由于加减法并不会产生相对误差累积的情况,因此对加减法可直接处理。
实施例11:
进一步的,在其他数据处理过程中(包括加减乘除单一种类或加减乘除混合运算),均可按照实施例1~10所述的补偿方式对结果或通过其中某个(或某几个)数值进行补偿。
实施例12:
一种具有补偿功能的补偿模块,其补偿功能的实现方式如实施例1~11所述,与目前大多数数据处理中采用的补偿方式不同的是,本补偿方式是一种“事前”补偿。
所谓“事前”指不需要在做出有较大误差的结果并根据误差大小对系统参数进行调整,来实现补偿,而是在进行初步数据处理(即得出rst*)之后,或在得出初步处理结果(rst*)之前完成补偿。
实施例13:
进一步的,一种具有补偿功能的数据处理系统,包括如实施例12所述的补偿模块。
进一步的,除补偿模块外,这种具有补偿功能的数据处理系统还可包括输入模块、智能学习模块、近似模块、运算模块;由输入模块输入数据,接着由智能学习模块判断如何(或是否需要)补偿,接着由近似模块、运算模块、补偿模块根据需要进行近似、补偿。
进一步的,该系统还可包括存储模块、输出模块。补偿模块以外,其他模块的工作方式:
输入模块:输入需要处理的数据。
智能学习模块:①判断是否需要进行补偿,根据|t|(或|T|)和/或n判断是否需要对结果进行补偿;②根据结果与真实值之间的大小关系,以及t的正负性,调整补偿过程中的参数,如在给定次数的运算中有cal**次结果的相对或绝对误差大于(或大于等于)某个临界值,则当cal**大于等于tr**时,对th、stt、Hx等补偿中需要用到的参数的值进行适当调整。其中tr**为根据工作需要确定的阈值。
近似模块:对原始数据或结果进行近似。
运算模块:对近似或补偿后的数据进行处理,获得结果。或直接调取存储模块存储的对应的全部或部分运算的运算结果,优选的,在Hi作为变参数时,直接从存储模块调取相应数据的处理结果。
输出模块:输出方式包括:①按照要求直接输出。②输出至智能学习模块。
存储模块:预存储一些运算的结果。
优选的,存储模块存储变Hi参数与rst*、t等参数进行运算后可能出现的结果。其中,由于Hi可以通过较短字长的数据来实现误差补偿(即z2通常相较z1更小),因此,在对rst*、t等参数进行一定程度的近似后很容易穷尽所有的结果,并将这些结果存入存储模块。优选的,根据处理系统的不同,所述结果包括八、十、十六进制中6位以内数据的乘除结果,二进制中20位以内数据的乘除结果中的至少一类结果。
实施例14:
进一步的,在实施例13的基础上,首先得出rst*后,再进行补偿并得出rst。
如:输入模块:输入R=123.45÷234.56×345.67×456.78÷567.89×678.91,保留3位;
近似模块:对原数据进行近似(以向下取整为例):rst*=123÷234×345×456÷567×678≈98882.59。
运算模块:对近似后的数据进行计算,获取结果。或直接从存储模块调取运算结果。
补偿模块:根据近似方式,补偿方式如下:
rst*≈98882.59,t=0.44,rst=98882.59+0.44×98882.59÷234≈99068.52。
此外,可先算出tep=rst*÷Xx,则rst=(Xx+t×Hx)×tep。
实施例15:
进一步的,可在得出rst*之前对数据进行补偿,并得出rst。
如:输入模块:输入
R=512.34×523.45×534.56×545.67×112.34×123.45÷134.56÷145.67÷156.78,保留3位;
近似模块:采取过半进位(其他方式见实施例1~10),所有数据近似之后得到
rst*=512×523×535×546×112×123÷135÷146÷157,t=1.8,令x=1,
则原式变为:rst=(512+t)×523×535×546×112×123÷135÷146÷157≈349445193.23。
实施例16:
进一步的,还可在得出rst*之前直接依据多个数据进行补偿,并得出rst。
例如:R=10.6375×11.825×15.2675,保留2位。
采取高精度近似,原式近似为rst*=11×11×16,则t=-0.23,进行补偿,对第1、第3两个数据进行补偿,原式进一步近似为rst=10.9×11×15.87≈1902.81。
进一步的,过半进位、向上取整、向下取整也可以通过多个数据来实现补偿。
进一步的,若直接进行补偿并得出rst。还可以通过过度补偿来实现快速处理。
值得注意的是,以上实施例仅为部分实施例,本领域的技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的保护范围。
除此之外,以上任何过程中,对于所需处理的数据均可进行进一步近似。比如,对于1/3,2^(1/2)等无法用整数、有限字长的浮点数进行表示的数据或为了方便后续处理,可在使用过程中,对这些数据进行进一步近似。
此外,为便于描述,本申请中若非特殊说明,则“*”并不代表进行乘法运算。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序模块等呈现方式与硬件结合形成一个设备。因此,本发明可采用完全硬件实施、完全软件实施、或结合软件、硬件等方式的实施。此外,本发明可采用在一个或多个其中包含有计算机可用代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上存放的计算机文档产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机文档或程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框和/或多个方框中指定的功能。这些计算机文档文件也可装载到计算机和/或其他数据处理设备上。
除此之外,本系统适用于多进制系统的处理过程,来提高数据处理精度或数据处理效率。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (25)
1.一种补偿算法,该补偿算法适用于乘、除等数据运算过程,所述乘除等数据运算过程包括包含开根、多次方或阶乘等可化作加减乘除的运算,其特征在于:所述补偿算法是根据参与运算的数据在近似前后的余数或参与运算的数据与补偿后的数据的余数中的至少一种余数来确定补偿值,所述余数为原始值、近似值中的至少一种。
2.如权利要求1所述的补偿算法,其特征在于:
所述补偿算法的补偿步骤依次包括:
步骤1.获取需处理的数据、对需处理的原始数据进行近似;
步骤2.获取所述余数;
步骤3.取得或逐步取得所述余数的和或差或所述余数与至少一种补偿参数的乘积的和,并将其作为补偿中间值;
步骤4.依据补偿中间值进行补偿;
注:所述补偿操作可贯穿数据处理的每个步骤,并利用中间式作为新式进行补偿。
3.如权利要求1所述的补偿算法,其特征在于:假设在不进行补偿的情况下根据近似后的数据得到初步结果rst*[注];补偿后得到补偿结果rst;
补偿时,可在取得初步结果rst*后对rst*进行补偿得到补偿结果rst;或在得到rst*前,对原始数据xi或近似后得到的数据Xi进行补偿得到X*i,接着用X*i替代xi或Xi得到rst;
原始数据在近似前后的相对余数为a*i,a*i=xi-Xi;
注:本申请此处及后续部分对各参数的定义方式仅为方便描述,不应理解为对本申请保护范围的限制。
4.如权利要求3所述的补偿算法,其特征在于:
假设数据处理过程中任一连续乘除运算可归纳为:
Cti为记号参数,用于标记运算的类型;定义补偿参数为Cti或其中Hi为补偿控制参数;
其中,取得补偿中间值si、Si、t、T、s`i的算法分别是:①
[注]其中,stt为参照补偿起始序数;
②得到X*i与Xi的相对余数与至少一项补偿参数的乘积,并逐个求得所述乘积的和,从而得到s`i;
③t=sn,T=Sn;
注,xx、Xx分别代表其中一项或多项需要据其进行补偿的数据的原始值、近似值。
5.如权利要求4所述的补偿算法,其特征在于:
其中,所述补偿控制参数为1或xi的前z2位有效数字;
补偿的具体步骤包括:
步骤1.获取需处理的数据、对需处理的原始数据进行近似;
步骤2.1.获取全部或除需要据其进行补偿的数据以外的所述余数;
步骤3.1.获得所述余数与至少一项补偿参数的乘积,接着,获得所述乘积或余数的和,所获得的结果标记为t或T;或逐步获得所述余数或乘积的和,标记所述结果为si、Si或s`i;
步骤4.1.依据步骤3.1中得到的t、T、si、Si、s`i中至少一项补偿中间值进行补偿。
6.如权利要求5所述的补偿算法,其特征在于:对于乘除或加减乘除混合数据处理过程,根据补偿中间值对得出的初步结果或原始数据进行补偿,得到最终结果;近似与补偿可分开也可合并进行,若近似与补偿分开进行,则先对原数据进行近似,然后求出原始值与近似值之间的相对余数,从而确定补偿值;
对如权利要求4所述的乘除过程补偿的一般要求为:根据原数据进行高位对齐,直至完成补偿、确定最终结果时确定其数量级;
其中z2的取值范围为1~6或2~20;参照补偿起始序数取值为1。
7.如权利要求4~6任一项所述的补偿算法,其特征在于:对于其中如权利要求4所述的乘除过程,在近似后的数据的基础上进行补偿,根据不同的近似方式,补偿方式包括:
方式一、补偿结果为:rst=rst*+t×rst*×Hx÷xx或rst=rst*+t×rst*×Hx÷Xx;
方式二、Hi恒为1时:rst=rst*+t×rst*÷xx或rst=rst*+t×rst*÷Xx;
方式三、在rst*对应位置上叠加t的倍数:rst=rst*+bs×t,bs取值范围为0.1~9;
方式四、Hx不恒为1时,rst=rst*×(1+t)或rst=rst*×(1+T)。
8.如权利要求7所述的补偿算法,其特征在于:
方式一、方式二中,tep=rst*÷Xx,则rst=(Xx+t×Hx)×tep;
或者,Hi恒为1时,有rst=(Xx+t)×tep;
方式四中,1+t或1+T中需考虑t、T的数量级,具体方式为:当保留z1位有效数字、Hx为各数字前z2位时,t或T的小数点移动的位数与z1-z2相关,t或T的小数点自其有效数字最低位前向前移动z1-z2位。
9.如权利要求4所述的补偿算法,其特征在于:对于其中如权利要求4所述的乘除过程,若在获得rst*前进行补偿,则可对原数据或初步近似后的数据进行如下补偿操作:
将Xx或xx转化为X*x=Xx+(Ctx)±1×t×Hx,或X*x=xx+(Cts)±1×T×Hx;
或者,Hi恒为1:X*x=Xx+(Ctx)±1×t,或X*x=xx+(Ctx)±1×T;接着,用X*x替代Xx,得到rst。
10.如权利要求4所述的补偿算法,其特征在于:对于其中如权利要求4所述的乘除过程,可对多个数据进行补偿,比如:对x=y_1、y_2......y_k项进行补偿:
其中,在得出rst*之后补偿:
或
或者,在得出rst*之前进行补偿:
其中X*y_i=xy_i+(Cty_i)±1×Ty_i×Hy_i或X*y_i=Xy_i+(Cty_i)±1×ty_i×Hy_i,(i∈[1,k]),其中/>其中ty_i、Ty_i即第y_i项补偿中间值;
或者,Hi恒为1时:或或X*y_i=xy_i+(Cty_i)±1×Ty_i≈Xy_i+(Cty_i)±1×ty_i,(i∈[1,k])。
11.如权利要求10所述的补偿算法,其特征在于:对于其中如权利要求4所述的乘除运算,其中ti或Ti的绝对值大于|0.5Δi|,进行“过度补偿”。
12.如权利要求4所述的补偿算法,其特征在于:对于其中如权利要求4所述的乘除运算,可以根据si、Si、s`i中的至少一项来实现逐步补偿。
13.如权利要求12所述的补偿算法,其特征在于:补偿过程中,对si、Si等数据进行近似,其中:
利用si补偿:假设需要对其中第s’项至第s”项进行逐步补偿;
当Hi恒为1时:i=s’时,X*i=Xi+[(Cti)±1×(si+C×Δi)@1]@2;
i∈(s’,s”]时,X*i=Xi+{(Cti)±1×[(si+C×Δi)@1-(si-1+C×Δi-1)@1]}@2;
当Hi为可变参数时:
i=s’时,X*i=Xi+[(Cti)±1×(si×Hi)@1+C×Δi]@2,或正常近似得到X*i;
i∈(s’,s”]时,X*i=Xi+{(Cti)±1×[(si-s`i-1)×Hi]@1+C×Δi}@2;
或i∈(s’,s”]时,X*i=Xi+[(Cti)±1×(si-s`i-1)×Hi]过半进位;
或利用Si补偿:假设需要对其中第s’项至第s”项进行逐步补偿;
当Hi恒为1时:i=s’时,X*i={xi+[(Cti)±1×Si]@1+C×Δi}@2;
i∈(s’,s”]时,X*i={xi+[(Cti)±1×Si]@1+C×Δi}@2-{[(Cti)±1×Si]@1+C×Δi}@2;
当Hi为可变参数时:i=s’时,X*i=[xi+(Cti)±1×(Si×Hi)@1+C×Δi]@2;
i∈(s’,s”]时,X*i={xi+(Cti)±1×[(Si-s`i-1)×Hi]@1+C×Δi}@2;
或当i=s’时X*i正常近似,i∈(s’,s”]时,X*i=[xi+(Cti)±1×(Si-s`i-1)×Hi]过半进位;
其中,在@1、@2中至少一处进行取整操作;
其中Δi为取整时所要保留的最低位的单位值。
14.如权利要求13所述的补偿算法,其特征在于:所述stt为1、2或s’;
在Ω进制中C等于±0.05×Ω或0;
或可根据si、[si+C×Δi]取整判断如何进行补偿,如在二进制中通过指针移动等常用电学手段实现C×Δi。
15.如权利要求13所述的补偿算法,其特征在于:对于其中如权利要求4所述的乘除运算,通过以下方式提高补偿结果的准确度或降低数据处理字长:
当Hi为可变参数[注]或恒为1时:X*s”=Xs”+(Cts”)±1×Hs”×{ss”-[s`s”-1]取整};
在数据处理过程的每个步骤中,通过迭代的方式降低每个步骤中产生的过渡数据的字长,并将过渡数据近似前后的相对余数纳入补偿过程中;
注:Hi为可变参数时,Hi为各数据的前z2位有效数字,在不同进制的系统中z2取值为1~6或2~20。
16.如权利要求13所述的补偿算法,其特征在于:所述si、Si或s`i等补偿中间值或所述中间值与C×Δi的和值在存储、补偿过程中截去其高位数字,补偿过程出现向所保留的最高位相比更高位的进位或借位时忽略出现的进位或借位;在对原始数据补偿时当所述补偿中间值或补偿中间值与C×Δi的和的有效数字变化时,对该原始数据或近似数据的有效数字最低位对应增加或减少一个所述变化的变化值。
17.如权利要求1所述的补偿算法,其特征在于:乘除过程中根据原始数据的有效数字大小顺序确定依据哪个数据进行补偿,补偿时针对其中大小序数接近中间的数据进行补偿。
18.如权利要求4所述的补偿算法,其特征在于:运算中任一连续加减过程可归纳为: 在加减过程中始终对齐小数点;
对于加减法的补偿方式,Hi恒为1:对结果进行补偿
或对其中某个或多个数据进行补偿:
或逐步补偿X*i=Xi+Cti×{{Si+C×Δi]取整-[Si-1+C×Δi-1]取整}(i∈[s′,s″],当i=s’时[Si-1+C×Δi-1]取整=0);
或逐步补偿时对i∈[1,n-1]时X*i=Xi+{[Si+C×Δi]取整-[Si-1+C×Δi-1]取整},对i=n时X*n=Xn+{Sn-[Sn-1+C×Δn-1]取整},其中接着,利用X*i代替Xi从而得到rst,其中取整方式、C值的确定与权利要求14中乘除过程中的取整方式、C值的确定方式相同;Δi为取整时所要保留的最低位的单位值。
19.如权利要求3所述的补偿算法,其特征在于:Xi为向下取整得到的近似数据。
20.如权利要求9~16任一项所述的补偿算法,其特征在于:在对xx或Xx进行补偿时,若|Cti|≠1,则Cti上的指数取-1,其他情况下Cti的指数取1或-1。
21.如权利要求3所述的补偿算法,其特征在于:在混合运算中,按照优先级及权利要求7~19的方式进行补偿,由高级别至低级别直至得出结果;或对其中乘除过程按照权利要求7~17所述的方式进行补偿,对于加减运算进行正常处理。
22.一种基于补偿算法的补偿模块,所述补偿模块适用于乘、除及加减乘除混合运算,所述加减乘除包括开根、多次方、阶乘等可化作加减乘除的运算,其特征在于:所述补偿算法对运算进行补偿的过程如权利要求1~21任一项所述。
23.一种智能学习模块,其特征在于:以权利要求4所述的补偿中间值、参与运算的数据的个数中至少一项数值作为判断依据,来判断是否需要进行补偿,具体判断过程为:
当|t|小于或小于等于th×Δx时可直接输出结果,其中在乘除过程中xi进行高位对齐,th为根据工作需要确定的参数,Δx为取整时所要保留的最低位的单位值;或者,根据数据个数判断;或者,先根据个数判断出可能需要进行补偿,接着利用补偿中间值的绝对值大小进一步判断以决定是否需要进行补偿;其中,补偿中间值的判断标准优于个数判断标准。
24.一种具有补偿功能的数据处理系统,其特征在于:该系统包含如权利要求22所述的补偿模块。
25.如权利要求24所述的数据处理系统,其特征在于:所述数据处理系统还包括如权利要求23所述的智能学习模块,以及输入模块、近似模块和计算模块;由输入模块输入需处理的数据,接着由智能学习模块判断是否需要进行补偿,接着由近似模块、计算模块、补偿模块根据需要进行近似、补偿;以上各模块的操作既可与补偿操作分开进行,也可合并进行;
还包括输出模块:输出模块直接输出结果;或将结果返回智能学习模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211256465.4A CN117851716A (zh) | 2022-10-04 | 2022-10-04 | 一种补偿算法及基于补偿算法的补偿模块及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211256465.4A CN117851716A (zh) | 2022-10-04 | 2022-10-04 | 一种补偿算法及基于补偿算法的补偿模块及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117851716A true CN117851716A (zh) | 2024-04-09 |
Family
ID=90540572
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211256465.4A Pending CN117851716A (zh) | 2022-10-04 | 2022-10-04 | 一种补偿算法及基于补偿算法的补偿模块及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117851716A (zh) |
-
2022
- 2022-10-04 CN CN202211256465.4A patent/CN117851716A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20100131580A1 (en) | Apparatus and methods for hardware-efficient unbiased rounding | |
CN107305485B (zh) | 一种用于执行多个浮点数相加的装置及方法 | |
CN115756386A (zh) | 基于格密码的高效轻量级ntt乘法器电路 | |
JP4767266B2 (ja) | 演算ユニット、エラー訂正復号回路及び誤り位置多項式の演算方法 | |
US6182100B1 (en) | Method and system for performing a logarithmic estimation within a data processing system | |
CN117406957B (zh) | 一种模乘方法、模乘组件和半定制电路 | |
JP3551113B2 (ja) | 除算器 | |
KR100365724B1 (ko) | 이진 로그맵 알고리즘을 이용한 터보 복호기 및 그 구현방법 | |
US20040230634A1 (en) | Method and system for determining quotient digits for decimal division in a superscaler processor | |
EP2280340B1 (en) | Processor, control method of processor, and computer readable storage medium storing processing program | |
CN113837365A (zh) | 实现sigmoid函数逼近的模型、FPGA电路及工作方法 | |
US5339267A (en) | Preprocessor of division device employing high radix division system | |
CN117851716A (zh) | 一种补偿算法及基于补偿算法的补偿模块及系统 | |
CN107015783B (zh) | 一种浮点角度压缩实现方法及装置 | |
TWI784406B (zh) | 採用迭代計算的模數運算電路 | |
CN115270155A (zh) | 一种获取大数拓展最大公约数的方法及硬件架构 | |
CN114282469A (zh) | 一种Camellia算法P函数的硬件电路及优化方法 | |
CN110275693B (zh) | 用于随机计算的多加数加法电路 | |
CN115085742B (zh) | 解码方法、装置、电子设备和存储介质 | |
US11604854B2 (en) | Apparatus and method for performing linear interpolation | |
US20060277246A1 (en) | Multiplication circuitry | |
JP2009089343A (ja) | 角度計算方法及び関連回路 | |
CN214409954U (zh) | 一种ssd主控芯片中乘法运算电路 | |
US20210365239A1 (en) | Logarithm calculation method and logarithm calculation circuit | |
KR20170133787A (ko) | 3으로 나누는 이진 연산 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |