# tree_d_3d.kernels.direct_log_sum.direct_log_sum_metal

*module*

The Metal version (Apple-silicon GPU, float32) of the ``direct_log_sum`` kernel.

``direct_log_sum_pyccel.py`` next to this file is the CPU version with the same
arguments. One thread per target; see :mod:`tree_d_3d.kernels._metal`.

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

## tree_d_3d.kernels.direct_log_sum.direct_log_sum_metal.direct_log_sum

*function*

```python
def direct_log_sum(targets: Array, exclude: Array, pos: Array, charge: Array, softening: float, phi: Array, field: Array, status: Array) -> None
```

All-pairs line-charge potential and field on the GPU; same conventions as the CPU.

[View source](https://github.com/max-models/tree-d-3d/blob/devel/src/tree_d_3d/kernels/direct_log_sum/direct_log_sum_metal.py#L50-L63)
