**Name:**

Dot - product of vectors, matrices, and tensors

**Synopsis:**

array array Dot -> array

-> double

-> integer

**Examples:**

(1)

[ 4 3 7 ] [ 2 5 8] Dot ==79

(2)

[ 4 3 7 ] [ [ 2] [ 5 ] [ 8 ] ] Dot == [79]

(3)

[ [ 4 ] [ 3 ] [ 7 ] ] [ 2 5 8 ] Dot == [8 6 14]

Error: /DimensionMismatch in Dup

(4)

[ [ 5 3 2 ] [ 5 4 1 ] ] [ [ 2 ] [ 3 ] [ 9 ] ] Dot == [[37] [31]]

(5)

[ [ 5 3 2 ] [ 5 4 1 ] ] [ 2 3 9 ] Dot == [37 31]

(6)

[ 7 8 ] [ [ 5 3 2 ] [ 5 4 1 ] ] Dot == [75 53 22]

(7)

[ [ 5 3 ] [ 1 2 ] [ 5 4 ] ]

[ [ [ 2 1 ] [ 5 3 ] [ 3 4 ] [ 7 5 ]] [ [ 3 1 ] [ 7 4] [8 9] [1 8] ] ]

Dot ==

[ [ [19 8] [46 27] [39 47] [38 49] ]

[ [8 3] [19 11] [19 22] [9 21] ]

[ [22 9] [53 31] [47 56] [39 57] ]

]

**Description:**

A B Dot contracts the last index in A with the first

index in B. Indices in mathematical notation, leftmost

index describes first level objects. For peole used to

strict (row,column) notation as in Matlab [2] effects

of this generalized product may be surprising (see

examples (1) to (3).

Dot is an implementation of Mathematica's Dot [1].

**Parameters:**

**Bugs:**

Bad performace: TensorRank should be rewritten in C++

not yet protected by trie

**Remarks:**

**References:**

[1] The Mathematica Book "Dot"

[2] The MathWorks, Matlab User's Guide

**Author:**

Diesmann

**FirstVersion:**

31.5.2000

**SeeAlso:**

**Source:**

/home/nest/work/nest-2.14.0/lib/sli/mathematica.sli