CLUEstering
High-performance density-based weighted clustering library developed at CERN
Loading...
Searching...
No Matches
clue::PointsDevice< Ndim, TDev > Class Template Reference

The PointsDevice class is a data structure that manages points on a device. It provides methods to allocate, access, and manipulate points in device memory. More...

#include <PointsDevice.hpp>

Public Member Functions

template<concepts::queue TQueue>
 PointsDevice (TQueue &queue, int32_t n_points)
 Construct a PointsDevice object.
 
template<concepts::queue TQueue>
 PointsDevice (TQueue &queue, int32_t n_points, std::span< std::byte > buffer)
 Construct a PointsDevice object with a pre-allocated buffer.
 
template<concepts::queue TQueue, concepts::contiguous_raw_data... TBuffers>
requires (sizeof...(TBuffers) == 2 || sizeof...(TBuffers) == 4)
 PointsDevice (TQueue &queue, int32_t n_points, TBuffers... buffers)
 Construct a PointsDevice object with a pre-allocated buffer.
 
 PointsDevice (const PointsDevice &)=delete
 
PointsDeviceoperator= (const PointsDevice &)=delete
 
 PointsDevice (PointsDevice &&)=default
 
PointsDeviceoperator= (PointsDevice &&)=default
 
ALPAKA_FN_HOST_ACC int32_t size () const
 Get the size of the points.
 
ALPAKA_FN_HOST auto coords (size_t dim) const
 Get the coordinates for a specific dimension.
 
ALPAKA_FN_HOST auto coords (size_t dim)
 Get the coordinates for a specific dimension.
 
ALPAKA_FN_HOST auto weight () const
 Get the weights of all the points.
 
ALPAKA_FN_HOST auto weight ()
 Get the weights of all the points.
 
ALPAKA_FN_HOST auto rho () const
 Get the weighted density values of all the points.
 
ALPAKA_FN_HOST auto rho ()
 Get the weighted density values of all the points.
 
ALPAKA_FN_HOST auto delta () const
 
ALPAKA_FN_HOST auto delta ()
 
ALPAKA_FN_HOST auto nearestHigher () const
 
ALPAKA_FN_HOST auto nearestHigher ()
 
ALPAKA_FN_HOST auto clusterIndex () const
 
ALPAKA_FN_HOST auto clusterIndex ()
 
ALPAKA_FN_HOST auto isSeed () const
 
ALPAKA_FN_HOST auto isSeed ()
 
ALPAKA_FN_HOST const PointsView * view () const
 
ALPAKA_FN_HOST PointsView * view ()
 

Friends

template<concepts::queue _TQueue, uint8_t _Ndim, concepts::device _TDev>
void copyToHost (_TQueue &queue, PointsHost< _Ndim > &h_points, const PointsDevice< _Ndim, _TDev > &d_points)
 
template<concepts::queue _TQueue, uint8_t _Ndim, concepts::device _TDev>
void copyToDevice (_TQueue &queue, PointsDevice< _Ndim, _TDev > &d_points, const PointsHost< _Ndim > &h_points)
 

Detailed Description

template<uint8_t Ndim, concepts::device TDev = clue::Device>
class clue::PointsDevice< Ndim, TDev >

The PointsDevice class is a data structure that manages points on a device. It provides methods to allocate, access, and manipulate points in device memory.

Template Parameters
NdimThe number of dimensions of the points to manage
TDevThe device type to use for the allocation. Defaults to clue::Device.

Constructor & Destructor Documentation

◆ PointsDevice() [1/3]

template<uint8_t Ndim, concepts::device TDev = clue::Device>
template<concepts::queue TQueue>
clue::PointsDevice< Ndim, TDev >::PointsDevice ( TQueue & queue,
int32_t n_points )

Construct a PointsDevice object.

Parameters
queueThe queue to use for the device operations
n_pointsThe number of points to allocate

◆ PointsDevice() [2/3]

template<uint8_t Ndim, concepts::device TDev = clue::Device>
template<concepts::queue TQueue>
clue::PointsDevice< Ndim, TDev >::PointsDevice ( TQueue & queue,
int32_t n_points,
std::span< std::byte > buffer )

Construct a PointsDevice object with a pre-allocated buffer.

Parameters
queueThe queue to use for the device operations
n_pointsThe number of points to allocate
bufferThe buffer to use for the points

◆ PointsDevice() [3/3]

template<uint8_t Ndim, concepts::device TDev = clue::Device>
template<concepts::queue TQueue, concepts::contiguous_raw_data... TBuffers>
requires (sizeof...(TBuffers) == 2 || sizeof...(TBuffers) == 4)
clue::PointsDevice< Ndim, TDev >::PointsDevice ( TQueue & queue,
int32_t n_points,
TBuffers... buffers )

Construct a PointsDevice object with a pre-allocated buffer.

Parameters
queueThe queue to use for the device operations
n_pointsThe number of points to allocate
buffersThe buffers to use for the points

Member Function Documentation

◆ coords() [1/2]

template<uint8_t Ndim, concepts::device TDev = clue::Device>
ALPAKA_FN_HOST auto clue::PointsDevice< Ndim, TDev >::coords ( size_t dim)

Get the coordinates for a specific dimension.

Parameters
dimThe dimension to get the coordinates for
Returns
A span of coordinates for the specified dimension

◆ coords() [2/2]

template<uint8_t Ndim, concepts::device TDev = clue::Device>
ALPAKA_FN_HOST auto clue::PointsDevice< Ndim, TDev >::coords ( size_t dim) const

Get the coordinates for a specific dimension.

Parameters
dimThe dimension to get the coordinates for
Returns
A constant span of coordinates for the specified dimension

◆ rho() [1/2]

template<uint8_t Ndim, concepts::device TDev = clue::Device>
ALPAKA_FN_HOST auto clue::PointsDevice< Ndim, TDev >::rho ( )

Get the weighted density values of all the points.

Returns
A span of density values for all the points

◆ rho() [2/2]

template<uint8_t Ndim, concepts::device TDev = clue::Device>
ALPAKA_FN_HOST auto clue::PointsDevice< Ndim, TDev >::rho ( ) const

Get the weighted density values of all the points.

Returns
A constant span of density values for all the points

◆ size()

template<uint8_t Ndim, concepts::device TDev = clue::Device>
ALPAKA_FN_HOST_ACC int32_t clue::PointsDevice< Ndim, TDev >::size ( ) const

Get the size of the points.

Returns
The number of points allocated

◆ weight() [1/2]

template<uint8_t Ndim, concepts::device TDev = clue::Device>
ALPAKA_FN_HOST auto clue::PointsDevice< Ndim, TDev >::weight ( )

Get the weights of all the points.

Returns
A span of weights for all the points

◆ weight() [2/2]

template<uint8_t Ndim, concepts::device TDev = clue::Device>
ALPAKA_FN_HOST auto clue::PointsDevice< Ndim, TDev >::weight ( ) const

Get the weights of all the points.

Returns
A constant span of weights for all the points

The documentation for this class was generated from the following file: