Wigner3j(j1,j2,j,m1,m2,m) returns the Wigner 3j-symbol, where j1, j2, j, m1, m2, and m are half-integers. Physically, the Wigner 3j-symbol is closely related to the Clebsch-Gordon coefficient <j1,j2,m1,m2|j1,j2,j,m>, the square of which is the probability that a system of two particles with angular momentum j1 and j2 respectively and z-component of angular momentum m1 and m2 respectively has total angular momentum j and z-component of total angular momentum m.
I haven't tested this function thoroughly yet, so there may be some bugs. Please let me know if you find any.
The file is related to the author's ClebschGordan.m file. Adopt Kobi Kraus's suggestion and replace factorial(p) as gamma(p+1) will be much more efficient.
Still, the file does not check if the condition m1 + m2 = m3 is fulfilled. This should still be added!! In the current version it's very problematic to use the code! False results e.g. for angular momentum couplings are inevitable with this code.
Ops, did not read the table caption, it was 3jsymbol squared in table. now it match better for a few test cases
Made quick test against alpha=beta=gamma=0 3jsymbols in Table 2, in D.M. Brink and R.G. Satchler "Angular Momentum" Oxford Science Publications and can not get a match
It doesn't respect wigner 3j symetries
Wigner3j(1,1,1,1,-1,-1) is not 0
The file does not check wether the condition m1 + m2 = m3 is fulfilled. This should be added.
The loop in rows 59-64 can be replaced by a simple direct sum:
t = tmin : tmax;
wigner = sum( (-1).^t ./ ( factorial(t) .* factorial(t-t1) .* factorial(t-t2) ...
.* factorial(t3-t) .* factorial(t4-t) .* factorial(t5-t) ) );