The Horner factorization of scalar valued polynomials is well known in numerical methods:
$$p(x) = \sum_{k=0}^{N}c_kx^k = (((c_Nx+c_{N-1})x+c_{N-2})x+\cdots+c_1)x+c_0)$$
Example $$x^3+3x^2+2x+1 = ((x+3)x+2)x+1$$
Here we get away with doing 2 multiplications and 3 additions which can be faster than calculate each term by itself and adding up afterwards.
Does there exist any similar method to use which is specialized for matrices?
I am thinking of matrix expressions like this, with constant matrix "coefficients" multiplied only from the left: $$p({\bf A}) = \sum_{k=0}^N {\bf C}_k{\bf A}^k$$
Because matrix multiplication is distributive ($(A+B)C = AC + BC)$, Horner factorization just works:
$C_3A^3 + C_2A^2 + C_1A^1$ = $((C_3A + C_2)A + C_1)A$