# fourierbasis

##### Fourier Basis Functions

Evaluates the Fourier basis functions on a \(d\)-dimensional box with \(d\)-dimensional frequencies \(k_i\) at the \(d\)-dimensional coordinates \(x_j\).

##### Usage

```
fourierbasis(x, k, win = boxx(rep(list(0:1), ncol(k))))
fourierbasisraw(x, k, boxlengths)
```

##### Arguments

- x
Coordinates. A

`data.frame`

or matrix with \(n\) rows and \(d\) columns giving the \(d\)-dimensional coordinates.- k
Frequencies. A

`data.frame`

or matrix with \(m\) rows and \(d\) columns giving the frequencies of the Fourier-functions.- win
window (of class

`"owin"`

,`"box3"`

or`"boxx"`

) giving the \(d\)-dimensional box domain of the Fourier functions.- boxlengths
numeric giving the side lengths of the box domain of the Fourier functions.

##### Details

The result is an \(m\) by \(n\) matrix where the \((i,j)\)'th
entry is the \(d\)-dimensional Fourier basis function with
frequency \(k_i\) evaluated at the point \(x_j\), i.e.,
$$
\frac{1}{\sqrt{|W|}}
\exp(2\pi i \sum{l=1}^d k_{i,l} x_{j,l}/L_l)
$$
where \(L_l\), \(l=1,...,d\) are the box side lengths
and \(|W|\) is the volume of the
domain (window/box). Note that the algorithm does not check whether
the coordinates given in `x`

are contained in the given box.
Actually the box is only used to determine the side lengths and volume of the
domain for normalization.

The stripped down faster version `fourierbasisraw`

doesn't do checking or
conversion of arguments and requires `x`

and `k`

to be matrices.

##### Value

An `m`

by `n`

matrix of complex values.

##### Examples

```
# NOT RUN {
## 27 rows of three dimensional Fourier frequencies:
k <- expand.grid(-1:1,-1:1, -1:1)
## Two random points in the three dimensional unit box:
x <- rbind(runif(3),runif(3))
## 27 by 2 resulting matrix:
v <- fourierbasis(x, k)
head(v)
# }
```

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