Пример #1
0
def mertens_fixed(prec):
    wp = prec + 20
    m = 2
    s = mpf_euler(wp)
    while 1:
        t = mpf_zeta_int(m, wp)
        if t == fone:
            break
        t = mpf_log(t, wp)
        t = mpf_mul_int(t, moebius(m), wp)
        t = mpf_div(t, from_int(m), wp)
        s = mpf_add(s, t)
        m += 1
    return to_fixed(s, prec)
Пример #2
0
def mertens_fixed(prec):
    wp = prec + 20
    m = 2
    s = mpf_euler(wp)
    while 1:
        t = mpf_zeta_int(m, wp)
        if t == fone:
            break
        t = mpf_log(t, wp)
        t = mpf_mul_int(t, moebius(m), wp)
        t = mpf_div(t, from_int(m), wp)
        s = mpf_add(s, t)
        m += 1
    return to_fixed(s, prec)
Пример #3
0
 def terms():
     orig = ctx.prec
     # zeta ~ 1+eps; need to set precision
     # to get logarithm accurately
     k = 0
     while 1:
         k += 1
         u = libintmath.moebius(k)
         if not u:
             continue
         ctx.prec = wp
         t = u*ctx.ln(ctx.zeta(k*s))/k
         if not t:
             return
         #print ctx.prec, ctx.nstr(t)
         ctx.prec = orig
         yield t
Пример #4
0
 def terms():
     orig = ctx.prec
     # zeta ~ 1+eps; need to set precision
     # to get logarithm accurately
     k = 0
     while 1:
         k += 1
         u = libintmath.moebius(k)
         if not u:
             continue
         ctx.prec = wp
         t = u * ctx.ln(ctx.zeta(k * s)) / k
         if not t:
             return
         #print ctx.prec, ctx.nstr(t)
         ctx.prec = orig
         yield t
Пример #5
0
 def I(n):
     return sum(moebius(d)<<(n//d) for d in xrange(1,n+1) if not n%d)//n
Пример #6
0
 def I(n):
     return sum(
         moebius(d) << (n // d) for d in xrange(1, n + 1) if not n % d) // n