Q:

How to make Orthogonalize simplify each new vector before using it to orthogonalize the next one?

I'm trying to construct a set of orthogonal polynomials, starting from a specially-prepared initial polynomials:
nMax = 3;
initPolys = Table[1 + R/2 x - R/2 x^2 - x^n, {n, 2, nMax}];
orthoPolys = Orthogonalize[initPolys, Simplify @ Integrate[#1 #2, {x, 0, 1}] &]

The result of Orthogonalize grows rapidly in size as nMax grows to as small values as 7. Yet, if I use Simplify on the output, the expressions appear quite "compressible".
The problem is that this simplification only happens after the whole set has been generated, and in the Gram-Schmidt method used by Orthogonalize, the large unsimplified expressions are being used, thus leading to unacceptable slowdown. E.g. nMax=11 has already  been running for 10 hours without any result (so I aborted it).
Thus my question is, how can I make Orthogonalize simplify each new vector before using it in further calculations? Or do I have to make my own implementation of Gram-Schmidt process to do this?

A:

Recalling that the coefficients of the product of two polynomials is the same as the convolution of the coefficients of the factors, one can easily write a more efficient version of the required inner product:
iprod[f_, g_, x_] := With[{c = Simplify[ListConvolve[CoefficientList[f, x], 
                                                     CoefficientList[g, x], {1, -1}, 0]]}, 
                           Simplify[Total[c/Range[Length[c]]]]]

Evaluating Orthogonalize[Table[1 + R/2 x - R/2 x^2 - x^n, {n, 2, 9}], iprod[#1, #2, x] &] is now much faster, tho the resulting polynomials need to be processed further with (Full)Simplify[].

