Normalization Convention

The QSpace library has different conventions of normalizing the Clebsch-Gordan coefficients for rank-2 tensors (such as Z and I.E) and for higher-rank tensors (such as F and S).

For rank-2 tensors, the Clebsch-Gordan coefficients are normalized so that the reduced matrix elements have immediately relevant values. The elements of the tensor D (obtained after eig) for the energy eigenvalues are indeed energy eigenvalues.

celldisp(D.data)

ans{1} =
   1.0000e-40


ans{2} =
  -1.0000     1.0000


ans{3} =
  -2.0000    -0.0000     2.0000


ans{4} =
   1.0000e-40


ans{5} =
  -1.0000    1.0000


ans{6} =
   1.0000e-40

Also each cell .data{..} of identity operator I.E contains the identity matrices themselves.

celldisp(I.E.data)

ans{1} =
   1.0000

On the other hand, for higher-rank tensors, the Clebsch-Gordan coefficents are normalized so that the contraction of a tensor and its Hermitian conjugate becomes unity, when the reduced matrix elements are unity. For example, consider a rank-3 tensor which is the subspace projection of F,

O1 = getsub(F,2)

O1 =
    Q: 1x [2 2 2] having 'A,SU2',      { , *, * }   
 data: 3-D double (112 bytes)      1 x 1 x 1 => 2 x 1 x 2

    1. 1x1x1      | 2x1x2       [ 0 1 ; 1 0 ; -1 1 ]      -1.414
O1.data{1} = 1; % make the reduced matrix to be trivial 1

The contraction of O1 and its Hermitian conjugate, with all the legs contracted, is equal to the squared norm of the Clebsch-Gordan coefficents, since the reduced matrix is set as trivial 1.

contract(O1, '1,2,3',O1, '1,2,3;*')
ans =
    Q: [] having 'A,SU2',         
 data: 0-D double (112 bytes)     
    1. 1x1   [ ]          1.

On the other hand, due to the different normalization convention of rank-2 tensors, the contraction of two identity operators, with all the legs contracted, becomes the Hilbert space dimension.

contract(I.E, '1,2',I.E, '1,2;*')

ans =
    Q: [] having 'A,SU2',         
 data: 0-D double (112 bytes)     
    1. 1x1   [ ]          2.