bug-apl
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-apl] inner product


From: enztec
Subject: Re: [Bug-apl] inner product
Date: Fri, 17 Mar 2017 16:28:06 -0600

very nice work - thanks you for spending the time ..   everthing here holds 
when replacing +.x with +.=  (which is of more interest to me) 

On Fri, 17 Mar 2017 22:01:26 +0100
Nick Lobachevsky <address@hidden> wrote:

> The key to understanding inner product is that the inner dimensions of
> the arguments have to be the same.  The inner dimension here is 3.
> 
>       a←2 3⍴⍳6
>       b←3 4⍴⍳12
>       a
> 0 1 2
> 3 4 5
>       b
> 0 1  2  3
> 4 5  6  7
> 8 9 10 11
>        a+.×b
> 20 23 26 29
> 56 68 80 92
> 
> To solve this, first transpose the right argument such that the inner
> dimension goes to the back of the array and both arguments have the
> same number of columns.
> 
>       (¯1⌽⍳⍴⍴b)⍉b
> 0 4  8
> 1 5  9
> 2 6 10
> 3 7 11
>       a
> 0 1 2
> 3 4 5
> 
> Do the operations for every combination of rows in a and ⍉b.  As we
> are doing +.×
> 0 1 2 × 0 4 8 is 0 4 16, +/0 4 16 is 20.  First element of the result
> 0 1 2 × 1 5 9 is 0 5 18, +/0 5 18 is 23.  Second element of the result
> And so on.  Loop until done.
> 
> Shape of the result is (¯1↓⍴a),1↓⍴b or 2 4
> 
> For the vector and vector case, the lengths of both vectors have to be
> the same.  The result is simply +/ a × b
> 
> For higher order matrices, as before, the inner dimensions are
> important.  The others less so.
>       a←2 5 1 3⍴⍳30
>       b←3 4 2⍴⍳12
> Here the idea is to collapse (i.e. multiply together) all but the
> inner dimensions, then compute the result as if both arguments were
> two dimensional matrices.
>       a←10 3⍴⍳30
>       b←3 8⍴⍳24
> And as before, the shape of the product is (¯1↓⍴a),1↓⍴b or 2 5 1 4 2
> 
> See also 
> http://www.dyalog.com/uploads/conference/dyalog16/presentations/U08_SIMD_Boolean_Array_Algorithms_slides.pdf
> (The part about the STAR Inner Product Algorithm)
> 
> and
> 
> http://www.jsoftware.com/papers/innerproduct/ip1.htm



reply via email to

[Prev in Thread] Current Thread [Next in Thread]