I have a behavior that I don't understand.
I didn't found a way to have a smaller code to reproduce it, so here is the entire code (you really don't need to understand the functions in details to see and understand the problem)
In[19]:= SetOptions[$FrontEnd, "ClearEvaluationQueueOnKernelQuit" -> False]
In[20]:= Quit[]
In[1]:= Off[SixJSymbol::tri] (* On enlève les messages d'erreurs pour le 6j *)
In[2]:= SetOptions[$FrontEndSession, EvaluationCompletionAction -> "ShowTiming"]
In[3]:= alphaMoins[j1_,j2_,j3_,j4_,j5_,j6_]:=Module[{},
If[j4 >= 1/2,
(j4(j4+1))/(4*(2j4+1))*1/(j4^2)*Sqrt[(j4+j5-j3)(j4-j5+j3)(1-j4+j5+j3)(1+j4+j5+j3)]*Sqrt[(j4+j2-j6)(j4-j2+j6)(1-j4+j2+j6)(1+j4+j2+j6)],0]
];
alphaPlus[j1_,j2_,j3_,j4_,j5_,j6_]:=Module[{},
If[j4+1>=0,(j4*(j4+1))/(4*(2j4+1))*1/((j4+1)^2)*Sqrt[(1+j4+j5-j3)(1+j4-j5+j3)(-j4+j5+j3)(2+j4+j5+j3)]*Sqrt[(1+j4+j2-j6)(1+j4-j2+j6)(-j4+j2+j6)(2+j4+j2+j6)],0]
];
alpha0[j1_,j2_,j3_,j4_,j5_,j6_]:=If[j5==0 && j6==0, j4(j4+1),(j4(j4+1)+j5(j5+1)-j3(j3+1))(j4(j4+1)+j6(j6+1)-j2(j2+1))/4/j4/(j4+1)]
triple456[j1_,j2_,j3_,j4_,j5_,j6_]:=Module[{},
If[j4 > 0,
Return[alphaMoins[j1,j2,j3,j4,j5,j6]*SixJSymbol[{j1,j2,j3},{j4-1,j5,j6}]-alpha0[j1,j2,j3,j4,j5,j6]*SixJSymbol[{j1,j2,j3},{j4,j5,j6}]-alphaPlus[j1,j2,j3,j4,j5,j6]*SixJSymbol[{j1,j2,j3},{j4+1,j5,j6}]]
,Return[0]]
];
In[7]:= opVolume[j1_,j2_,j3_,j4_,j5_,j6_]:=Module[{},
1/4 (triple456[j1,j2,j3,j4,j5,j6]+triple456[j1,j5,j6,j4,j2,j3]+triple456[j4,j2,j6,j1,j5,j3]+triple456[j4,j5,j3,j1,j2,j6])
]
In[8]:= sommeTriple[j1_,j2_,j3_,j4_,j5_,j6_]:=(4*opVolume[j1,j2,j3,j4,j5,j6])
In[9]:= Clear[j1, j2, j3, j4, j5, j6]
In[10]:= zz = Inactivate[opVolume[j1, j2, j3, j4, j5, j6]]
Out[10]= Inactive[opVolume][j1, j2, j3, j4, j5, j6]
In[11]:= zz2 = Activate[zz]
Out[11]= 1/4 (If[j1 > 0,
Return[alphaMoins[j4, j2, j6, j1, j5,
j3] SixJSymbol[{j4, j2, j6}, {j1 - 1, j5, j3}] -
alpha0[j4, j2, j6, j1, j5, j3] SixJSymbol[{j4, j2, j6}, {j1, j5, j3}] -
alphaPlus[j4, j2, j6, j1, j5,
j3] SixJSymbol[{j4, j2, j6}, {j1 + 1, j5, j3}]], Return[0]] +
If[j1 > 0,
Return[alphaMoins[j4, j5, j3, j1, j2,
j6] SixJSymbol[{j4, j5, j3}, {j1 - 1, j2, j6}] -
alpha0[j4, j5, j3, j1, j2, j6] SixJSymbol[{j4, j5, j3}, {j1, j2, j6}] -
alphaPlus[j4, j5, j3, j1, j2,
j6] SixJSymbol[{j4, j5, j3}, {j1 + 1, j2, j6}]], Return[0]] +
If[j4 > 0,
Return[alphaMoins[j1, j2, j3, j4, j5,
j6] SixJSymbol[{j1, j2, j3}, {j4 - 1, j5, j6}] -
alpha0[j1, j2, j3, j4, j5, j6] SixJSymbol[{j1, j2, j3}, {j4, j5, j6}] -
alphaPlus[j1, j2, j3, j4, j5,
j6] SixJSymbol[{j1, j2, j3}, {j4 + 1, j5, j6}]], Return[0]] +
If[j4 > 0,
Return[alphaMoins[j1, j5, j6, j4, j2,
j3] SixJSymbol[{j1, j5, j6}, {j4 - 1, j2, j3}] -
alpha0[j1, j5, j6, j4, j2, j3] SixJSymbol[{j1, j5, j6}, {j4, j2, j3}] -
alphaPlus[j1, j5, j6, j4, j2,
j3] SixJSymbol[{j1, j5, j6}, {j4 + 1, j2, j3}]], Return[0]])
In[12]:= {j1, j2, j3, j4, j5, j6} = {1, 1, 1, 1, 1, 1}
Out[12]= {1, 1, 1, 1, 1, 1}
In[13]:= zz2
Out[13]= -(2/3)
In[14]:= Clear[j1, j2, j3, j4, j5, j6]
In[15]:= ww = Inactivate[sommeTriple[j1, j2, j3, j4, j5, j6]]
Out[15]= Inactive[sommeTriple][j1, j2, j3, j4, j5, j6]
In[16]:= ww2 = Activate[ww]
Out[16]= If[j1 > 0,
Return[alphaMoins[j4, j2, j6, j1, j5,
j3] SixJSymbol[{j4, j2, j6}, {j1 - 1, j5, j3}] -
alpha0[j4, j2, j6, j1, j5, j3] SixJSymbol[{j4, j2, j6}, {j1, j5, j3}] -
alphaPlus[j4, j2, j6, j1, j5,
j3] SixJSymbol[{j4, j2, j6}, {j1 + 1, j5, j3}]], Return[0]] +
If[j1 > 0,
Return[alphaMoins[j4, j5, j3, j1, j2,
j6] SixJSymbol[{j4, j5, j3}, {j1 - 1, j2, j6}] -
alpha0[j4, j5, j3, j1, j2, j6] SixJSymbol[{j4, j5, j3}, {j1, j2, j6}] -
alphaPlus[j4, j5, j3, j1, j2,
j6] SixJSymbol[{j4, j5, j3}, {j1 + 1, j2, j6}]], Return[0]] +
If[j4 > 0,
Return[alphaMoins[j1, j2, j3, j4, j5,
j6] SixJSymbol[{j1, j2, j3}, {j4 - 1, j5, j6}] -
alpha0[j1, j2, j3, j4, j5, j6] SixJSymbol[{j1, j2, j3}, {j4, j5, j6}] -
alphaPlus[j1, j2, j3, j4, j5,
j6] SixJSymbol[{j1, j2, j3}, {j4 + 1, j5, j6}]], Return[0]] +
If[j4 > 0,
Return[alphaMoins[j1, j5, j6, j4, j2,
j3] SixJSymbol[{j1, j5, j6}, {j4 - 1, j2, j3}] -
alpha0[j1, j5, j6, j4, j2, j3] SixJSymbol[{j1, j5, j6}, {j4, j2, j3}] -
alphaPlus[j1, j5, j6, j4, j2,
j3] SixJSymbol[{j1, j5, j6}, {j4 + 1, j2, j3}]], Return[0]]
In[17]:= {j1, j2, j3, j4, j5, j6} = {1, 1, 1, 1, 1, 1}
Out[17]= {1, 1, 1, 1, 1, 1}
In[18]:= ww2
Out[18]= 4 Return[-(2/3)]
The strange thing is that opVolume and sommeTriple are the same functions (only a *4 of difference).
And the behavior when I inactivate/activate one is different than for the others.
In the first case (variable zz2) I have (-2/3) as a result and in the other case (variable ww2) I have 4*Return[-(2/3)].
The question is : why do I have an unvealuated return in the second case ?