All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Namespaces | Functions
icarusalg/icarusalg/Utilities/SimpleClustering.h File Reference

Algorithms to cluster objects according to specified criteria. More...

#include <vector>
#include <algorithm>
#include <utility>
#include <type_traits>
#include <cstddef>

Go to the source code of this file.

Classes

struct  util::details::TupleElementOp< I, KeySort >
 

Namespaces

 util
 Namespace for general, non-LArSoft-specific utilities.
 
 util::details
 

Functions

template<typename Coll , typename KeyOp , typename CmpOp , typename RefOp , typename KeySortOp >
auto util::clusterBy (Coll const &objs, KeyOp keyFunc, CmpOp sameGroup, RefOp objRef, KeySortOp keySort)
 Performs a simple clustering. More...
 
template<typename Coll , typename KeyOp , typename CmpOp , typename KeySortOp >
auto util::clusterBy (Coll const &objs, KeyOp keyFunc, CmpOp sameGroup, KeySortOp keySort)
 A version of clusterBy() storing a copy of each object as "reference". More...
 
template<std::size_t I, typename KeySort >
TupleElementOp< I, KeySort > util::details::makeTupleElementOp (KeySort keySort)
 

Detailed Description

Algorithms to cluster objects according to specified criteria.

Author
Gianluca Petrillo (petri.nosp@m.llo@.nosp@m.slac..nosp@m.stan.nosp@m.ford..nosp@m.edu)
Date
January 7, 2020

This is a header-only library.

Definition in file icarusalg/icarusalg/Utilities/SimpleClustering.h.