
// Test Newforms(I, M)
// SRD, June 2012

_<x> := PolynomialRing(Rationals());
POLS := [x, x-2, x^2-1, x^4+1];

function coprime(N)
   p := 2; 
   while N mod p eq 0 do 
      p := NextPrime(p); 
   end while; 
   return p;
end function;
 
for N := 1 to 40 do 
   p := coprime(N);
   M := CuspForms(Gamma0(N), 4);
   print "\nN = ", N, "p =", p, "dimension", Dimension(M);
   time
   [#Newforms([<p,f>], M) : f in POLS];
end for;

for N in [1..20], k in [2,3] do 
   p := coprime(N);
   M := CuspForms(Gamma1(N), k);
   print "\nN = ", N, "p =", p, "k =", k, "dimension", Dimension(M);
   time
   [#Newforms([<p,f>], M) : f in POLS];
end for;

