# Matlab API¶

The example described below is implemented in the example Matlab script script_GenericSyntax.m located in directory `keopslab/examples`

.

The Matlab bindings provide a function keops_kernel <https://github.com/getkeops/keops/blob/master/keopslab/generic/keops_kernel.m>_ which can be used to define the corresponding convolution operations. Following the previous example, one may write

```
f = keops_kernel('Square(p-a)*Exp(x+y)','p=Pm(1)','a=Vj(1)','x=Vi(3)','y=Vj(3)');
```

which defines a Matlab function handler `f`

which can be used to perform a sum reduction for this formula:

```
c = f(p,a,x,y);
```

where `p`

, `a`

, `x`

, `y`

must be arrays with compatible dimensions as previously explained. A gradient function keops_grad <https://github.com/getkeops/keops/blob/master/keopslab/generic/keops_grad.m>_ is also provided. For example, to get the gradient with respect to `y`

of the previously defined function `f`

, one needs to write:

```
Gfy = keops_grad(f, 'y');
```

which returns a new function that can be used as follows :

```
Gfy(p, a, x, y, e)
```

where `e`

is the input gradient array (here of type `Vi(3)`

).