I am solving a problem using an iteratively-reweighted least squares method: http://en.wikipedia.org/wiki/Iteratively_reweighted_least_squares
Essentially this requires solving a number of least-squares problems of the form $$D_i A\vec x\approx D_i\vec b,$$ where each $D_i$ is a different diagonal weighting matrix.
Is there any way to pre-factor $A$ or do other calculations to speed up iterations of this algorithm? Right now, I'm resolving the least-squares problem from scratch during each iteration.