Well put!
Henry Rich
On 10/4/2013 3:22 PM, Roger Hui wrote:
mp=: 4 : '+/ .*/ (+/ .*~)^:(I.|.#:y) x'
(2 2$1 1 1 0x) mp 50
20365011074 12586269025
12586269025 7778742049
+/ .*/50 2 2$1 1 1 0x
20365011074 12586269025
12586269025 7778742049
On Fri, Oct 4, 2013 at 12:15 PM, Henry Rich <[email protected]> wrote:
If you have big powers or big matrices you might want to use the
repeated-squaring trick, something like
mpwr =: 4 : 'p =. x for_i. }. #: y do. p =. x mp^:i p mp p end.'
fails for y <: 0
Henry Rich
On 10/4/2013 12:26 PM, km wrote:
Verb mpwr calculates matrix powers . Is there a tacit way?
mp =: +/ . * NB. matrix product
mpwr =: 4 : 'x mp^:y =i.#x' NB. square matrix x to integer power y
A =: 1 1 ,: 1 0
A
1 1
1 0
A mpwr 3
3 2
2 1
A mp A mp A
3 2
2 1
A mpwr _1
0 1
1 _1
A mp A mpwr _1
1 0
0 1
--Kip Murray
Sent from my iPad
------------------------------**------------------------------**
----------
For information about J forums see
http://www.jsoftware.com/**forums.htm<http://www.jsoftware.com/forums.htm>
------------------------------**------------------------------**
----------
For information about J forums see
http://www.jsoftware.com/**forums.htm<http://www.jsoftware.com/forums.htm>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm