"Source: Text/Geometry/ModSym.text";
"Line: 2464";
"Date: Thu Sep 25 14:47:45 2025";
"Main: Fri Sep 26 14:29:19 2025";
// original file: Text/Geometry/ModSym.text, line: 2464
// Example: H145E22 ()
print "Example: H145E22";
ei := GetEchoInput();
SetEchoInput(true);
function CuspidalSubgroup(N)
   M := ModularSymbols(N);
   J := CuspidalSubspace(M);
   G := SubgroupOfTorus(J,IntegralBasis(M));
   return G;
end function;
// Test the function
CuspidalSubgroup(65);
procedure CuspidalTable(start, stop)
   fname := Sprintf("cuspidal_subgroup_%o-%o.m", start, stop);
   file  := Open(fname,"w");
      for N in [start..stop] do
      G := Invariants(CuspidalSubgroup(N));
      fprintf file, "C[\%o] := \t\%o;\n\n", N, G;
      printf "C[\%o] := \t\%o;\n\n", N, G;
      Flush(file);
   end for;
end procedure;
SetEchoInput(ei);
