Inner Product

From APL Wiki
Revision as of 02:30, 6 September 2021 by Hou32hou (talk | contribs) (→‎Examples)
Jump to navigation Jump to search
.

Inner Product (.), is a dyadic operator, which will produce a dyadic function when applied with two dyadic functions. In APL, the inner product is a generalisation of the matrix product, which allows not only addition-multiplication, but any dyadic functions given.

Examples

      x  1 2 3
      y  4 5 6
      x ,.(↓,) y ⍝ visualizing inner product
┌─────────────┐
│┌───┬───┬───┐│
││1 42 53 6││
│└───┴───┴───┘│
└─────────────┘
      x+.×y ⍝ matrix multiplication
32

Note that for inner product between N-dimensional arrays, their dimension must be compatible with each other.

For example, when applying inner-product to a 2D array, the column count of the left array must match with the row count of the right array, otherwise we will get an error.

         x  2 3⍴⍳10
1 2 3
4 5 6
        y  4 2⍴⍳10
1 2
3 4
5 6
7 8   
      x+.×y 
LENGTH ERROR
      x+.×y
        
        y  3 2⍴⍳10 ⍝ reshape y to be compatible with x
      x+.×y
22 28
49 64