Ask Your Question

Revision history [back]

why this programm is not compilated

def half_integral_weight_hecke_operator_on_basis(B,chi,k,p): Tp2B = [half_integral_weight_hecke_operator_on_qexp(f,chi,k,p) for f in B] precp = Tp2B[0].prec() Tp2B_mat = matrix([Tp2f.padded_list() for Tp2f in Tp2B]) B_mat = matrix([f.padded_list()[:precp] for f in B]) piv = B_mat.pivots()[-1] assert precp > piv Tp_mat = B_mat.solve_left(Tp2B_mat) assert all([sum([Tp_mat[j][i]*B[i] for i in range(len(B))]) == Tp2B[j] for j in range(len(B))]) return Tp_mat

def half_integral_weight_hecke_operator_on_qexp(f,chi,k,p): prec = f.prec() R = f.parent() q = R.0 precp = prec // (p^2) Tp2f = O(q^(precp)) for n in range(1,precp): bn = f[p^2n] + chi(p)(-1)^(((k-1)(p-1))//4)kronecker_symbol(n,p)p^((k-3)//2)f[n] if n%(p^2) == 0: bn += chi(p^2)p^(k-2)f[n//(p^2)] Tp2f += bn*q^n return Tp2f

N = 64 chi = DirichletGroup(N).one() k = 5 prec = 1000

B = half_integral_weight_modform_basis(chi,k,prec) B_mat = matrix([f.padded_list()[:prec] for f in B]) piv = B_mat.pivots()[-1]

Tps = [half_integral_weight_hecke_operator_on_basis(B,chi,k,p) for p in prime_range(sqrt(prec//piv))] print prime_range(sqrt(prec//piv)) print Tps

ZZq = B[0].parent() q = ZZq.0 eta = sage.modular.etaproducts.qexp_eta(ZZq,prec) etaf = qeta(q^4)^4eta(q^8) + O(q^prec) B_mat = matrix([f.padded_list()[:prec] for f in B]) B_mat.solve_left(matrix(etaf.padded_list()))

for p in prime_range(sqrt(prec)): print p, half_integral_weight_hecke_operator_on_qexp(etaf,chi,k,p)/etaf

Np = N//2 m = (Np)prod([1-1/p^2 for p in Np.prime_divisors()]) R = (k-1)m/12 - (m-1)/(Np) floor(R)

why this programm is not compilated

def half_integral_weight_hecke_operator_on_basis(B,chi,k,p): Tp2B = [half_integral_weight_hecke_operator_on_qexp(f,chi,k,p) for f in B] precp = Tp2B[0].prec() Tp2B_mat = matrix([Tp2f.padded_list() for Tp2f in Tp2B]) B_mat = matrix([f.padded_list()[:precp] for f in B]) piv = B_mat.pivots()[-1] assert precp > piv Tp_mat = B_mat.solve_left(Tp2B_mat) assert all([sum([Tp_mat[j][i]*B[i] for i in range(len(B))]) == Tp2B[j] for j in range(len(B))]) return Tp_mat

def half_integral_weight_hecke_operator_on_qexp(f,chi,k,p):
  prec = f.prec()
  R = f.parent()
  q = R.0
  precp = prec // (p^2)
  Tp2f = O(q^(precp))
  for n in range(1,precp):
    bn = f[p^2n] f[p^2*n] +
chi(p)(-1)^(((k-1)(p-1))//4)kronecker_symbol(n,p)p^((k-3)//2)f[n]
chi(p)*(-1)^(((k-1)*(p-1))//4)*kronecker_symbol(n,p)*p^((k-3)//2)*f[n]
    if n%(p^2) == 0:
      bn += chi(p^2)p^(k-2)f[n//(p^2)]
chi(p^2)*p^(k-2)*f[n//(p^2)]
    Tp2f += bn*q^n
  return Tp2f

Tp2f N = 64 chi = DirichletGroup(N).one() k = 5 prec = 1000

1000 B = half_integral_weight_modform_basis(chi,k,prec) B_mat = matrix([f.padded_list()[:prec] for f in B]) piv = B_mat.pivots()[-1]

B_mat.pivots()[-1] Tps = [half_integral_weight_hecke_operator_on_basis(B,chi,k,p) for p in prime_range(sqrt(prec//piv))] print prime_range(sqrt(prec//piv)) print Tps

Tps ZZq = B[0].parent() q = ZZq.0 eta = sage.modular.etaproducts.qexp_eta(ZZq,prec) etaf = qeta(q^4)^4eta(q^8) q*eta(q^4)^4*eta(q^8) + O(q^prec) B_mat = matrix([f.padded_list()[:prec] for f in B]) B_mat.solve_left(matrix(etaf.padded_list()))

B_mat.solve_left(matrix(etaf.padded_list())) for p in prime_range(sqrt(prec)): print p, half_integral_weight_hecke_operator_on_qexp(etaf,chi,k,p)/etaf

half_integral_weight_hecke_operator_on_qexp(etaf,chi,k,p)/etaf Np = N//2 m = (Np)prod([1-1/p^2 (Np)*prod([1-1/p^2 for p in Np.prime_divisors()]) R = (k-1)m/12 (k-1)*m/12 - (m-1)/(Np) floor(R)

floor(R)

why this programm is not compilated

Edited as source code for clarity.

def half_integral_weight_hecke_operator_on_basis(B,chi,k,p):
      Tp2B = [half_integral_weight_hecke_operator_on_qexp(f,chi,k,p) for f in B]
      precp = Tp2B[0].prec()
      Tp2B_mat = matrix([Tp2f.padded_list() for Tp2f in Tp2B])
      B_mat = matrix([f.padded_list()[:precp] for f in B])
      piv = B_mat.pivots()[-1]
      assert precp > piv
      Tp_mat = B_mat.solve_left(Tp2B_mat)
      assert all([sum([Tp_mat[j][i]*B[i] for i in range(len(B))]) ==
    Tp2B[j] for j in range(len(B))])
      return Tp_mat

Tp_mat

def half_integral_weight_hecke_operator_on_qexp(f,chi,k,p):
  prec = f.prec()
  R = f.parent()
  q = R.0
  precp = prec // (p^2)
  Tp2f = O(q^(precp))
  for n in range(1,precp):
    bn = f[p^2*n] +
chi(p)*(-1)^(((k-1)*(p-1))//4)*kronecker_symbol(n,p)*p^((k-3)//2)*f[n]
    if n%(p^2) == 0:
      bn += chi(p^2)*p^(k-2)*f[n//(p^2)]
    Tp2f += bn*q^n
  return Tp2f

N = 64
chi = DirichletGroup(N).one()
k = 5
prec = 1000

B = half_integral_weight_modform_basis(chi,k,prec)
B_mat = matrix([f.padded_list()[:prec] for f in B])
piv = B_mat.pivots()[-1]

Tps = [half_integral_weight_hecke_operator_on_basis(B,chi,k,p) for p
in prime_range(sqrt(prec//piv))]
print prime_range(sqrt(prec//piv))
print Tps

ZZq = B[0].parent()
q = ZZq.0
eta = sage.modular.etaproducts.qexp_eta(ZZq,prec)
etaf = q*eta(q^4)^4*eta(q^8) + O(q^prec)
B_mat = matrix([f.padded_list()[:prec] for f in B])
B_mat.solve_left(matrix(etaf.padded_list()))

for p in prime_range(sqrt(prec)):
  print p, half_integral_weight_hecke_operator_on_qexp(etaf,chi,k,p)/etaf

Np = N//2
m = (Np)*prod([1-1/p^2 for p in Np.prime_divisors()])
R = (k-1)*m/12 - (m-1)/(Np)
floor(R)

why this programm is not compilated

Edited as source code for clarity.

def half_integral_weight_hecke_operator_on_basis(B,chi,k,p):
      Tp2B = [half_integral_weight_hecke_operator_on_qexp(f,chi,k,p) for f in B]
      precp = Tp2B[0].prec()
      Tp2B_mat = matrix([Tp2f.padded_list() for Tp2f in Tp2B])
      B_mat = matrix([f.padded_list()[:precp] for f in B])
      piv = B_mat.pivots()[-1]
      assert precp > piv
      Tp_mat = B_mat.solve_left(Tp2B_mat)
      assert all([sum([Tp_mat[j][i]*B[i] for i in range(len(B))]) ==
    Tp2B[j] for j in range(len(B))])
      return Tp_mat

def half_integral_weight_hecke_operator_on_qexp(f,chi,k,p):
  prec = f.prec()
  R = f.parent()
  q = R.0
  precp = prec // (p^2)
  Tp2f = O(q^(precp))
  for n in range(1,precp):
    bn = f[p^2*n] +
+ chi(p)*(-1)^(((k-1)*(p-1))//4)*kronecker_symbol(n,p)*p^((k-3)//2)*f[n]
    if n%(p^2) == 0:
      bn += chi(p^2)*p^(k-2)*f[n//(p^2)]
    Tp2f += bn*q^n
  return Tp2f

N = 64
chi = DirichletGroup(N).one()
k = 5
prec = 1000

B = half_integral_weight_modform_basis(chi,k,prec)
B_mat = matrix([f.padded_list()[:prec] for f in B])
piv = B_mat.pivots()[-1]

Tps = [half_integral_weight_hecke_operator_on_basis(B,chi,k,p) for p
in prime_range(sqrt(prec//piv))]
print prime_range(sqrt(prec//piv))
print Tps

ZZq = B[0].parent()
q = ZZq.0
eta = sage.modular.etaproducts.qexp_eta(ZZq,prec)
etaf = q*eta(q^4)^4*eta(q^8) + O(q^prec)
B_mat = matrix([f.padded_list()[:prec] for f in B])
B_mat.solve_left(matrix(etaf.padded_list()))

for p in prime_range(sqrt(prec)):
  print p, half_integral_weight_hecke_operator_on_qexp(etaf,chi,k,p)/etaf

Np = N//2
m = (Np)*prod([1-1/p^2 for p in Np.prime_divisors()])
R = (k-1)*m/12 - (m-1)/(Np)
floor(R)
click to hide/show revision 5
retagged

why this programm is not compilated

Edited as source code for clarity.

def half_integral_weight_hecke_operator_on_basis(B,chi,k,p):
      Tp2B = [half_integral_weight_hecke_operator_on_qexp(f,chi,k,p) for f in B]
      precp = Tp2B[0].prec()
      Tp2B_mat = matrix([Tp2f.padded_list() for Tp2f in Tp2B])
      B_mat = matrix([f.padded_list()[:precp] for f in B])
      piv = B_mat.pivots()[-1]
      assert precp > piv
      Tp_mat = B_mat.solve_left(Tp2B_mat)
      assert all([sum([Tp_mat[j][i]*B[i] for i in range(len(B))]) ==
    Tp2B[j] for j in range(len(B))])
      return Tp_mat

def half_integral_weight_hecke_operator_on_qexp(f,chi,k,p):
  prec = f.prec()
  R = f.parent()
  q = R.0
  precp = prec // (p^2)
  Tp2f = O(q^(precp))
  for n in range(1,precp):
    bn = f[p^2*n] + chi(p)*(-1)^(((k-1)*(p-1))//4)*kronecker_symbol(n,p)*p^((k-3)//2)*f[n]
    if n%(p^2) == 0:
      bn += chi(p^2)*p^(k-2)*f[n//(p^2)]
    Tp2f += bn*q^n
  return Tp2f

N = 64
chi = DirichletGroup(N).one()
k = 5
prec = 1000

B = half_integral_weight_modform_basis(chi,k,prec)
B_mat = matrix([f.padded_list()[:prec] for f in B])
piv = B_mat.pivots()[-1]

Tps = [half_integral_weight_hecke_operator_on_basis(B,chi,k,p) for p
in prime_range(sqrt(prec//piv))]
print prime_range(sqrt(prec//piv))
print Tps

ZZq = B[0].parent()
q = ZZq.0
eta = sage.modular.etaproducts.qexp_eta(ZZq,prec)
etaf = q*eta(q^4)^4*eta(q^8) + O(q^prec)
B_mat = matrix([f.padded_list()[:prec] for f in B])
B_mat.solve_left(matrix(etaf.padded_list()))

for p in prime_range(sqrt(prec)):
  print p, half_integral_weight_hecke_operator_on_qexp(etaf,chi,k,p)/etaf

Np = N//2
m = (Np)*prod([1-1/p^2 for p in Np.prime_divisors()])
R = (k-1)*m/12 - (m-1)/(Np)
floor(R)