# tree_d_3d.kernels.fmm_m2l

*module*

The fmm_m2l kernel of the Barnes-Hut and FMM solvers: Pyccel, NumPy and CUDA versions
with the same arguments.

``kernel(...)`` runs the CUDA version when the arrays are CuPy arrays, and otherwise the
Pyccel version, or the NumPy version if Pyccel is unavailable (see
``cunumpy.kernels.set_host_kernel_implementation`` to choose).

[View source](https://github.com/max-models/tree-d-3d/blob/devel/src/tree_d_3d/kernels/fmm_m2l/__init__.py#L1-L1)

## tree_d_3d.kernels.fmm_m2l.kernel

*attribute* · *module attribute*

```python
kernel = xp.kernels.Kernel.from_folder(__name__, **KERNEL_OPTIONS)
```

[View source](https://github.com/max-models/tree-d-3d/blob/devel/src/tree_d_3d/kernels/fmm_m2l/__init__.py#L13-L13)

**Modules**

- `tree_d_3d.kernels.fmm_m2l.fmm_m2l_metal`
- `tree_d_3d.kernels.fmm_m2l.fmm_m2l_numpy`
- `tree_d_3d.kernels.fmm_m2l.fmm_m2l_pyccel`
