Matrix-exponentiation operator: Difference between revisions

+Stata
(Added Kotlin)
(+Stata)
Line 2,424:
 
Domain:[http://fricas.github.io/api/Matrix.html?highlight=matrix Matrix(R)]
 
=={{header|Stata}}==
 
This implementation uses [https://en.wikipedia.org/wiki/Exponentiation_by_squaring Exponentiation by squaring] to compute a^n for a matrix a and an integer n (which may be positive, negative or zero).
 
<lang stata>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)
}</lang>
 
Here is an example to compute Fibonacci numbers:
 
<lang stata>: matpow((0,1\1,1),10)
[symmetric]
1 2
+-----------+
1 | 34 |
2 | 55 89 |
+-----------+</lang>
 
=={{header|Tcl}}==
1,336

edits