curves := ["258E", "378G", "594F", "600G", "612D", "626B", "658A", "681B",
   "735B",  "738B", "742F", "777B", "780B", "819D", "850I", 
   "906E",
   "978C", "980I"];

AttachSpec("3coverings.spec");
SetVerbose("JacHypSelmer",2);
SetVerbose("ThreeCoverings",2);
SetVerbose("TernaryReduce",0);
SetVerbose("Minimise",2);
SetVerbose("ThreeDescent",2);
SetVerbose("CSAMaximalOrder",2);
SetVerbose("QFReduce",1);
SetColumns(0);

for c in curves do
   print c;
   E := EC(c);
   // We use Bound of 0 so assume no conjectures. 
   // IMPORTANT NOTE: I had to modify 3descent.m in order
   // for this to work right.  Before M. Stoll had put to
   // use the Minkoswki bound if Bound := 0, which is horrible.
   // Instead, let MAGMA determine a bound!!
   t := Cputime();
   r := ThreeSelmerGroup(E: Bound := 0);
   Write("data."*c, Sprintf("%o\t%o",r,Cputime(t)));
end for;
