June 2018 Update

This commit is contained in:
Ingy döt Net 2018-06-22 20:57:24 +00:00
parent ba8067c3b7
commit 22f33d4004
5278 changed files with 84726 additions and 14379 deletions

View file

@ -0,0 +1,22 @@
class Array {
method ** (Number n { .>= 0 }) {
var tmp = self
var out = self.len.of {|i| self.len.of {|j| i == j ? 1 : 0 }}
loop {
out = (out `mmul` tmp) if n.is_odd
n >>= 1 || break
tmp = (tmp `mmul` tmp)
}
return out
}
}
var m = [[1, 2, 0],
[0, 3, 1],
[1, 0, 0]]
for order in (0..5) {
say "### Order #{order}"
var t = (m ** order)
say (' ', t.join("\n "))
}

View file

@ -0,0 +1,13 @@
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)
}

View file

@ -0,0 +1,7 @@
: matpow((0,1\1,1),10)
[symmetric]
1 2
+-----------+
1 | 34 |
2 | 55 89 |
+-----------+