June 2018 Update
This commit is contained in:
parent
ba8067c3b7
commit
22f33d4004
5278 changed files with 84726 additions and 14379 deletions
|
|
@ -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 "))
|
||||
}
|
||||
|
|
@ -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)
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
: matpow((0,1\1,1),10)
|
||||
[symmetric]
|
||||
1 2
|
||||
+-----------+
|
||||
1 | 34 |
|
||||
2 | 55 89 |
|
||||
+-----------+
|
||||
Loading…
Add table
Add a link
Reference in a new issue