Suppose I have a matrix $\mathbf{A}$, and a vector $\mathbf{b}$, and wish to compute the matrix-vector product $\mathbf{A} \mathbf{b}$.
If I have already previously computed the product $\mathbf{A} \mathbf{c}$ between the same matrix $\mathbf{A}$, but a different vector $\mathbf{c}$, is it possible to use that already-computed result $\mathbf{A} \mathbf{c}$ in some way to make the computation of $\mathbf{A} \mathbf{b}$ more efficient?
In my specific case, the matrix $\mathbf{A}$ happens to have the following special properties, which I suppose may or may not help:
- $\mathbf{A}$ is a square matrix.
- $\mathbf{A}$ itself is constructed in a special way: it is the product of the differences between the identity matrix $\mathbf{I}$ and multiple other matrices, e.g. $\mathbf{A} = (\mathbf{I} - \mathbf{X})(\mathbf{I} - \mathbf{Y})(\mathbf{I} - \mathbf{Z}) \dots$ for a sequence of (square) matrices $\mathbf{X}$, $\mathbf{Y}$, $\mathbf{Z}$, $\dots$.
- The matrices mentioned above ($\mathbf{X}$, $\mathbf{Y}$, $\mathbf{Z}$, $\dots$) are symmetric matrices (each of those is constructed as the outer product of an arbitrary vector with itself).