Compute the k-th power of a matrix. Whereas x^k computes
element wise powers, x %^% k corresponds to k -
1 matrix multiplications, x %*% x %*% ... %*% x.
Usage
x %^% k
Arguments
x
a square matrix.
k
an integer, k >= 0.
Details
Argument k is coerced to integer using as.integer.
The algorithm uses O(log2(k)) matrix
multiplications.
Value
A matrix of the same dimension as x.
Note
If you think you need x^k for k < 0, then consider
instead solve(x %^% (-k)).
Author(s)
Based on an R-help posting of Vicente Canto Casasola, and
Vincent Goulet's C implementation in actuar.
See Also
%*% for matrix multiplication.
Examples
A <- cbind(1, 2 * diag(3)[,-1])
A
A %^% 2
stopifnot(identical(A, A %^% 1),
A %^% 2 == A %*% A)