Question
Is there a quick way to identify the branches in a 3J symbol?
Context
I need to compute Wigner 3J symbols/Clebsch–Gordan coefficients,
$$ \begin{pmatrix} \ell_1 &\ell_2 &\ell_3\\ 0&m&-m \end{pmatrix} , $$
for all configurations of ($\ell_1,\ell_2,\ell_3$) up to $\ell_\text{max}\sim 2000$, and $m=\mathcal{O}(1) $. Speed is crucial so rather than computing the 3j a billion times, I would resort to an interpolation scheme.
Interpolating the raw 3j symbol is impossible because it has four branches; for example, consider this plot of the 3j coefficients as a function of $\ell_3$ with $\ell_1=120$, $\ell_2=90$ and $m=2$:
Messy, uh? Let's split it in two plots based on the parity of $\ell_1+\ell_2+\ell_3$. We have two branches for even $\ell_3$:
and two branches for odd $\ell_3$:
Each branch is rather smooth, as long as $m$ stays small; this means that interpolation is possible on a per-branch basis. However, first I need a way to identify which branch corresponds to a given $(\ell_1,\ell_2,\ell_3)$. Hence the question: is there a quick way to identify the branch of a 3j symbol?
Note that this question is a follow-up of my previous question, Sign of 3j symbol, where I asked about the sign of
$$ \begin{pmatrix} \ell_1 &\ell_2 &\ell_3\\ 0&0&0 \end{pmatrix} , $$
which, thanks to @GjergjiZaimi, I now know is $-1^{(\ell_1+\ell_2+\ell_3)/2}$. In that simplified case, knowing the sign was equivalent to identifying the 3J branch. In the $m\neq0$ case, however, the sign is not enough because each branch crosses the zero.
Thank you for your attention, Guido