Hi, I am unable to understand why the following expression is not fully expanded (I manually split it at key points to go easy on eyes). I turn to you for help. I failed to isolate it to a simpler problem. 16*(1.0)*z1*(dz2 . [1, 0])*((1.0)*p2[1]^(-1)*z1*dz2[0]+(1.0)*p2[1]^(-1)*z2*dz1[0]) -(631.6546816697189115)*p1[2]*(1.0)^2*z1^2*z2^2 +16*(1.0)*z2*((1.0)*p2[0]^(-1)*z1*dz2[1]+(1.0)*p2[0]^(-1)*z2*dz1[1])*(dz1 . [0, 1]) +16*(1.0)*z2*((1.0)*p2[1]^(-1)*z1*dz2[0]+(1.0)*p2[1]^(-1)*z2*dz1[0])*(dz1 . [1, 0]) +16*(1.0)*z1*(dz2 . [0, 1])*((1.0)*p2[0]^(-1)*z1*dz2[1]+(1.0)*p2[0]^(-1)*z2*dz1[1]) legend: p1,p2,dz1,dz2,dz3 are vectors, z1, z2, z3 are scalars p2[0],p2[1] etc are components [1,0], [0,1] etc are vectors too (dz1 . dz2) etc are inner products each of the terms that starts as 16*(1.0) ... has an unexpanded part of the from ... * (... + ...) I can consider many possible reasons but could not come up with an answer 1) The part is actually expanded but somewhere it is being gathered again. Not likely, as my code does not override the gather function. 2) GiNaC thinks it cannot be expanded for some reason a) GiNaC refuses to expand due to restrictions on the depth of the tree? (not likely, the depth is too small) b) GiNaC refuses to expand cause it thinks the product may not be distributive? (likely, but i dont know) c) GiNaC thinks its an atom but the output fools me into believing it is not an atom? I would appreciate if any of you can point out the problem. Meanwhile I will keep digging at it. thanks, Krishna.
darn it, my email client screwed up the expression, hopefully this works better from both ends 16*(1.0)*z1*(dz2.[1,0])*((1.0)*p2[1]^(-1)*z1*dz2[0]+(1.0)*p2[1]^(-1)*z2*dz1[0]) -(631.6546816697189115)*p1[2]*(1.0)^2*z1^2*z2^2 +16*(1.0)*z2*((1.0)*p2[0]^(-1)*z1*dz2[1]+(1.0)*p2[0]^(-1)*z2*dz1[1])*(dz1.[0,1]) +16*(1.0)*z2*((1.0)*p2[1]^(-1)*z1*dz2[0]+(1.0)*p2[1]^(-1)*z2*dz1[0])*(dz1.[1,0]) +16*(1.0)*z1*(dz2.[0,1])*((1.0)*p2[0]^(-1)*z1*dz2[1]+(1.0)*p2[0]^(-1)*z2*dz1[1])
legend: p1,p2,dz1,dz2,dz3 are vectors, z1, z2, z3 are scalars p2[0],p2[1] etc are components [1,0], [0,1] etc are vectors too (dz1 . dz2) etc are inner products
I can consider many possible reasons but could not come up with an answer
1) The part is actually expanded but somewhere it is being gathered again. Not likely, as my code does not override the gather function. 2) GiNaC thinks it cannot be expanded for some reason a) GiNaC refuses to expand due to restrictions on the depth of the tree? (not likely, the depth is too small) b) GiNaC refuses to expand cause it thinks the product may not be distributive? (likely, but i dont know) c) GiNaC thinks its an atom but the output fools me into believing it is not an atom?
I figured this out. The problem was with my understanding of the expand() behavior. I was expecting it to recurse until the expand no longer leads to any more expansion. Now I realize that not recursing should be the default and optimal behavior.
participants (1)
-
Krishna Mohan Gundu