CompleteSquare
CompleteSquarep[exp, x]
completes the square of a second order polynomial in the momentum x.
See also
Overview, ExpandScalarProduct.
Examples
CompleteSquare[4 SP[p] + SP[b, p] + c, p]
4(8b+p)2−16b2+c
CompleteSquare[4 SP[p] + SP[b, p] + c, p, q]
{−16b2+4q2+c,q→8b+p}
ex1 = 5 SP[2 p + 3 r, p + r]
5((p+r)⋅(2p+3r))
ex2 = CompleteSquare[ex1, p]
10(p+45r)2−85r2
ex1 - ex2 // ScalarProductExpand // Expand
0
CompleteSquare[5 SP[2 p + 3 r, p + r], p, q]
{10q2−85r2,q→p+45r}
SPD[a] + 2 SPD[a, b]
ex = CompleteSquare[%, a]
2(a⋅b)+a2
(a+b)2−b2
ex // StandardForm
(*-Pair[Momentum[b, D], Momentum[b, D]] + Pair[Momentum[a, D] + Momentum[b, D], Momentum[a, D] + Momentum[b, D]]*)