基于SCILAB的多精度算法研究与实现
发布时间:2021-09-24 12:22
当前,通用处理器一般支持64位浮点运算,在大规模和长时程数值计算中,由于浮点运算的舍入误差累积效应,可能导致数值结果不可信。因此,有效控制误差,设计高精度、高效可靠的浮点数值算法至关重要。基于SCILAB软件平台,通过使用无误差变换和double-double数据格式,实现了高精度的算法库。对幂指数、Bernstein和Chebyshev基多项式函数估值,在Intel平台和国产飞腾处理器平台上进行了数值实验,实验结果证实了该高性能数值算法库的有效性。该多精度算法库具有独立知识产权,可有效应用于国产自主可控处理器平台,为国家重大科研项目提供技术支持。
【文章来源】:计算机工程与科学. 2020,42(11)北大核心CSCD
【文章页数】:7 页
【部分图文】:
应用double和double-double数据格式的
数值实验使用Bernstein基对多项式 p(t)=( t-0.75 ) 7 ( t-1 ) 进行展开,并计算其在重根t=0.75附近的函数值。在[0.74995,0.75005]中取8 000个均匀点,图2是DC算法和DC_DD算法在p(t)的Bernstein基展开式下计算得到的结果。经统计,DC算法的运行时间time_d=1.460,DC_DD算法的运行时间time_dd=54.76,两者运行时间比为time_dd/time_d=44.73。DC算法的浮点计算量为1.5n2+1.5n+1,DC_DD算法的浮点计算量为33n2+33n+2,后者的运行时间是前者的44.73倍,浮点计算量是前者22倍。效率变慢的原因同样是更多函数加载和调用。
从图3可以看出,同Clenshaw算法相比,Clenshaw_DD算法给出了较为光滑的曲线,有更好的计算结果。经统计,Clenshaw算法所用平均时间time_d=0.876,Clenshaw_DD算法所用平均时间time_dd=30.28。两者运行平均时间之比time_dd/time_d=43.69。Clenshaw算法的浮点计算量为3n+4,Clenshaw_DD算法的浮点计算量为52n+53。采用double-double格式,在计算量提高14倍的情况下,运行时间增加了43.49倍,造成效率低效的原因是更多的函数加载和调用。
本文编号:3407743
【文章来源】:计算机工程与科学. 2020,42(11)北大核心CSCD
【文章页数】:7 页
【部分图文】:
应用double和double-double数据格式的
数值实验使用Bernstein基对多项式 p(t)=( t-0.75 ) 7 ( t-1 ) 进行展开,并计算其在重根t=0.75附近的函数值。在[0.74995,0.75005]中取8 000个均匀点,图2是DC算法和DC_DD算法在p(t)的Bernstein基展开式下计算得到的结果。经统计,DC算法的运行时间time_d=1.460,DC_DD算法的运行时间time_dd=54.76,两者运行时间比为time_dd/time_d=44.73。DC算法的浮点计算量为1.5n2+1.5n+1,DC_DD算法的浮点计算量为33n2+33n+2,后者的运行时间是前者的44.73倍,浮点计算量是前者22倍。效率变慢的原因同样是更多函数加载和调用。
从图3可以看出,同Clenshaw算法相比,Clenshaw_DD算法给出了较为光滑的曲线,有更好的计算结果。经统计,Clenshaw算法所用平均时间time_d=0.876,Clenshaw_DD算法所用平均时间time_dd=30.28。两者运行平均时间之比time_dd/time_d=43.69。Clenshaw算法的浮点计算量为3n+4,Clenshaw_DD算法的浮点计算量为52n+53。采用double-double格式,在计算量提高14倍的情况下,运行时间增加了43.49倍,造成效率低效的原因是更多的函数加载和调用。
本文编号:3407743
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/3407743.html