# CROSSPROD

## Purpose:

Computes the matrix cross product.

## Syntax:

CROSSPROD(A)

CROSSPROD(A, B)

 A - A matrix. B - A matrix

## Returns:

A matrix, the cross product.

## Example:

W1: {{1, 3, 4},

{5, 7, 9},

{8, 9, 12}}

W2: {{1, 3, 2},

{2, 4, 5},

{1, 2, 0}}

crossprod(W1,W2) == {{19, 39, 27},

{26, 55, 41},

{34, 72, 53}}

W1' *^ W2        == {{19, 39, 27},

{26, 55, 41},

{34, 72, 53}}

(W2' *^ W1)'     == {{19, 39, 27},

{26, 55, 41},

{34, 72, 53}}

## Example:

W1: 1..10

W2: {sum(w1 * w1)}

W3: crossprod(w1)

W2 == W3 == 385, the sum of squares of the series in W1.

## Remarks:

crossprod(a, b) is equivalent to a' *^ b or (b' *^ a)', however, CROSSPROD is optimized for speed.

For complex matrices, the conjugate (Hermitian) transpose is computed, i.e crossprod(a, b) == a~^ *^ b.

The matrix cross product is a common calculation when computing least squares curve fitting. See LINFIT for a least squares implementation that uses multiple calculation methods.

See DADiSP/MatrixXL to significantly optimize CROSSPROD.

*^ (Matrix Multiply)

\^ (Matrix Solve)

INNERPROD

INTERPOSE

INVERSE

LINFIT

MDIV

OUTERPROD

REDUCE

TRANSPOSE

TRANSPOSECONJ