Have Z.pow(x, 2) use x.square() rather than x.mul(x)