RosettaCodeData/Task/Matrix-exponentiation-operator/Stata/matrix-exponentiation-operator-1.stata
2018-06-22 20:57:24 +00:00

13 lines
227 B
Text

real matrix matpow(real matrix a, real scalar n) {
real matrix p, x
real scalar i, s
s = n<0
n = abs(n)
x = a
p = I(rows(a))
for (i=n; i>0; i=floor(i/2)) {
if (mod(i,2)==1) p = p*x
x = x*x
}
return(s?luinv(p):p)
}