Euler-Van-Wijngaarden和sumalt变换与二进制分裂的性能

2024-09-27 23:19:02 发布

您现在位置:Python中文网/ 问答频道 /正文

给定一个加速结构,比如二进制分裂,当与之并行使用时,像Euler-Wijngaarden或sumalt这样的加速转换执行得如何?在

https://en.wikipedia.org/wiki/Van_Wijngaarden_transformation

据说sumalt估计比Euler方法快得多:

http://projecteuclid.org/DPubS?service=UI&version=1.0&verb=Display&handle=euclid.em/1046889587
^{19.2节

特别是,我们要尽快计算出一个角的余弦。在

我有一个余弦的二进制拆分结构,可以很好地与GMPY和mpmath库配合使用:

def fcosine_bs(terms,u,v):
    u=-mpz(u)**2
    v=mpz(v)**2

    def bs(a, b):
        if b - a == 1:
            if a == 0:
                Pab = Qab = mpz(1)
            else:
                Pab = u
                Qab = (4*a-2)*a*v
            Tab = Pab
        else:
            m = (a + b) // 2
            Pam, Qam, Tam = bs(a, m)
            Pmb, Qmb, Tmb = bs(m, b)
            Pab = Pam * Pmb
            Qab = Qam * Qmb
            Tab = Qmb * Tam + Pam * Tmb
        return Pab, Qab, Tab
    P, Q, T = bs(0, terms)
    return mpf(T)/Q

我只想知道如果与Euler/Van-Wijngaarden/sumalt变换一起使用,性能会有什么提高,如果真的有好处的话。在

我害怕编写不理想的代码,所以我还要求一些方法的有效python实现(可选)。在


Tags: 方法orgbs二进制结构vantabpam

热门问题