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 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 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)
).