D.65 How to make Cleb­sch-Gor­dan ta­bles

The pro­ce­dure of find­ing the Cleb­sch-Gor­dan co­ef­fi­cients for the com­bi­na­tion of any two spin lad­ders is ex­actly the same as for elec­tron ones, so it is sim­ple enough to pro­gram.

To fur­ther sim­plify things, it turns out that the co­ef­fi­cients are all square roots of ra­tio­nal num­bers (i.e. ra­tios of in­te­gers such as 102/38.) The step-up and step-down op­er­a­tors by them­selves pro­duce square roots of ra­tio­nal num­bers, so at first glance it would ap­pear that the in­di­vid­ual Cleb­sch-Gor­dan co­ef­fi­cients would be sums of square roots. But the square roots of a given co­ef­fi­cient are all com­pat­i­ble and can be summed into one. To see why, con­sider the co­ef­fi­cients that re­sult from ap­ply­ing the com­bined step down lad­der ${\widehat J}^-_{ab}$ a few times on the top of the lad­der ${{\left\vert j\:j\right\rangle}}_a{{\left\vert j\:j\right\rangle}}_b$. Every con­tri­bu­tion to the co­ef­fi­cient of a state ${{\left\vert j\:m\right\rangle}}_a{{\left\vert j\:m\right\rangle}}_b$ comes from ap­ply­ing ${\widehat J}^-_a$ for $j_a-m_a$ times and ${\widehat J}^-_b$ for $j_b-m_b$ times, so all con­tri­bu­tions have com­pat­i­ble square roots. ${\widehat J}^-_{ab}$ merely adds an $m_{ab}$ de­pen­dent nor­mal­iza­tion fac­tor.

You might think this pat­tern would be bro­ken when you start defin­ing the tops of lower lad­ders, since that process uses the step up op­er­a­tors. But be­cause ${\widehat J}^+{\widehat J}^-$ and ${\widehat J}^-{\widehat J}^+$ are ra­tio­nal num­bers (not square roots), ap­ply­ing the up op­er­a­tors is within a ra­tio­nal num­ber the same as ap­ply­ing the down ones, and the pat­tern turns out to re­main.

Ad­di­tional note: There is also a di­rect ex­pres­sion for the Cleb­sch-Gor­dan co­ef­fi­cients:

\begin{eqnarray*}
\lefteqn{{\left\langle j m\right.\hspace{-\nulldelimiterspac...
... \frac{(-1)^z}{\prod_{i=1}^3 (z-z_{{\rm l}i})!(z_{{\rm h}i}-z)!}
\end{eqnarray*}

where $\delta$ is the Kro­necker delta and

\begin{eqnarray*}
& z_{{\rm l}1} = 0 \quad
z_{{\rm l}2} = j_1+m_2-j \quad
z_{...
..._2 \quad
z_{\rm h} = \min(z_{\rm h1},z_{\rm h2},z_{\rm h3}) \\
\end{eqnarray*}

Care­fully coded, this one seems to be nu­mer­i­cally su­pe­rior at larger an­gu­lar mo­menta. Ei­ther way, these co­ef­fi­cients will over­flow pretty quickly.

There are also re­sources on the web to com­pute these co­ef­fi­cients. See {N.13} for ad­di­tional in­for­ma­tion.