@@ -46,7 +46,7 @@ namespace clue {
4646 }
4747
4848 template <std::size_t Ndim>
49- inline Clusterer<Ndim>::Clusterer(Queue& queue ,
49+ inline Clusterer<Ndim>::Clusterer(Queue&,
5050 DistanceParameter<Ndim> dc,
5151 float rhoc,
5252 DistanceParameter<Ndim> dm,
@@ -68,7 +68,6 @@ namespace clue {
6868 if (seed_dc < 0 .f ) {
6969 m_seed_dc = dc;
7070 }
71- init_device (queue);
7271 }
7372
7473 template <std::size_t Ndim>
@@ -108,8 +107,6 @@ namespace clue {
108107 std::size_t block_size) {
109108 auto device = alpaka::getDevByIdx (Platform{}, 0u );
110109 Queue queue (device);
111- init_device (queue);
112-
113110 auto d_points = PointsDevice (queue, h_points.size ());
114111
115112 setup (queue, h_points, d_points);
@@ -135,6 +132,9 @@ namespace clue {
135132 std::size_t block_size) {
136133 detail::setup_tiles (queue, m_tiles, dev_points, m_pointsPerTile, m_wrappedCoordinates);
137134 detail::setup_followers (queue, m_followers, dev_points.size ());
135+ if (!m_seeds.has_value ()) {
136+ m_seeds = clue::make_device_buffer<VecArray<int32_t , reserve>>(queue);
137+ }
138138 alpaka::memset (queue, *m_seeds, 0x00 );
139139 make_clusters_impl (dev_points, kernel, queue, block_size);
140140 alpaka::wait (queue);
@@ -163,19 +163,6 @@ namespace clue {
163163 return clue::get_clusters (queue, d_points);
164164 }
165165
166- template <std::size_t Ndim>
167- void Clusterer<Ndim>::init_device(Queue& queue) {
168- m_seeds = clue::make_device_buffer<VecArray<int32_t , reserve>>(queue);
169- }
170-
171- template <std::size_t Ndim>
172- void Clusterer<Ndim>::init_device(Queue& queue, TilesDevice* tile_buffer) {
173- m_seeds = clue::make_device_buffer<VecArray<int32_t , reserve>>(queue);
174-
175- // load tiles from outside
176- m_tiles = *tile_buffer;
177- }
178-
179166 template <std::size_t Ndim>
180167 template <concepts::convolutional_kernel Kernel>
181168 void Clusterer<Ndim>::make_clusters_impl(PointsHost& h_points,
0 commit comments