49 for ( M = J; J >= -M; M -= 2 ) {
63 int n = (
m_Jmax - J ) / 2 + 1;
64 std::vector<double>* vectors =
new std::vector<double>[n - 1];
66 for ( i = 0; i < n - 1; i++ ) {
68 vectors[i].resize( n );
69 for ( k = 0; k < n; k++ ) {
71 [( J +
m_Jmax - 2 * i ) / 2][k];
78 if ( orth[n - 1] < 0.0 )
80 for ( k = 0; k < n; k++ ) {
85 for ( M = J - 2; M >= -J; M -= 2 ) {
93 for ( m1 = mmin; m1 < mmin + len * 2; m1 += 2 ) {
96 float fkwTmp =
m_j1 * (
m_j1 + 2 ) - ( m1 + 2 ) * m1;
101 if ( m1 + 2 <=
m_j1 )
102 sum += 0.5 * sqrt( fkwTmp ) *
cg( J, M + 2, m1 + 2, m2 );
103 fkwTmp =
m_j2 * (
m_j2 + 2 ) - ( m2 + 2 ) * m2;
104 if ( m2 + 2 <=
m_j2 )
105 sum += 0.5 * sqrt( fkwTmp ) *
cg( J, M + 2, m1, m2 + 2 );
106 fkwTmp = J * ( J + 2 ) - ( M + 2 ) * M;
107 sum /= ( 0.5 * sqrt( fkwTmp ) );
108 cg( J, M, m1, m2 ) = sum;