Hi,

I just came about this bug in gsl_sf_coupling_6j() in GSL 1.13 (haven't
checked newer builds).

The check of the triangle conditions (via the routine
triangle_selection_fails) doesn't properly rule out all unphysical
combinations of angular momenta. For instance

gsl_sf_coupling(0, 2, 2, 44, 43, 43) = 0.087039

but the routine should return 0 since this symbol is unphysical:
jb=1 and jc=21 cannot be coupled to jf=43/2=21.5 although the triangle
tests are nominally satisfied

abs(1-21.5)=20.5 <= 21 <= 22.5.

A possible fix would be to check if

(two_ja + two_jb + two_jc)%2 == 0

ja+jb+jc is always integer in physically allowed couplings (i.e.,
2*(ja+jb+jc) must be even).

The routine for the 3j symbol is not similarly affected due to the
additional m_selection_fails() test.

-- 
<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
<< Heiko Hergert
<< National Superconducting Cyclotron Laboratory
<< Michigan State University
<<
<< phone: +1 517 908 7472
<< mail: [email protected]
<< www : http://www.nscl.msu.edu
<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>


_______________________________________________
Bug-gsl mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-gsl

Reply via email to