### Abstract

GACO=GAbor COllocation, is a package written in Fortran95 to solve ODEs and PDEs based on expanding the solution in Gabor wave packets.

Gaco uses the collocation method, the test functions upon which the equation is projected onto are Dirac delta functions. This makes numerical integration trivial, it also eliminates inaccuracies associated with numerical quadrature.

A Gabor wave packet is a sinusoidal exp(i *k*x) wave with a Gaussian envelope exp(-sigma*(x-z)^2/2):

```g(k,z; x) = exp(I *k*x) * exp(-sigma*(x-z)^2/2) (I is the imaginary sqrt(-1) num
ber)
```
The expansion takes place both in frequency space, k = j*delta_k with j=-Nj..+Nj (like FFT) and in configuration (real) space. The expansion in configuration space comes from shifting the envelope position, z = i*delta_x i=0..Nz, (similar to the finite element method) across the domain. The Gabor wave packet expansion differs, however, from FFT in that the solution need not satisfy periodic boundary conditions. The Gabor wave packets also have the advantage to be smooth to all order (contrary to finite elements). Therefore, GACO can be used to solve ODEs/PDEs of, in principle, arbitrary order (a limit of 10 presently applies).

The main drawback of using Gabors is that the stiffness matrix is less sparse than that obtained using finite elements. (Formally the stiffness matrix is full, however, finite machine accuracy renders the matrix sparse.) The sparsity pattern depends the overlap between Gabors. Because the Gabors decay faster than exponentially away from z, overlapping contributions can often be neglected. For example, the overlap of two Gabors that are 6-7 times 1/sqrt(sigma) distance away only contribute to < 1e-10.

The main advantage of GACO over finite elements is that fewer degrees of freedom are in general required to capture the solution. This is particularly true when the solution has small scale oscillations.

The critical parameters in the Gabor expansion are:

```delta_k (grid resolution in k-space)
delta_x (grid resolution in x-space)
sigma   (inverse sqrt(width) of the Gaussian envelopes)
```
The parameter delta_x is given by the number of Gabor envelopes (Nz+1). Frame theory [1] requires that delta_k * delta_x > 2*pi in order to be able to reconstruct the solution. It is convenient to define the sampling parameter
```delta_k * delta_x  = 2*pi/sampling
```
Stable reconstruction means sampling > 1. Note that this relation does not depend on sigma. Typically sigma is chosen to be ~1 /delta_x^2. In the limit of sigma -> 0 one recovers FFT. In the limit where sigma -> infinity the Gabors approach Dirac functions.
A sampling value close to 1 allows to scan the biggest region in k-space and so extract small features most economically. However, larger sampling values confer more stability and robustness to GACO.