# sumouter

##### Compute Quadratic Forms

Calculates certain quadratic forms of matrices.

- Keywords
- array

##### Usage

```
sumouter(x, w=NULL, y=x)
quadform(x, v)
bilinearform(x, v, y)
```

##### Arguments

- x,y
A matrix, whose rows are the vectors in the quadratic form.

- w
Optional vector of weights

- v
Matrix determining the quadratic form

##### Details

The matrices `x`

and `y`

will be interpreted as
collections of row vectors. They must have the same number of rows.

The command `sumouter`

computes the sum of the outer
products of corresponding row vectors, weighted by the entries of `w`

:
$$
M = \sum_i w_i x_i y_i^\top
$$
where the sum is over all rows of `x`

(after removing any rows containing `NA`

or other non-finite
values).
If `w`

is missing, the weights will be taken as 1.
The result is a \(p \times q\) matrix where
`p = ncol(x)`

and `q = ncol(y)`

.

The command `quadform`

evaluates the quadratic form, defined by
the matrix `v`

, for each of the row vectors of `x`

:
$$
y_i = x_i V x_i^\top
$$
The result `y`

is a numeric vector of length `n`

where
`n = nrow(x)`

. If `x[i,]`

contains `NA`

or
other non-finite values, then `y[i] = NA`

.

The command `bilinearform`

evaluates the more general bilinear
form defined by the matrix `v`

. Here `x`

and `y`

must
be matrices of the same dimensions. For each row vector of
`x`

and corresponding row vector of `y`

, the bilinear form is
$$
z_i = x_i V y_i^\top
$$
The result `z`

is a numeric vector of length `n`

where
`n = nrow(x)`

. If `x[i,]`

or `y[i,]`

contains `NA`

or
other non-finite values, then `z[i] = NA`

.

##### Value

A vector or matrix.

##### Examples

```
# NOT RUN {
x <- matrix(1:12, 4, 3)
dimnames(x) <- list(c("Wilma", "Fred", "Barney", "Betty"), letters[1:3])
x
sumouter(x)
w <- 4:1
sumouter(x, w)
v <- matrix(1, 3, 3)
quadform(x, v)
# should be the same as quadform(x, v)
bilinearform(x, v, x)
# See what happens with NA's
x[3,2] <- NA
sumouter(x, w)
quadform(x, v)
# }
```

*Documentation reproduced from package spatstat, version 1.56-1, License: GPL (>= 2)*