src/Level1/SpinT.cc
/*
             Sum  Sum  [     m             ]   Sum  Sum  [     m             ]
 A.T = T.A = over over | (-1)  * T  * A    | = over over | (-1)  * A  * T    |
              l    m   [          lm   l-m ]    l    m   [          lm   l-m ]

	   Input		SphT  : Irreducible Spin Tensor
	   			SphA  : Irreducible Spatial Tensor
	   Output		SOp   : Spin operator which is the result
	  				of the scalar product of  the rank l 
	  			        components of SphT with SphA
	   Note			      : The functions should produce 
	  				equivalent results                   */


Input                SphT  : Irreducible Spin Tensor
SphA  : Irreducible Spatial Tensor
Output               SOp   : Spin operator which is the result
of the scalar product of  the rank l
components of SphT with SphA
Note                       : The functions should produce
equivalent results
Input SphT : Irreducible Spin Tensor SphA : Irreducible Spatial Tensor Output SOp : Spin operator which is the result of the scalar product of the rank l components of SphT with SphA Note : The functions should produce equivalent results
spin_op T_prod(spin_T& SphT, space_T& SphA)
  {
  spin_op SOp;					
  for(int l=0; l<=SphT.rank; l++)		
    SOp += T_prod(SphT, SphA, l); 		
  return SOp;					
  }
spin_op T_prod ( spin_T & SphT , space_T & SphA ) { spin_op SOp ; for ( int l = 0 ; l <= SphT . rank ; l ++ ) SOp += T_prod ( SphT , SphA , l ) ; return SOp ; }
Sum  Sum  [     m             ]   Sum  Sum  [     m             ]
A.T = T.A = over over | (-1)  * T  * A    | = over over | (-1)  * A  * T    |
l    m   [          lm   l-m ]    l    m   [          lm   l-m ]
Sum Sum [ m ] Sum Sum [ m ] A . T = T . A = over over | ( - 1 ) * T * A | = over over | ( - 1 ) * A * T | l m [ lm l - m ] l m [ lm l - m ]
// Empty spin operator // Loop over rank of A & T // Sum tensor product this l // Return spin operaotr