# Inner

Inner[f,list1,list2,g]

is a generalization of Dot in which f plays the role of multiplication and g of addition.

# Details • Inner[f,{{a,b},{c,d}},{x,y},g]->{g[f[a,x],f[b,y]],g[f[c,x],f[d,y]]}.
• Like Dot, Inner effectively contracts the last index of the first tensor with the first index of the second tensor. Applying Inner to a rank r tensor and a rank s tensor gives a rank tensor.
• Inner[f,list1,list2] uses Plus for g.
• Inner[f,list1,list2,g,n] contracts index n of the first tensor with the first index of the second tensor.
• The heads of list1 and list2 must be the same, but need not necessarily be List. »

# Examples

open allclose all

## Basic Examples(3)

Compute the "inner f" of two lists, with "plus operation" g:

Compute a generalized inner product of a matrix and a vector:

Use familiar operations:

## Scope(4)

Generalized inner product of two matrices:

Inner product of a matrix with a vector:

Inner product of a vector with a matrix:

Hermitian inner product of two vectors:

Check this is the same as using Dot and conjugating the second vector:

## Generalizations & Extensions(2)

Contract over the first index of the first matrix:

Inner works with heads other than List:

## Applications(4)

Boolean (inner) product:

Block matrix (inner) product:

The divergence of a vector field is an inner differentiation:

Applying the functions in a list to corresponding arguments:

## Properties & Relations(2)

This gives the scalar product of two vectors:

This does the same thing:

Combining the products with List gives the same result as MapThread:

Introduced in 1988
(1.0)