13 return makeRank(values.
size(), [values](
const Size i1,
const Size i2) {
14 return values[i1][H] < values[i2][H];
uint32_t Size
Integral type used to index arrays (by default).
@ MAKE_RANK
Creates the ranks of particles. Without this flag, only the IBasicFinder interface can be used.
#define NAMESPACE_SPH_END
Interface for executing tasks (potentially) asynchronously.
Object providing safe access to continuous memory of data.
INLINE TCounter size() const
Wrapper of an integral value providing functions for reading and modifying individual bits.
constexpr INLINE bool has(const TEnum flag) const
Checks if the object has a given flag.
ArrayView< const Vector > values
View of the source datapoints, updated every time (re)build is called.
virtual void buildImpl(IScheduler &scheduler, ArrayView< const Vector > points)=0
Builds finder from set of vectors.
void build(IScheduler &scheduler, ArrayView< const Vector > points)
Constructs the struct with an array of vectors.
Interface that allows unified implementation of sequential and parallelized versions of algorithms.
Order rank
Ranks of particles according to their smoothing lengths.
void build(IScheduler &scheduler, ArrayView< const Vector > points, Flags< FinderFlag > flags=FinderFlag::MAKE_RANK)
Constructs the struct with an array of vectors.
Permutation, i.e. (discrete) invertible function int->int.