dot

Syntax

dot(X, Y) or X**Y

Arguments

X / Y is a scalar/vector/matrix. If both of X and Y are vectors, they must have the same length. If one of X/Y is a matrix, the other is a vector/matrix and their dimensions must satisfy the rules of matrix multiplication.

Details

Return the matrix multiplication of X and Y. If X and Y are vectors of the same length, return their inner product.

Examples

$ x=1..6$2:3;
$ y=1 2 3;
$ x dot y;

#0

22

28

$ x=1..6$2:3;
$ y=6..1$3:2;
$ x**y;

#0

#1

41

14

56

20

$ y**x;

#0

#1

#2

12

30

48

9

23

37

6

16

26

$ a=1 2 3;
$ shape a;
3:1
$ x**a;

#0

22

28

$ b=1 2;
$ shape b;
2:1
$ b**x;
// for a matrix multiplication between a matrix and a vector, the system may rotate the dimension of the vector for the multiplication to go through.

#0

#1

#2

5

11

17

$ x=1 2 3;
$ y=4 5 6;
$ x ** y;
32
// inner product of two vectors. Equivalent to 1*4 + 2*5 + 3*6

$ x ** 2;
[2,4,6]

$ x=1..6$2:3
$ x ** 2;
Use * rather than ** for scalar and matrix multiplication.