梅斯特与PARI / GP的总和

时间:2017-02-21 10:01:57

标签: pari gp

我将麦斯特的总和定义为:

S(E, N) = {
    my (s = 0.0);
    forprime(p = 2, N,
        my (a = ellap(E, p));
        s += (2-a) / (p+1-a)
    );

    return (s);
}

和定义的多项式A(t)B(t)我希望计算曲线的上述总和:y^2 = x^3 + A(t)x^2 + B(t)x对于某些-700 < t < 700,然后将其打印出来。所以我写道:

for(t = -700, 700, {
    E = ellinit([0, A(t), 0, B(t), 0]);
    if(E == [], , print(t, ": ", S(E, 50000)))
})

有效。现在我想对多项式A(t, t')B(t, t')执行相同的操作,其中两个变量-n < tt' < n用于某个任意整数n,然后仅打印曲线使用S(E, 50000) > 5tt'是独立的)。可以告诉我正确的代码吗? 感谢。

1 个答案:

答案 0 :(得分:2)

如果我正确理解了问题,以下PARI / GP代码应该适合您:

n = 100
forvec(P = [[-n, 0], [0, n]], {
    E = ellinit([0, A(P[1], P[2]), 0, B(P[1], P[2]), 0]);
    if (E == [], next());

    my (v = S(E, 50000));
    if (v > 5, print(P, ": ", v))
})

请注意,变量P表示变量tt'的间隔。我将t上限为0,下限将t'限制为0。