Often a vector with static capacity would improve performance.
Typically, it is quite complicated to compute the volume of a ball at compile time, but straightforward to compute the volume of the bounding box. This would be useful to create structuring elements which work well with the statically sized median (assuming static size would be changed to static capacity).
auto ball = Linx::Ball<3>::Norm<2>::Radius<1>(); // box capacity 27, unknown ball size
auto filter = Linx::MedianFilter(ball);
This could be done directly in Sequence (and Image?) as an optional Capacity parameter.
This way, the container could be a Kokkos::Array and positions would be available on host and device, which would also simplify tiling.
Often a vector with static capacity would improve performance.
Typically, it is quite complicated to compute the volume of a ball at compile time, but straightforward to compute the volume of the bounding box. This would be useful to create structuring elements which work well with the statically sized median (assuming static size would be changed to static capacity).
This could be done directly in
Sequence(andImage?) as an optionalCapacityparameter.This way, the container could be a
Kokkos::Arrayand positions would be available on host and device, which would also simplify tiling.