Bug in MathMore: ROOT::Math::wigner_6j gives wrong results

ROOT::Math::wigner_6j and
ROOT::Math::wigner_9j

can give wrong results. This is due to this unfixed bug in GSL:
savannah.gnu.org/bugs/?func=det … m_id=29606

Maybe you can
(a) add the suggested fix to the wrapper functions and
(b) try to get the GSL bug fixed upstream? They seem to be very unresponsive - a fix has been posted 3 years ago already!

From the GSL bug report:

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.

I confirm that the ROOT function
ROOT::Math::wigner_6j(0, 2, 2, 44, 43, 43);
returns 0.087039.
(Of course! The ROOT routine is just a wrapper for the buggy GSL routine.)

And WolframAlpha confirms that the function should indeed return zero:
wolframalpha.com/input/?i=+SixJSymbol[{0%2C2%2F2%2C2%2F2}%2C+{44%2F2%2C43%2F2%2C43%2F2}]

Note the different definition of the arguments to
SixJSymbol: wants j, so SixJSymbol[{0, 2/2, 2/2} , {44/2, 43/2, 43/2}]
ROOT::Math::wigner_6j wants 2*j (“two_j”), as the GSL routine does: (0,2,2, 44,43,43)

The bug report claims that wigner_9j is also affected, but I haven’t tested.

All this is with an up-to-date gsl version 1.15 on SuSE 12.3, 64 bit, on ROOT 5.34.08 (PRO) downloaded and installed from the sources today.