The attached notebook generates matrices for various angular momentum values L and tests their rank. It does fine from L=1 to 90, and then hangs at L=91. Why? I tried to "Halt" in the debugger to diagnose the problem, but nothing happened. Memory usage is not high.
On[Assert];
c = {1/3, 0, Sqrt[2/3], 0, 1/3};
bME[Lmp_, Lm_] :=
Module[{J3 = Lmp[[1]], m3 = -Lmp[[2]], J2 = Lm[[1]], m2 = Lm[[2]], M = Lmp[[2]] - Lm[[2]]},
If[Abs[M] > 2, 0, -(-1)^m3 (Sqrt[(2 J3 + 1) (2 J2 + 1)/6])
ThreeJSymbol[{2, 0}, {J2, 0}, {J3, 0}] c[[M + 3]] ThreeJSymbol[{2, M}, Lm, {J3, m3}]]];
bMatrix[L_] := Module[{LM = Table[{L, m}, {m, -L, L}]}, Outer[bME, LM, LM, 1]];
bRank[L_] := MatrixRank[bMatrix[L]];
(Debug) In[6]:= ranks = Monitor[Table[Module[{rnk = bRank[L]}, Assert[rnk == 2 L]; rnk], {L, 1, 100}], {L}];
(Debug) Out[6]= $Aborted
(Debug) In[7]:= bRank[91]
(Debug) Out[7]= $Aborted
Attachments: