A<x,y> := PolynomialRing(GF(2),2); P,homogenize := Homogenization(A);

print("f := The polynomial from math.mit.edu/~drew/FFFc37.txt reduced mod 2.");
f := (x^9+x^5)*y^18+(x+1)^3*y^17*x^5+(x+1)^6*y^16*x^5+(x+1)^5*y^15*x^5+(x^9+x^6+x^5+x^2+1)*(x+1)^2*y^14*x+(x^12+x^11+x^10+x^9+x^8+x^3+x^2+x)*y^13+(x^14+x^13+x^9+x^8+x^7+x^3+x)*y^12+(x^12+x^10+x^8+x^7+1)*(x+1)*y^11*x+(x^17+x^16+x^15+x^13+x^11+x^9)*y^10+(x^12+x^9+x^7+x^6+x^5+x^3+x+1)*y^9+(x^19+x^18+x^15+x^12+x^10+x^9+x^6+x^3+x^2)*y^8+(x^16+x^15+x^13+x^12+x^9+x^8+x^7+x^2)*y^7+(x+1)^4*(x^4+x^3+x^2+x+1)*(x^5+x^2+1)^2*y^6*x+(x+1)^4*(x^8+x^6+x^3+x^2+1)*y^5*x+(x^5+x^4+x^2+x+1)*(x^3+x^2+1)*(x^6+x^5+1)*y^4*x+(x^12+x^7+x^5+x)*y^3+(x^10+x^9+x^5+x^4+x^3+x^2)*y^2+(x^7+x^6+x^4+x^2+1)*(x+1)*y+x^6;
FF := FunctionField(Scheme(ProjectiveSpace(P), homogenize(f)));

print("AFF := AlgorithmicFunctionField(X1(37) over F2).");
AFF := AlgorithmicFunctionField(FF);

print("plc1 := the 18 places of degree 1, all of which are cusps.");
plc1 := Places(AFF,1);

print("cuspsum := the sum of those 18 places");
cuspsum := &+ plc1;
