This very simple code ran perfectly two days ago, and now it is failing, for no reason that I can see.
It is simply running indefinitely, and when I abort it, it continues running until I abort it a second time.
This is an incredibly frustrating issue. I'm expecting it to take a while, but a few days ago, the code was giving non-fatal error which at least hinted that things were moving. The result was produced after about 5-10 minutes. Now it's just stuck completely.
M = I; tau = 1/3 + (3/2)*I; w1 = Pi/2; w2 = Pi*tau/2; inv = WeierstrassInvariants[{w1, w2}]; E2[t_] = 1 - 24*Sum[(n*Exp[2*Pi*I*(t)*n])/(1 - Exp[2*Pi*I*(t)*n]), {n, 1, 300}]; z[u_] = (I*M/2)*(WeierstrassZeta[u, inv] - ((1/3)*E2[tau]*u)); WP[x_, y_] = WeierstrassP[w1*x + w2*y, inv]; L = -(1/3)*E2[tau]; f[x_, y_] = Re[WP[x, y] - L]; g[x_, y_] = Im[WP[x, y] - L]; So there are precisely two points in the domain I'm interested in where the above functions $f$ and $g$ identically vanish. Quite simply, all I need to do is find these points. NSolve was giving me issues so I was given great advice to apply the methods described here (Updating Wagon's FindAllCrossings2D[] function). This is precisely where the second part of the code comes from
FindCrossings2D[{f_, g_}, {x_, xmin_, xmax_}, {y_, ymin_, ymax_}] := {x, y} /. (FindRoot[{f[x, y] == 0, g[x, y] == 0}, {{x, #[[1]]}, {y, #[[2]]}}] & /@ (ContourPlot[{f[x, y] == 0, g[x, y] == 0}, {x, xmin, xmax}, {y, ymin, ymax}][[1, 1]])) pts = FindCrossings2D[{f, g}, {x, 0, 2}, {y, -1, 1}]; ContourPlot[{f[x, y] == 0, g[x, y] == 0}, {x, 0, 2}, {y, -1, 1}, Epilog -> {AbsolutePointSize[6], Red, Point /@ pts}] Like I said, when it worked, it does take 5-10 minutes but there were signs it was progressing. Like giving non-fatal error. A few days later, now it's just completely stuck and I have no clue why!

FindRootabout 1400 times, once for each point in theContourPlot. If it was working at one point and now it is not, it could just be a memory issue. $\endgroup$