Tanks a lot!

Yes and Sorry, I forgot to call simplified_indexed.


Still, I get some confused with the index variance.

and excuse me to let me explain my options in some details.


I understand g_c^d = g_{ce} g^{ed}, and let’s come back to the ret expresion:


"auto ret = indexed(A, sy_anti(0,1,2,3), ia,ib,ic,id) *lorentz_g(ic, id.toggle_variance());”


In my understanding, it corresponds to A^{abcd} * g^{c}_{d}, is that right? 

if so, then A^{abcd} * g^{c}_{d} = A^{abcc}, so according to sy_anti, it is 0, directly from GiNaC.


So if I want to contract two index in A, I mean, we need this one: A^{abc}_{c} = A^{abcd} * g^{dc} ?


Thanks very much!


Best Regards!

Feng