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

Reply via email to